10-24-2022 11:29 PM
Hi,
I'm using the accelerometer in BMI270, used FIFO watermark as the interrupt to read the sensor data out by every certain time, everything was working great while in the normal mode, but data became corrupted in FIFO while in the low power mode by set "acc.filter_perf=0".
I read the datasheet and saw the description in section "4.7.7 FIFO in Low Power Mode" which describes "The data storage into the FIFO is identical to the normal and performance mode", so just want to double check with you to confirm it's correct or something else if I didn't configure right.
Thanks, James S.
Solved! Go to Solution.
10-25-2022 08:27 PM - edited 10-25-2022 08:36 PM
Hi jshih,
Are you using our BMI270 API?
https://github.com/BoschSensortec/BMI270-Sensor-API
There are FIFO examples like below.
And, you need to set 0x03 for 0x7C register.
Please let me know if you have any questions.
Thank you.
10-26-2022 10:44 PM
Hi,
Yes, I'm using the BMI270 API from the Github.
In accel normal mode, I don't have any issue to use FIFO, it works properly.
In accel low power mode, I have the issue to use FIFO, looks the data not been stored into FIFO.
Again, my questoin or the thing I would like to clarify is,
Can I use FIFO when use Accel in low power mode?
Because the datasheet mentioned "The data storage into the FIFO is identical to the normal and performance mode", so would like to double confirm what I observed is correct.
10-27-2022 11:50 PM
Hi Jshih,
Yes, as I said, you need to enable FIFO self wake up.
To do so, you need to enable using below function.
bmi2_set_fifo_self_wake_up(BMI2_ENABLE, &dev)
You can use above function end of initialization part.
Please let me know if you still have issues.
Thank you.
10-29-2022 01:17 AM
Hi,
Thanks, I can see FIFO works properly after enabled the FIFO self wake-up.
But one more question is,
FIFO data is good when read by every interrupt (by watermark level), but if now I read FIFO data before interrupt then I could see the FIFO data corrupted after read.
For example: I set ODR to 25Hz and interrupt by watermark level as read 25 set of data by every seconds.
Does that means I may need to re-enable the FIFO self wakeup if read data by none interrupt trigger?