Configured as follows:
1. Enable Z axis
2. Set threshold counts to 4
3. Set debounce counts to 1
4. Set to low power and ODR = 1.56Hz
5. Enable transient detection interrupt
6. Route transient interrupt to INT1
We then activate the accelerometer and immediately see a 780ms interrupt on the INT1 pin. Why is this occurring?
Hi Amanda,
Before I dig deeply into it, could you please post here a snapshot showing the INT1 pin as well as both I2C lines when an unexpected interrupt is fired? Does it happen when you disable the z-xis and enable the x or y-axis? Is it sensitive to the initial orientation?
Best regards,
Tomas
Hi Tomas –
It does not trigger the interrupt when I enable the x or y axis. And the orientation of the accelerometer is flat on the table so I guess the z-axis would immediately see a change.
Is using the user offset register the way to set an initial offset?
Thanks,
Amanda
Hi Amanda,
Sorry for the delay in getting back yo you.
I was able to reproduce and understand the root cause of this behavior. The built-in high-pass filter has a certain response time due to which the absolute input of the part (Z = 1g) does not immediately get filtered to 0g (when the part is stationary), rather in small steps. As a result, this high-pass filter output during this response time results in spurious transient interrupts. This time could be in the order of seconds depending on the absolute input to the part and the selected ODR. The issue was confirmed with the design team and the workaround is to increase initially the transient threshold to greater than the acceleration from static orientation.
Please let me know if you have any further questions regarding this matter and we apologize for any inconvenience this may have caused.
Best regards,
Tomas