I am using the magnetometer on this device, running at the max ODR of 220Hz. There are occasional (several times a minute) glitches which have the following charateristics:
1. The interrupt is significantly delayed.
2. The data read on that interrupt is (often) a big spike compared to values read before and after. It's just sitting on my desk.
3. A shorter than expected delay before the next interrupt.
4. The data read on the second interrupt is normal.
5. Normal behaviour continues. No spikes occur except immediately after the long interrupt delay.
6. The regular interrupts before and after the glitch do not fall onto integer multiples of the expected delay - there is an offset after the glitch.
This trace shows interrupt, SCL and SDA:
I am seeing this behaviour on several devices, some built into commercial plug in boards, but also on a board we build ourselves. The interrupt delay appears from the trace to originate on the device, rather than from processor latency. I thought the device might be resetting for some reason, but it does not lose it's configuration.
Can anyone shed any light on this problem? At the moment we timestamp the readings, filter out the glitches, but this is very unsatisfactory.