According to the datasheet the 3 dB cutoff frequency is always lower than for the other axes? Is there a particular reason for this? And is it possible to get unfiltered data?
Solved! Go to Solution.
Thanks for your inquiry.
BMI160 accel and gyro have both filtered data and unfiltered data (or pre-filtered data). In data registers there are only filtered data at different ODRs. At accel ODR of 1600Hz the 3dB cut-off frequency is 684Hz for X/Y axis and 353Hz for Z axis. This is by design and has no reason behind.
BMI160 accel unfiltered data is always at 1600Hz and gyro unfiltered data 6400Hz. Even they are not available in data registers, they are available in FIFO. When you set bit-7 of register 0x45 to 0, then the FIFO will have accel data at 1600Hz unfiltered data. You can read FIFO to get accel unfiltered data.
Okay if we would like to have for both acc and gyro 1600 Hz and would like to use the fifo how do we need to configure the config registers. Furthermore, if we use the unfiltered option can we assume that aliasing is avoided by design?
And by the way is it possible to see the entire filter curve of the low pass filter.
Please refer to BMI160 API source code at https://github.com/BoschSensortec/BMI160_driver. You only need to bring the accel and gyro inside BMX160 respectively. And then you set their ODRs and full scale ranges. Then you set the register 0x45 bit-7 to 0 to use unfildered data. Then you can call the function to confgiure the FIFO and get data from FIFO. Since the ODR is 1600Hz, please use SPI interface to read data samples from FIFO faster in burst read.
Okay but then I have 6400 Hz for Gyro and 1600 Hz for Acc. But I want 1600 Hz for both and for both unfiltered. Furthermore, could you answer my question regarding the aliasing filter?