I am trying to get double-tap detection to work properly. I think the data sheet is a little unclear.
Is the treshold values (PULSE_THSX/Y/Z) absolute values or differential values? Depending on orientation there will be a static value between -1g and +1g. The tap comes on top of that.
The time steps in table 135 and 136 refers to HP_FILTER_CUTOFF[pls_hpf_en] = 0 or 1. However, the HP_FILTER_CUTOFF doesn't have a pls_hpf_en bit. It has bits pulse_hpf_byp and pulse_lpf_en. I can't find any description what these two bits are doing. Why would you want low pass filter for pulse detection?
Hello Kurt,
The tap/pulse detection function can be configured to run through the high-pass filter (HPF) using the pulse_hpf_byp bit.
If pulse_hpf_byp = 0, the tap/pulse detection function processes high-pass filtered data, so the threshold value in PULSE_THSX/Y/Z registers should not take into account the static acceleration.
If pulse_hpf_byp = 1, the tap/pulse detection function does not process high-pass filtered data (HPF is bypassed) and the threshold value needs to take into account the static acceleration.
As for the pls_hpf_en bit, it is indeed an error, the correct bit is pulse_lpf_en in the HP_FILTER_CUTOFF register. When the low-pass filter is enabled (pulse_lpf_en = 1), the time step doubles. The LPF should help eliminate additional ringing after the tap signature is detected.
I hope it answers your questions.
Best regards,
Tomas