I have recently bought BMI088 IMU and started interfacing work with atmega2560. I have written my own I2C routines to perform communication task and UART routines to see the output on serail terminal. Rotines are functioning without any issues as I am able to read gyro data and temperature data (from accelerometer).
Now only problem that I am having is that acceleration data being read is 0 in all three axes and there is no change at all. What may be the reason?
I have few points,
1) In device initialisation procedure, it says to only write 0x04 in ACC_PWR_CTRL(0x7d) which will bring devide in normal mode. I have written this register, checked it by reading it as well. As temperature reading are coming proper, it signifies that accelerometer has been brought to active mode. In this scenario, accelerometer should also spit out correct reading, but it is not.
2) There is one more register ACC_PWR_CONF(0x7c), reset value of which is 0x03 which corresponds to suspended mode. And this need to be written with 0x00 to bring accelerometer in active mode. There is no mention about this register in initialisation procedure. Although I have written this register to 0x00 but still acceleration output reads 0.
Any help is appreciated.
Solved! Go to Solution.
There was example code in github, https://github.com/BoschSensortec/BMI08x-Sensor-API/tree/master/examples
It is better to refer BMI088 driver code and example code.