Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BNO055 not responding after MCU programming

    BNO055 not responding after MCU programming

    New Poster


    we are using the BNO055 in one of our applications. We combine the IMU with a PIC 16bit microcontroller on the same board.The MCU communicates with the IMU over I2C and we use the c library provided by Bosch. Overall the IMU works fine. Only the following problem occurs: When freshly programming the MCU, the BNO does not respond. Resetting the BNO over the RST line does not help. Only after unplugging the power of the board and therefore restarting the MCU and BNO, the BNO works as expected. After the intial power off/on the BNO works fine. Only right after programming and entering the application code, the BNO is stuck. Sadly this will cause a problem for us, when deploying an Over the air MCU firmware update, when the product is out in the field. Do you have an idea of why this issue occurs or maybe hint me in the direction of a solution?

    Kind regards

    6 REPLIES 6

    Interesting, because we connected the VDD and VDIO inputs to the same 3.3V source because the datasheet of the BNO states:

    "For the switching sequence of power supply VDD and VDDIO it is mandatory that VDD is powered on and driven to the specified level before or at the same time as VDDIO is powered ON"

    But I do not really see the problem with the power sequence because everything works fine when we power cycle the board. Problems only occur when we reset the microcontroller. When resetting the microcontroller, the 3.3V line is stable, and therefore VDD and VDDIO of the BNO are unchanged.

    I found a issue when we use the reset line of the BNO. So first of all here is the (reduced) sequence of our microcontroller application:

    1. Init MCU Pins

    2. Pull BNO reset low

    3. Pull BNO reset high

    4. Wait for about 1s

    5. Init BNO and read out BNO registers

    To summarize all of the above mentioned steps work if I power cycle the whole board. If I reset only the MCU this fails and the BNO is unresponsive.

    As it turns out if I leave out the part of resetting the BNO and just keep the reset line high, everything works. I can talk to BNO even after resetting the MCU.

    I just thought it would be a good idea to reset the BNO at the beginning of the application code, to ensure that the BNO is in a known state.

    Are there any restrictions on the use of the reset line, other than the typical 650ms POR time that it takes to go from the reset state to the config mode? (according to the datasheet)?

    To hopefully answer your question concerning the I/O lines:

    I observed the BNO_reset line ,which is connected to the MCU and pulled up to 3.3V via  10k Pullup, during the resetting of the MCU. There is some noise visible during the reset, but the voltage on the line is in the boundary of 2.7 and 3.5 V.

    Kind regards,

    @Wholt wrote:

    "For the switching sequence of power supply VDD and VDDIO it is mandatory that VDD is powered on and driven to the specified level before or at the same time as VDDIO is powered ON"

    Connected together is also fine Robot Happy, I forgot to specify.

    There are no restrictions on the reset line of the BNO. If you cannot talk to teh BNO055 after reset, I suspect there might be something wrong, like not enough capacitance on VDDIO.