[CLOSED] Disabling I²C internal pull-ups (on i.MX6)

Discussion in 'UDOO QUAD' started by AstroJohnny, Apr 10, 2017.

Tags:
  1. AstroJohnny

    AstroJohnny New Member

    Joined:
    Apr 10, 2017
    Messages:
    2
    Likes Received:
    1
    Hello!
    I'm using MPU-6050 IMU attached to i.MX6 i2c1 pins on Linux. I've attached it with Device Tree and it works fine.

    OK, the thing is: I probed SDA and SCL pins and noticed they "idle" at 1.8V, which is out-of-specs (too low) for the chip. I want them to be pulled to 3.3V externally.

    My breakout board/shield for the chip carries 4.7kΩ pull-up resistors (to 3.3V) for I²C pins, and I've recently discovered the UDOO board has another 4.7kΩ pull-up resistor pair attached to EIM-D21/I2C1_SCL and EIM_D28/I2C1_SDA pins, also pulling to 3.3V [1, p.6, C4].

    I'm quite sure 1.8V is due to i.MX6 having internal pull-ups for those pins, and surely there is a relevant entry in [2]:
    Code:
    		pinctrl_i2c1: i2c1grp {
    			fsl,pins = <
    			MX6QDL_PAD_EIM_D21__I2C1_SCL		0x4001b8b1
    			MX6QDL_PAD_EIM_D28__I2C1_SDA		0x4001b8b1
    			>;
    		};
    and according to i.MX6Q reference[3, sec. 36.4.234., p. 2200] have pull-ups enabled.
    I changed this to:
    Code:
    		pinctrl_i2c1: i2c1grp {
    			fsl,pins = <
    			// NOTE: Internal pull-ups disabled
    			MX6QDL_PAD_EIM_D21__I2C1_SCL		0x4001a8b1
    			MX6QDL_PAD_EIM_D28__I2C1_SDA		0x4001a8b1
    			>;
    		};
    compiled the .dtb and put it in SD card, but no luck... still 1.8V.

    I have no further clue what's going on. Anyone has an idea?


    [1] http://download.udoo.org/files/schematics/UDOO_REV_D_schematics.pdf
    [2] arch/arm/boot/dts/imx6qdl-udoo.dtsi
    [3] http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf
     
  2. AstroJohnny

    AstroJohnny New Member

    Joined:
    Apr 10, 2017
    Messages:
    2
    Likes Received:
    1
    Hello again!
    I retested on a fresh UDOO Quad board and it works as expected. It's now evident to me that the 1.8V level is caused by the SAM3X chip which had sustained damage from a short circuit a while back.

    While the above is the correct way to disable the internal pull-ups on i.MX6 for I²C pins, it's not needed to disable them in virtually any case. The default pull-up strength of internal pull-ups is 100kΩ, thus having negligible effect if you add any external pull-up on few kΩ range (e.g., 4.7kΩ).

    Case closed. Sorry for the noise.
     
    waltervl likes this.

Share This Page