I have the BNO055 mounted on my own board & I've found one of them is faulty. Using my 2nd board & get better results. But I have to slow my I2C bus down. It' quite slow now as I'm only bit banging it with an 8-bit CPU using the GPIO pins. I also only noticed the 600mS POR delay!! so I'm now up & running 🙂 One other thing I found. When selecting the external crystal & found I needed to wait a period of time (I'm waiting 10mS) before checking the clock stats bit otherwise I get a false positive & then reading the system trigger reg reports the external crysal is not test // use external clock //
BNO055_I2C_Write(BNO055_SYS_TRIGGER_ADDR, 0x80);
Delay(TICK_10MS); // required to avoid false +ve in CLK_STAT
while(BNO055_I2C_Read(BNO055_SYS_CLK_STAT_ADDR) & 1)
{
Delay(TICK_10MS);
}
if((BNO055_I2C_Read(BNO055_SYS_TRIGGER_ADDR) & 0x80) == 0)
while(1); // !!! EXTERNAL CLOCK SELECTION FAILED
... View more