In my application we have used BNO055 as 1 of the peripherals along with other 2 peripherals, where I'm not able to do multiple bytes read and write continuously.Whereas I'm able to read and write multiple bytes for other two peripherals continuously.
Ex:- Magnetometer is set to 30Hz bandwidth, AccMag mode is set and I2C is kept at 400Khz or 100Khz.
Whenever the device which contains the BNO055 is kept stable I'm able to read the data continuously even while the multiple byte read method is used.
When the device is moved little I don't get the data continuous instead there will be no proper transactions in the bus, not only the Magnetometer readings im not able to read the chip Id and next bytes in the multibyte read method.
As the number of bytes read increases the transactions on the bus ceases.Ex:- If 2 byte read i get most data if it increases to 4 bytes the continuous data read ceases.
But if a single byte read is performed I'm able to read the data at 30Hz frequency.
Thanks for your inquiry.
On page 100 of BNO055 datasheet it says that BNO055 I2C interface uses clock stretching. Please check if your MCU also supports clock stretching or not.
Please provide your timing plotter of I2C bus (Captured by logic analyer) with and without the problem for us to better understanding your issue.
Kindly find the attached documents where the continuous logic analyzer file contains continuous multiple bytes read working when the device is kept at a constant stable position. Non-continuous logic analyzer file contains the non-continuous multiple bytes read when a movement of the device is made.
In both, the scenario the data is tried to capture at 33Hz frequency.