IMU not detecting on I2C

Discussion in 'UDOO X86' started by sjpwap, Mar 20, 2018.

  1. sjpwap

    sjpwap New Member

    Joined:
    Mar 20, 2018
    Messages:
    3
    Likes Received:
    0
    I am using an UDOO x86 for a project and wish to connect an IMU to it using the Braswell I2C pins; however, when I use i2cdetect, it does not show up. My configuration is as follows:

    Board: UDOO x86, Ubuntu 16.04
    IMU: GY-91 (MPU-9250)
    Wiring: SDA and SCL to I2C bus 2 (Braswell Pins 39 and 38)
    Power to 1.8V (Pin 33) and Ground on Pin 32
    I am also using a logic level shifter to convert from the IMU's 3.3V level to the Braswell's 1.8V.

    I have tested the IMU using an Arduino to verify that it was actually publishing, and checked the output of the IMU combined with the logic level shifter using an oscilloscope. The IMU and the logic shifter seem to be spitting out data correctly, but still nothing comes up.

    I am having difficulty finding advice online on how to use the I2C on this board. Could someone help me? What am I doing wrong and how should I communicate with the IMU?
     
  2. waltervl

    waltervl UDOOer

    Joined:
    Dec 12, 2015
    Messages:
    2,314
    Likes Received:
    580
  3. sjpwap

    sjpwap New Member

    Joined:
    Mar 20, 2018
    Messages:
    3
    Likes Received:
    0
    Thanks for responding so quickly.

    1) I was aware, but the onboard IMU does not have a magnetometer which we need for our project.
    2) I have tested my level shifter with the IMU using an Arduino, going down from 5V to 3.3V. The IMU continued to publish to I2C without issues, although the output values were skewed slightly. Are the specific voltages involved significant?
     
  4. waltervl

    waltervl UDOOer

    Joined:
    Dec 12, 2015
    Messages:
    2,314
    Likes Received:
    580
    2) see the discussion I referred to. Perhaps ask your question again there to get more answers.
     
  5. sjpwap

    sjpwap New Member

    Joined:
    Mar 20, 2018
    Messages:
    3
    Likes Received:
    0
    An update on the issue:
    Following investigation via an oscilloscope, we found that the data line was being cut off before rising back up to logic high, due to high impedance of the logic shifter’s internal pull-up resistors. We tried to attach smaller pull-up resistors in parallel to offset this, but it didn’t work. Our next step is to try changing the I2C clock speed. How would I go about doing this?
     

Share This Page