We are using the ADXL362 for more than 5 years in our activity monitor
The ADXL362 in configured in STREAM MODE and externally triggered every 40 ms (= 25 Hz) . The FIFO buffer of the ADXL362 is read after 25 external triggers.This works fine. But now we sometimes detect duplicated ADXL (X,Y,Z) data blocks in our measured data.
We checked our embedded software (over and over again) but our internal buffers are smaller than the sizes of the detected duplicated data blocks. It looks like that for some reason the ADXL362 returns old already read data from his internal FIFO. The returned X,Y,Z values are approx 170 triggers old (170 * 3 = 510 values).
Is it possible that for some reason the FIFO buffer of the ADXL362 fails?
What can we do, please advise.
Thanks for the question. If you trigger 25 times though external trigger mode, then you should expect 25 sets of new samples in the FIFO. Can you verify if the FIFO sample size is correct before you read the data out from FIFO? This can be done by reading the FIFO entry register. It's always a good practice to pull FIFO content out based on the number the FIFO entry register indicates. The reason for doing this is due to the asynchronous nature of the internal clock and external sync, which may lead to one ODR clock cycle difference between consecutive external sync pulses.
Thanks for your response. I our software we always read first the number of samples available in the ADXL FIFO buffer and then we read all these values back from the ADXL. Last week we started a duration test where make sure that we never readout the FIFO completely (we always leave 3 samples in the FIFO). We started this test because we think that maybe something goes wrong with the read or write pointer of the FIFO in the ADXL362.
Update:We evaluated the results of the duration test with the software who doesn't read the complete buffer (always 3 samples left in the buffer). It looks like the number of double data errors reduce. But there are still some files with double data.