When reading FIFO data on BMI088, datasheet describes that every data frame contains a header byte. For accelerate data frame, that's 0x84(without INT tag). But there's no decribtion about header byte of gyro data frame. However, a mystery define macro (#define BMI08X_FIFO_HEADER_ALL_FRM UINT8_C(0x9C)) was added on official API BMI08x-Sensor-API . From the macro's name, I assume its the header byte for data frames that contain both acc/gyro data. But I searched every datasheet finding no clue of where it comes from.
Also, the pseudo code examples in BST-BMI08x-AN002 suggests that header of acceleration sensor data frame is (0x84 & 0x8c) as shown picturebelow. Where does that 0x8c come from?
Solved! Go to Solution.
Thanks for your inquiry.
BMI088 has accelerometer BMA456 and gyroscope BMG160 inside. The accel and gyro are independent which means they have their own FIFO and ODR, etc. They are not synchronized as BMI270. Therefore, only BMI088 accel has header byte in FIFO frame, while BMI088 gyro FIFO doesn't have header byte.
0x8C for FIFO frame comes from BMI270 datasheet page 35 at https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi270-ds000.pdf. BMI270 accel and gyro are sunchronized and share the same FIFO. We will correct this in BMI088 API code. Thanks for your feedback.