I2C pad settings behavior

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

I2C pad settings behavior

219 Views
YoshiDev
Contributor II

Hi, 

We have a board based around the i.MX8MP application processor. We are trying to optimize the signal integrity of an I2C bus. We have tried changing the pad settings. However, the pad settings do not seem to influence the signal at all. Is this expected? On our board, there is only a pull-up resistor and some sensors on the I2C bus. 

As a test, we have also changed the pad settings on GPIOs. In that case, we see a clear difference between different pad settings. We have changed the driver strength, and the open drain enable setting on both the GPIO pads and the I2C pads. Does the behavior of the pad settings depend on the chosen peripheral? How should the pad be configured for an I2C bus? 

 

Kind regards, 

Yoshi

0 Kudos
Reply
5 Replies

200 Views
Alejandro_Salas
NXP TechSupport
NXP TechSupport

Hello @YoshiDev 

 

Normally, in i.MX8MP the configuration pad is 0x400001c2 to the pad registers as you can see on device tree:

Alejandro_Salas_0-1718058896889.png

 

2 => DSE_X1

C => HYS and PUE enabled

1 => PE 

and 4 => SION

Alejandro_Salas_1-1718059086195.png

 

Best regards,

Salas.

0 Kudos
Reply

186 Views
YoshiDev
Contributor II

Hi @Alejandro_Salas , 

Thank you for your feedback. 

Are other pad settings not supported, or just not recommended? 

We are really wondering why changing the pad settings of the I2C signals does not change the signal, while the same works as expected for the GPIO signals. 

Kind regards, 

Yoshi

0 Kudos
Reply

182 Views
Alejandro_Salas
NXP TechSupport
NXP TechSupport

Hello @YoshiDev 

 

Could you please clarify "Are other pad settings not supported, or just not recommended? "?

 

Best regards,

Salas.

0 Kudos
Reply

178 Views
YoshiDev
Contributor II

Hi @Alejandro_Salas , 

I mean what happens when I configure the pad settings as 0x400001c6 instead of 0x400001c2? Or 0x400001e6? Will the interface stop working? Will the signal be less good? 

Because currently, we are not able to measure any differences between the different options. 

Kind regards, 

Yoshi 

0 Kudos
Reply

175 Views
Alejandro_Salas
NXP TechSupport
NXP TechSupport

Hello,

 

The recomended value is 0x400001c2, but yes, if you change some values the I2C interface can stop to work, for example if you enable the PE and you select Pull Down in PUE the interfaz will stop to work, because in I2C the lines must be Pull Up. Remember DSE is the drive strength field, higher DSE means more current that pad can drive (as output). Maybe if your design requiere to handle more distance between I2C master and Slaves, a Higher Drive Strength should works better.

 

Best regards,

Salas.

0 Kudos
Reply