09-09-2021 02:43 PM
Hello,
I'm using a BMA456 and i'm having trouble with the fifo_err flag in the ERR_REG ( 0x02 ) register.
The device is configured as follows:
I'm performing a test where i let the FIFO overflow but the flag is never set. The FIFO seems to be working fine and filling.
Am i missing some configurations?
I'm using a custom driver for space constraints but i based the logic on your example fifo_full_headerless_mode.
I suspect that the problem may be that i'm not initializing the ASIC but i'm following your example which doesn't initialize it either.
Thanks for the support.
09-30-2021 05:43 PM
Update.
Is it possible to have something even close to an answer on this forum?
11-02-2021 09:05 AM
Hello augusto1,
If you set ODR to 1600 Hz, FIFO cannot be read out in time and will soon be full.
This example demonstrates the use of FIFO when using 100 Hz ODR. https://github.com/BoschSensortec/BMA456-Sensor-API/blob/master/examples/bma456/generic/fifo_waterma...
11-05-2021 05:20 PM
Thanks for the reply.
I have no problem reading the FIFO at 1600Hz, i'm running the SPI at 8 MHz and reading the fifo every 40 ms, 64 samples.
Like I said before i would like to use the fifo_err flag to determine if for some reason the fifo overflowed but is doesn't seem to work.
Is it possible that this function is available only when the ASIC is initialized?
11-08-2021 10:09 AM
Hello augusto1,
You could see the following description in data sheet, FIFO_CONFIG_0.fifo_stop_on_full was used for FIFO overflow. If the FIFO overflows, the INT_STATUS_1.fful_int flag bit will be set to 1.
If the rate of reading FIFO is lower than that of filling FIFO, ERR_REG.fifo_err flag will be set to 1.