I have a similar problem to LIS2DS12 - Does Wake Up interrupt block other interrupts reported by Benjamin Becker. I want an LIS2DW12 to do detect both wake-up and 6D change events. I can afford only 1 gpio pin for interrupts; it's tied to INT1. When I enable wake-up and 6D separately I get appropriate interrupts and can detect both kinds of event. However, when I enable both at the same time I don't see the 6D event; more specifically, the 6D-IA bit in the SIXD_SRC (3Ah) register is never set and the WU_IA bit in the WAKE_UP_SRC (38h) register is always set.
Now this makes a certain amount of sense since changing orientation also requires motion. Also, there is an important exception to this behavior. If I slowly rotate the device into a new orientation to avoid exceeding the wake up threshold, I do see the 6D_IA bit and not the WU_IA bit. On interrupt, I initiate an SPI read of the status registers from address 37h through 3Bh; this read is generally completed in under 35 microseconds from the active edge of INT1.
Does my status read block the 6D event before it can be reported? If not, can I delay reading the status registers or perhaps read them again later for 6D detection?
The LIS2DW12 is configured as follows (reg - value)
20 - 11
21 - 1E
22 - 0A
23 - A0
30 - 40
34 - 04
3F - A0
Thanks in advance for any insights on this.