cancel
Showing results for 
Search instead for 
Did you mean: 

LIS2DH12 consecutive Interrupt occur even though only one trigger

DVu.4
Associate

I use accelerometer LIS2DH12 to wake up the device by motion detection. It's working correctly for long time but currently I found a trouble with interrupt. It's rarely happen and hard to reproduce.

Here is my initialization:

 

INT1_CFG = 0010 1010
INT1_THS = 0000 0010
INT1_DURATION = 0000 00010
CTRL_REG2 = 0000 0101
CTRL_REG3 = 0100 0000
CTRL_REG5 = 0000 1010 (LIR_INT1 = 1)
read to clear INT1_SRC

I start up my device and wait device go to sleep, then I lightly touch on my device to wake up, The INT1 signal and I read INT1_SRC register before continue proccess. After that, the INT1 still signals again and again eventhough I leave my device stable on the table.

I have checked LIR_INT1 at CTRL_REG5 that INT1_SRC cleared by reading INT1_SRC but when INT1 signal, I read INT1_SRC (= 0110 1000 for example) then second read INT1_SRC (still = 0110 1000). 

To stop INT1, I have to clear INT1_CFG in my code. Note that, The whole process I make sure that the device stay stable on the desk and only touch at the first time. 

 

1 REPLY 1
Federica Bossi
ST Employee

Hi @DVu.4 ,

Please try again writing CTRL_REG5 = 0000 1000 (LIR_INT2 = 0) and let me know if this solves.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.