BBB and MPU6050 I2C errors

87 views
Skip to first unread message

E Mag

unread,
Mar 7, 2017, 2:52:10 PM3/7/17
to BeagleBoard

Hello,

I am trying to interface the BBB with an MPU6050 accelerometer/gyroscope.

I am using the i2c-1 bus, with the interrupt connected to an unused pin. I am running kernel version 3.14.57-ti-r78, with the included inv-mpu6050 kernel mode driver.

It seems to work well, but when I increase the sampling frequency (FIFO rate) of the IMU, I start getting a lot of i2c errors in dmesg, such as:

Mar  7 13:28:16 DL-EM01 kernel: [  362.893943] omap_i2c 4802a000.i2c: SDA is stuck low, driving 9 pulses on SCL
Mar  7 13:28:19 DL-EM01 kernel: [  365.784033] omap_i2c 4802a000.i2c: SDA is stuck low, driving 9 pulses on SCL
Mar  7 13:28:21 DL-EM01 kernel: [  368.651978] omap_i2c 4802a000.i2c: controller timed out
Mar  7 13:28:23 DL-EM01 kernel: [  369.674012] omap_i2c 4802a000.i2c: SDA is stuck low, driving 9 pulses on SCL
Mar  7 13:28:26 DL-EM01 kernel: [  372.554164] omap_i2c 4802a000.i2c: SDA is stuck low, driving 9 pulses on SCL

The BBB usually crashes shortly thereafter.

I tried putting the i2c bus into fast-mode via the device tree, but the problem still occurs. If I reduce the sample rate, it happens less often. 

I don't quite understand what would be causing the entire i2c subsystem to crash? Has anyone had any success with this? I tried writing a userspace driver that simply polls the MPU6050 and it runs fine, albeit without interrupts.

Thank you
Reply all
Reply to author
Forward
0 new messages