We have just designed a board with BNO055 on it. As per the datasheet (Rev 1.7, Nov 2020), we left pins 15,16 "DNC" - unconnected.
On powering up the board, the BNO055 does not respond to I2C commands (no ACK to slave address).
We had previously prototyped the system using 3rd party BNO055 eval boards, and it worked fine.
The only difference we can spot is that pins 15 and 16 are connected to GNDIO on every eval board we can find.
We see the datsheet also used to have these pins connected to GNDIO, but it got updated in Rev 1.6, Feb 2020. There was a firmware update also just before this.
The ICs on our board may be several years old, so might it be possible that the older firmware in these does actually need pins 15 and 16 connected to GNDIO?
Solved! Go to Solution.
I have checked pin 15, 16 could be DNC in schematic.
On my side, I tested it on BNO055 shuttle board, MCU could receive I2C ACK.
BNO055 shuttle board schematic: https://www.bosch-sensortec.com/media/boschsensortec/downloads/shuttle_board_flyer/bst-dhw-fl039.pdf
One point needs to be checked on your HW board is oscillator circuit. Please ensure you could boot BNO055, and then test if I2C communication is ok. Please firstly check their crystal oscillator circuit and fine tune the load capacitor.
Refer page 110 of BNO55 data sheet: https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bno055-ds000.pdf
Thanks for the response, but the issue is more fundamental than the Xtal.
As stated at 5.5 of the datasheet, the internal clock is used by default, and you can only switch to the external crystal by setting the CLK_SEL bit via I2C bit - so I2C must work even if the crystal circuit is broken.
I don't get any ACK from I2C, even from startup.
I'll keep trying to figure it out (if I can find somewhere to buy a few more parts!!)
I don't believe we have a soldering issue bacause:
- We have 15 boards that all behave the same.
- These were machine built and we have other LGA parts that are well connected.
- I took one part off and could see that all solder pads had been connected.
Is there anything else that could cause a noACK ?