I'm using an LIS2DE12 in stream mode with the watermark set to 15 FIFO entries and with the WTM bit being driven out INT1. When INT1/WTM goes high, I read out 16 FIFO entries and, as expected, INT1/WTM goes low about halfway through the transfer when the number of remaining FIFO entries falls below the watermark. However, occasionally, INT1/WTM goes low much later in the transfer or may not go low at all while reading the FIFO.
In my configuration, the SPI clock runs at 100 KHz and the LIS2DE12 sample rate is 1.62 KHz which means I'm able to pull out FIFO entries a bit faster than 1*ODR so I always expect INT1/WTM to go low sometime during the transfer.
In the attached trace, the INT1/WTM signal is at the top. When it goes high, CS goes low to start the transfer. In most cases, INT1/WTM goes low half way through the transfer but in the highlighted transfer, it does not. Since the timing of this transfer is the same as the others, it's unclear why the INT1/WTM signal behaves differently.
I've followed the guidelines in AN3308 and get valid data when the part behaves as expected. Are there any limitations on the SPI transfer rate in stream mode or some other reason that would cause the part not to clear the INT1/WTM pin during a transfer? Is it acceptable to start reading from the FIFO when the watermark is reached? AN3308 always shows transfers starting on OVRN, not WTM.