Changing I2C Configuration

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Changing I2C Configuration

998 Views
mcergun
Contributor III

I'd like to change I2C voltage on DVP port. I have checked device tree for some hints but all I can find is this:

        DOVDD-supply = <&vgen4_reg>; /* 1.8v */
        AVDD-supply = <&vgen3_reg>;  /* 2.8v, on rev C board is VGEN3,
                        on rev B board is VGEN5 */
        DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
        pwn-gpios = <&gpio1 16 1>;   /* active low: SD1_DAT0 */
        rst-gpios = <&gpio1 17 0>;   /* active high: SD1_DAT1 */

There is no information about any of the *-supply variables.I can understand AVDD stands for analog VDD and DVDD stands for digital VDD but still it's not really clear.

Are they(DOVDD, AVDD, DVDD supply) for CSI-DVP configuration?

Can they also control I2C voltages?

Are I2C settings fixed, and not changeable?

Labels (4)
0 Kudos
3 Replies

813 Views
Carlos_Musich
NXP Employee
NXP Employee

Hi mert can ergun,

 

My understanding is that you want to change the I2C operation voltage of the DVP (camera connector). Is this correct? So, in this case it would be necessary to modify HW rather than SW.

 

In SABRE board design, you can find that the I2C master signal comes from CSIO_DAT8 -> I2C1_SDA and CSIO_DAT9 -> I2C1_SCL pins on IMX6Q.

 

 pastedImage_1.png

 

I2C1_SCL is connected to CSIO_SCL and I2C1_SDA is connected to CSIO_SDA, and both are connected with a pull-up to GEN_1V8

pastedImage_2.png

pastedImage_3.png

 

Then CSIO_SCL y CSIO_SDA is connected to J9 which is the camera connector for DVP.

pastedImage_4.png

 

 

 

Now, changing the I2C voltage could be done in different ways:

 

OPTION 1:

 

Change pull-ups, instead of “GEN_1V8” they may be connected to a power rail with the required voltage. Please note that in this case all the devices connected to this rail must support the same voltage, otherwise you may use option 3.

 

 

OPTION2:

 

You may also change voltage in VGEN4 on PF0100 (which is source of GEN_1V8) by modifying “VGEN4” (3:0) field in “VGEN4CTRL” register (addr 0x6F):

pastedImage_5.png

 

Or if OTP programming is required you may modify “VGEN4_VOLT” (3:0) field of “OTP VGEN4 VOLT” register (addr 0xD4):

pastedImage_15.png

Please note that in this case all the devices connected to this rail must support the same voltage, otherwise you may use option 3.

 

 

OPTION3:

You may use I2C level shifter, this device allows having different voltage levels in the same I2C rail, below you can see an example (U10) implemented in SABRE board:

 

pastedImage_16.png

 

If you consider option 3 to be the best option we can provide advice and recommend and NXP I2C level shifter.


Regards,
Carlos

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

813 Views
Carlos_Musich
NXP Employee
NXP Employee

Hello mert,

what device are you using?

0 Kudos

813 Views
mcergun
Contributor III

Hi Carlos,

I am using a physically smaller copy of imx6 quad sabre board(connections remain the same).

0 Kudos