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.
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...
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?
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.