06-02-2020 06:07 PM
I have been working with the BMA400 accelerometer. I am attempting to read from the FIFO, I can get the header for the FIFO of 0x9E in my buffer along with the FIFO length of 1022. But the accelerometer data fields are all zero. Any help would be appreicated.
Regards.
Solved! Go to Solution.
06-02-2020 09:03 PM
Did you mean your FIFO content like following:
0x9E 0x00 0x00 0x00 0x00 0x00 0x00
0x9E 0x00 0x00 0x00 0x00 0x00 0x00
........
If it is the case, then sensor is not working correctly.
Please share your sensor settings including the FIFO setings here? (better to have a register dump of all register value)
06-02-2020 10:23 PM
Hi Vincent, thank you for replying to my question.
Below are configurations for the BMA400 that I am using;
ACC_CONFIG0 => 0x01
Set to low power on start.
power_mode_conf = In low power (0x01)
osr_lp = 0x00
filt1_bw = High (0x00)
ACC_CONFIG1 => 0x5B
Use 800Hz data output rate, low power/low accuracy for OSR, and 4g range.
acc_odr = 800Hz (0x0B)
osr = osr setting 1 (0x01)
acc_range = +/-4g (0x01)
ACC_CONFIG2 => 0x00
Select filter1
data_src_reg = acc_filt1 (variable ODR filter)
FIFO_CONFIG0 => 0xE6
Enable x/y/z axis, disable 8bit mode, select filter1 (variable data rate), enable sensortime, stop writing on FIFO full, and no FIFO flush on power mode change.
fifo_z_en / fifo_y_en / fifo_x_en = enable all (0x01)
fifo_8bit_en = disable (0x00)
fifo_data_src=acc_filt1 (0x00)
fifo_time_en = enable (0x01)
fifo_stop_on_full = stop writing (0x01)
FIFO_CONFIG1 / FIFO_CONFIG2
Watermark int is disabled, but these registers are both 0x00 when read
FIFO_PWR_CONFIG
fifo_read_disable = set to 0 when reading, set to 1 when not reading
Application notes:
The BMA400 starts in low power; if movement is detected it switches to normal mode. It is intended to write to the FIFO when in normal mode and read from the FIFO when it switches back to low power mode.
Let me know if you need anything else, and thanks again!
06-06-2020 02:17 AM
FIFO data store is only supported in normal mode. And support to read out FIFO in normal and low power mode.
You set sensor in low power mode means even you enable the FIFO, there is no data stored into.
You can enable also the auto wake up feature, then when there is motion of sensor, sensor will switch to normal mode automatically, then start to store data into FIFO.