I'm setting the FIFO in stream mode to fire an interrupt when there are 180 samples of (x,y,z ) tempreture is disabledgetting. Also, I'm setting the data rate at 12.5Hz. The interrupt fires periducall as I expected based on the data rate and FIFO size but I'm getting invalid data. Here is the first 12 bytes of the FIFO and the rest bytes are similar in invalidity.
based on the data sheet description :
byt 0 is the least significant byte of x value while byte 1 is the most significant byte of x value.
byte 2 is the least significant byte of y value while byte 3 is the most significant byte of y value.
byte 4 is the least significant byte of z value while byte 5 is the most significant byte of z value.
where the last 2 bits in the most significant byte of all axes indicates the data type. by looking at these 2bits it does not match the sequence of reading x, y, z as mentioned in the data sheet. So, data is invalid.
ADXL362 is on custom board and powered from MCU's pin (ACCEL_GATE). The MCU operates at 2.2V. There is 0.1 uf bypass on the ADXL362 power line as shown below:
To debug the issue of invalid data ,I read the status register and found out that ERR_USER_REGS bit is set to 1 which indicates there is a problem in the power line.
So, I monitored the ADXL362 power line on the scope and found that there is a dip every time the MCU try's to read the FIFO as shown below:
In the data sheet , operating ADXL362 from 1.6 V to 3.5 V is safe and I'm operating it at 2.2V.
I don't understand if there is any issue with my setting causing the FIFO data to be invalid.
please let me know if I did something wrong .