Hello,
We've got 2 thousands units of a product shipped to customers and some of them are acting badly: the gyroscope does not start.
I've got 3 products with that issue on my desk and I can't make them work after trying a lot of things (longer delays after commands, change the order of the settings etc) but at the end, the gyroscope does not work. Important information: those products used to work correctly.
To give more details about starting process, in that order:
- I configure the ODR/ranges of both accelerometer and gyro
- I power up the sensors (Accel and gyro in NORMAL mode)
- I configure the interrupt on FIFO watermakr
- I reset the FIFO content
This process works on 99% of our sensors.
On the ones in front of me, I check the error register after sending the command to put the accelero and gyro in normal mode, it looks great:
Accel normal mode; Err: 0x80
Gyro normal mode; Err: 0x00
After a few seconds, I didn't get any interrupt and I can see that the interrupt pin is not active. I check some registers:
BMI160_PMU_STATUS_ADDR: 0x10
BMI160_ERR_REG_ADDR: 0x01 // FATAL ERROR
BMI160_INT_STATUS_0_ADDR: 0x00
BMI160_INT_STATUS_1_ADDR: 0x00
BMI160_INT_STATUS_2_ADDR: 0x00
BMI160_INT_STATUS_3_ADDR: 0x00
Two things: the gyro is not started (PMU status) and I got a fatal error pending...
I can't find a way to prevent that fatal error.
How should I deal with fatal errors? (POR does not make the gyro work...)
Have you seen such behavior in the past?
What can I do to make those work or to prevent new sensors from dying?
Best,
Cyril