Category: Hardware
Product Number: ADXL372
Hello, Looking at high frequency sampling of acceleration using ADXL372, using
the streaming mode and draining the fifo when INT1 gives FIFO_FULL
interrupt. ODR is 6400 and bandwidth 3200Hz. Every once in a while the ADXL372 simply skips giving one interrupt and then resumes normal operation without any intervention from the MCU. I have not figured out if there is a pattern to this skipped interrupt. It seems to be random. This happens for at least when streaming xyz, x only or z only. The Fifo watermark level is set at 486 bytes. The response time to the INT1 interrupt is consistently 32uS and is no different when the ADXL372 skips the FIFO_FULL signal. The 32us response time is much faster than one sample from the ADXL372 and the watermark level is set with 4 samples margin at 486bytes as mentioned before. The data from the ADXL372 is transferred using DMA and the USB transfer to the PC takes ~2ms and is finished well before the next interrupt (should) happen(s). I.e. the waveforms are _VERY_ periodic and without jitter. I found a post on the forum where it was suggested that using external sync sampling would fix this. This is not mentioned in the datasheet, but I tried it anyways and it has no effect. Using lower ODR makes the issue a little less frequent but it is still there. Any pointers to real fixes?
Screenshot of the issue with INT2 as the external sync and streaming z only.
But as states above the issue is exactly the same running from the internal
sync of the ADXL372 (and INT2 pin then unused) and when streaming xyz and x only.
Gap in data due to missing INT1(FIFO_FULL)
Zoomed to start of FIFO_FULL event
Zoomed to end of FIFO_FULL event which ends with USB transfer which takes ~2ms