Hi Brandom,
Answering to your questions:
1. You are correct, sorry, you should read PULSE_SRC Register in order to read if a single or double pulse was detected. But it’s important to mention that when the EA bit gets set while ELE = 1, all status bits (AxZ, AxY, AxZ, DPE, and PolX, PolY, PolZ) are frozen. Reading the PULSE_SRC register clears all bits. Reading the source register will clear the interrupt.
2. I do not understand what could be causing this problem, I just test the values from example 6.2 of AN4070 on my MMA8451Q and I didn’t have any problem: I received an interrupt for double tap (single tap does not trigger an interrupt) and both DPE bit and EA bit in PULSE_SRC were set.
And I also tested my MMA8451Q with the setting mentioned for single & double tap from your last update, and I didn’t found any problem, even without the LPF disabled (0x0F = 0x00).
3. I don’t know what would be the reason of this, the function of the ELE bit is to hold the contents of the status register until the status register is read.
4.If the ELE bit of the PULSE_CFG register is not set (0), the interrupt is kept high for the duration of the Latency window PULSE_LTCY.
Is just in case that the ELE bit is set (1), the source register values will remain static until the PULSE_SRC register is read.
This latency window applies either for single pulse or double pulse detection.
Have a great day,
Jose Reyes
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------