I tried to retrieve data from the sensor ADXL355(ODR = 125 sps) with a Raspberry Pi 3 B+ using the pin "Data ready" as an interruption. I realized that I was having loss of samples so I blamed linux because it is not a real time OS and could be missing some of the interruptions. I isolated a CPU, increased the task priority and put the task in only one core but I still got missing samples.
I decided to do the old polling method asking the STATUS register in order to know if there's any new data. First of all, I realized that I can aske at a very high speed, so probably, there's a few chances of missing a samples. I'm printing the result from that read and it works well. Most of the time prints 0x02 which means that the FIFO is full. When the status register showed a 0x07 I read the new data. The problem is that when I lost a sample is because the STATUS register only shows a 0x02 and, generally two times, a value of 0x06 which meas that FIFO is full and is Overrun. The device is NOT setting the STATUS register correctly. Because that I was wondering that maybe is not Linux fault, I missed samples with the interruption method because there was no interruption et all.
Am I missing somehting or this is a strange/known behavior of the ADXL355?
Thank you, very much!
Adding a condition to read a sample on those 0x06, I achieved almost no loss, but still is pretty strange.