2020-09-28 01:31 AM
I am using ISM330DLC accelerometer, the FIFO mode is Bypass-to-Continuous and the trigger is WAKE_UP_SRC. When the bit OVER_RUN of FIFO_STATUS2 is set, I read x_data from FIFO, but all data is not correct. So I do a test, read x_data from FIFO when FIFO_STATUS1 and FIFO_STATUS1 have data to read, and read x_data from OUTX_L_XL. The result is sometimes x_data is the same and sometimes x_data isn't the same.
ISM330DLC's init as below:
ctrl1_xl(0x10)=0x11
ctrl2_g(0x11)=0x00
ctrl3_c(0x12)=0x74
ctrl4_c(0x13)=0x00
ctrl5_c(0x14)=0x00
ctrl6_c(0x15)=0x10
ctrl7_g(0x16)=0x00
ctrl8_xl(0x17)=0xa8
ctrl9_xl(0x18)=0xe0
wakeup_dur(0x5c)=0x00
wakeup_ths(0x5b)=0x01
md1_cfg(0x5e)=0x00
md2_cfg(0x5f)=0x20
int1_ctrl(0x0d)=0x08
int1_ctr2(0x0e)=0x00
tap_cfg(0x58)=0x80
master_config(0x1a)=0x00
fifo_ctrl1(0x06)=0xbc
fifo_ctrl2(0x07)=0x07
fifo_ctrl3(0x08)=0x01
fifo_ctrl4(0x09)=0x00
fifo_ctrl5(0x0a)=0x0c
The fifo_data.txt is the test result.