07-25-2019 05:38 PM
I am working with a BMI160 sensor shuttleboard for a research application, and am having difficulty performing a multiple-read operation using I2C. The datasheet says that when performing read operations, the registers should auto-increment. In my code, I write the first register I would like to read from (0x12) and then restart without releasing the bus and perform six consecutive reads. It appears that when I attempt to access the accelerometer data registers, I am able to get data from the first, third, and fifth registers (the LSB registers 0x12, 0x14, 0x16) but not from the second, fourth, and sixth (0x13, 0x15, 0x17).
I have tried adding delays between reads but this doesn't seem to work and throws things off entirely. I am using the MSP432 RED LaunchPad with Energia, which allows me to use the Arduino Wire library for I2C. I can upload my code if it would be helpful. If anyone has any ideas about how to solve this problem I would be deeply appreciative.
07-26-2019 07:24 AM
BMI160 supports burst read. It is strange that you got the toggling address value.
Please upload your waveform based on logic analyzer for review