12-20-2022 06:41 PM
Dear, we are having problems with the BNO055 sensor that we use to implement automatic pilots in agricultural machinery. From the engineering team we detected problems in this sensor that impacts us in more than 1500 products that we have distributed in the field to customers.
1) we saw a change in pin10, which for a version of the chip, the data sheet indicates that it must be connected to GND (we use I2C communication) and in another newer revision changed its operation for the use of the bootloader and must be connected differently.
- In this situation, what problems can it bring us if we have this pin without connection, NC?
2) our main problem with the BNO055, is apparently an unwanted reset. That is, the BNO055 for some strange reason that we have not been able to detect with the datasheet, restarts or goes to reset mode. We suspect that because, logging some registers of interest during normal operation of the equipment, when reading the register OPR_MODE_ADDR (0x3D) has the value 0x10 (default after a reset). This clearly indicates that the previous configuration that we loaded is no longer the same but the default.
Description mode of use/configuration by us:
- Reset BNO055: pin reset low, delay 100 mS, pin reset high, delay 100 mS. // hardware reset.
- Configuration: register OPR_MODE_ADDR (0x3D), we write 0x00 // configuration mode
- Delay 100mS // Wait for 100 mS
- In register UNIT_SEL_ADDR (0x3B) write 0b10000111 // select unit
- Delay 100mS // Wait for 100 mS
- Page change PAGE_ID_ADDR (0x07), write 0x01 // page change 1
- Delay 100mS // Wait for 100 mS
- In ACCEL_CONFIG_ADDR register (0x08), we write 0b00001111 // accelerometer configuration
- Delay 100mS // Wait 100 mS
- In the GYRO_CONFIG_ADDR register (0x0A), we write 0b00011000 // gyroscope configuration
- Delay 100mS // Wait 100 mS
- Page change PAGE_ID_ADDR (0x07), write 0x00 // page change 0
- Delay 100mS // Wait for 100 mS
- In the OPR_MODE_ADDR register (0x3D), we write 0x05 // our chosen mode of operation.
- Delay 100mS // Wait for 100 mS
Then the registers are queried every 10 mS:
- GYRO_DATA_X_LSB_ADDR (0x14).
- GYRO_DATA_Y_LSB_ADDR (0x16)
- GYRO_DATA_Z_LSB_ADDR (0x18)
- ACCEL_DATA_X_LSB_ADDR (0x08)
- ACCEL_DATA_Y_LSB_ADDR (0x0A)
- ACCEL_DATA_Z_LSB_ADDR (0x0C)
Having said all this, we would like to ask you what could be the possible causes of the BNO055 spontaneously restarting? Have you already observed similar behavior?
Thank you very much and we hope a prompt attention to attack this problem.
Regards
12-22-2022 09:54 PM
1) pin 10 in the lastest datasheet of BNO055 was clearly indicated as Bootloader indicator pin and recommend to be DNC. it is one output debug pin and will be driving to high when you enter special bootloader mode. So, in your design, leave to NC has no any problem.
2) We didn't met such issue before. From the given procedure, i didn't found any abnormal. If sensor set reset during reading data phase all the time, i suggest you to check the VDD / VDDIO line during sensor working first. In general, there are 3 ways to reset BNO055
a. soft reset by set RST_SYS bit into SYS_TRIGGER register
b. Use the reset pin to reset sensor
c. POR (power on reset)
For normal data streaming stage, sensor should working continuously without reset. Since you didn't set reset command and didn't trigger reset pin, the only suspection now is the VDD / VDDIO line.