BMI160 Gyro does not start, fatal error

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

3 replies