IIS2DH FIFO stream mode configuration issues
Hi
I am using an IIS2DH accelerometer and set up FIFO. The configuration sequences are following the IIS2DH example in Github, see below
// 25Hz, Low-Power Mode Disabled, XYZ enabled
ACC_Write_Command(IIS_CTRL_REG1, IIS_CTRL_REG1_INIT_25HZ);
// High-Pass Filter on INT2, FIFO disabled, interrupt registers in latched mode
ACC_Write_Command(IIS_CTRL_REG2, IIS_CTRL_REG2_INIT);
// +/-2g (4g full scale), HR Enabled
ACC_Write_Command(IIS_CTRL_REG4, IIS_CTRL_REG4_INIT_2G);
// Stream buffering on the acc
ACC_Write_Command(IIS_FIFO_CTRL_REG, IIS_FIFO_CTRL_REG_INIT_STREAM);
// Enable FIFO for this type of Tag
ACC_Write_Command(IIS_CTRL_REG5, IIS_CTRL_REG5_INIT_FIFO);
However, the accelerometer data is not updating until I am adding a 5 ms delay after writing the Stream Mode to the register. See below,
// 25Hz, Low-Power Mode Disabled, XYZ enabled
ACC_Write_Command(IIS_CTRL_REG1, IIS_CTRL_REG1_INIT_25HZ);
// High-Pass Filter on INT2, FIFO disabled, interrupt registers in latched mode
ACC_Write_Command(IIS_CTRL_REG2, IIS_CTRL_REG2_INIT);
// +/-2g (4g full scale), HR Enabled
ACC_Write_Command(IIS_CTRL_REG4, IIS_CTRL_REG4_INIT_2G);
// Stream buffering on the acc
ACC_Write_Command(IIS_FIFO_CTRL_REG, IIS_FIFO_CTRL_REG_INIT_STREAM);
//introduce a 5ms delay to allow sufficient time for the sensor to update its registers with the latest data
delay_mSec(5);
// Enable FIFO for this type of Tag
ACC_Write_Command(IIS_CTRL_REG5, IIS_CTRL_REG5_INIT_FIFO);
I could not find any clue in the datasheet, we need a delay after certain FIFO mode registrations.
Could anyone help me check my configuration, and why do we need a delay in between writing registers.
Thanks.
