Hi all
I am using BMI160 in my application to sense motion. It's in a PCB where the main Micro controller is a Nordic nRF52833. I am using the BMI160 to wake the MCU up through interrups such as double tap. I am experiencing a strange behaviour. See below the flow of events in a continous loop:
- MCU in sleep mode, BMI160 accelerometer in Low power mode and Gyro in Suspend mode (I only need the accelormeter to use the interrupts). The setting of the accelerometer are: BMI160_ACCEL_ODR_100HZ, BMI160_ACCEL_RANGE_2G and BMI160_ACCEL_BW_NORMAL_AVG4.
- Double tap the PCB -> MCU wakes up -> set the BMI 160 in Normal mode (both acceleormeter and gyro) in order to recorder the motion and process the data.
- When data processing is finished, MCU goes back to sleep mode and so the BMI160 back in Low power mode (accelerometer in low power and gyro in suspend mode)
The issue I am facing is after running this loop a few times (about 8 times), the BMI160 seems to stop operating - ie I don't get any interrupts from the sensor. To prove this, I set the BMI160 accelerometer in Normal mode all the time (even when MCU is in sleep mode). In this case, I don't see the described issue.
Is this a known issue? Is there any explanation to this behaviour? Am I doing something wrong?
PS: The reason I am switching the BMI160 into low power mode when the MCU is in sleep mode is to save the energy usage. My PCB is powered by a battery that I need to make sure it doesn't drain quickly.
Many thanks for you support in advance
Kind regards