LIS2DH12 reads 0 values and stops generating interruptions
Hello all,
We are facing some issue with the LIS2DH12 accelerometer. When the board is powered-up, the accelerometer is booted with the configuration shown below, and in some of the boards, the accelerometer suddenly starts to read 0 in the OUT registers (all axes) and stops sending the interruption when the accelerometer is shaken, it can pass few hours or few days until it occurs. In this situation the device answers without problems to I2C commands, and the config registers remain in the same value. When we say it is not generating interruptions it means that the INT1 nor the INT1_SRC are changing when the accelerometer is shaken.
- CTRL_REG1 = 0x5F (ODR 100Hz; X,Y,Z enabled and LP enabled)
- CTRL_REG2 = 0x00 (HPM Mode Normal)
- CTRL_REG3 = 0x40 (IA1 interrupt on INT1 pin)
- CTRL_REG4 = 0x90 (BDU enabled and 4g scale)
- CTRL_REG5 = 0x08 (Latch interrupt request on INT1_SRC)
- INT1_THS = 0x3E (2000mg)
- INT1_DURATION = 0x01 (1/100Hz=0,01s)
- INT1_CFG = 0x2A (Interrupt enabled in X,Y and Z axes)
After an interruption occurs, the INT1_SRC register is always read, two times.
The only way to end this behavior is to power-down the board. However, we don't have this posibility in our device. Is there a way to reset the LIS2DH12 by software? We have tried with:
- BOOT bit of the CTRL_REG5
- Power-down mode setting the ODR bits of the CTRL_REG1 to 0000
- Reading the REFERENCE register
But none of them have worked.
Thank you in advance.
