Hello, I started to write a very small driver for the BMI088. While the gyroscope is working like expected, The accelerometer has a stange “feature”. Writing to it works fine, but reading any register gives the value of the previous read request. To read the xyz values I have to write twice to the register 0x12 to get the proper axis values like this: ACC_ENABLE(); spi_transfer(ACC_X_LSB_12 | 0x80); // Start register read spi_transfer(ACC_X_LSB_12 | 0x80); // Again start register read (why ever!) ax = spi_transfer(0xFF); ax += spi_transfer(0xFF) << 8; ay = spi_transfer(0xFF); ay += spi_transfer(0xFF) << 8; az = spi_transfer(0xFF); az += spi_transfer(0xFF) << 8; ACC_DISABLE(); With this workaround the raw values for the IMU are fine. Does anyone know why the reading result is shifted by one operation? Looks like it´s caused by the FIFO, but I don´t write anything to it. Any help is welcome. Doing almost the same with the BMI055 worked without any problems. Greetings from Germany Udo
... View more