I have a microcontroller connected to another I2C device.

I'd like to evaluate the I2C Logic Compatibility between the devices.

But since the I2C is an open-drain protocol, the resistors are outside the peripheral and there is no Voh, Vol levels for the I2C pins on both the Microcontroller and the I2C device.

In this case, how to evaluate the logic compatibility between the devices on I2C lines?

My microcontroller is the I2C Master.

It is powered up by 3V3 and external pull ups are also 3V3.

The pull-ups are 10k and the Vih and Vol of the microcontroller are 2.31V and 0.99V respectively.

EDIT: The I2C information of the device is present in this table. And this is the only table in the datasheet that has the voltage and IO logic related information.

And the Microcontroller I am using is S32K142. This is the I2C Master.

enter image description here

  • \$\begingroup\$ What are \$V_{IH}\$ and \$V_{IL}\$ for the I2C device? As long as everyone on the bus is interpreting logic levels the same way, and you aren't exceeding anyone's absolute maximum ratings with the pullup voltage, it should be fine. \$\endgroup\$
    – Dave Tweed
    May 18, 2021 at 11:34
  • \$\begingroup\$ What device it is and to which I2C modes and speeds it is compatible with? If it says it is compliant with I2C standard then it must adhere to I2C voltage levels in tha standard. Otherwise you need to see the Vil/Vih levels and Vol at some current, Voh is irrelevant. Though, 10k pull-ups may be too weak. \$\endgroup\$
    – Justme
    May 18, 2021 at 11:41
  • \$\begingroup\$ The Vih of the I2C device is 0.53*3.3V . There is no Vol from the I2C Device datasheet \$\endgroup\$
    – user220456
    May 18, 2021 at 11:54
  • \$\begingroup\$ Perhaps it is under another parameter. Which device/module/chip/whatever it is and does it have a public datasheet you can link to? \$\endgroup\$
    – Justme
    May 18, 2021 at 15:54
  • \$\begingroup\$ I have only the PDF version of the datasheet and I will attach that information in the question itself. \$\endgroup\$
    – user220456
    May 18, 2021 at 18:31

1 Answer 1


There are \$V_{OL}\$ specifications for I2C open-drain outputs. However, they are given for a specified value of current so you must size your resistor so that the actual current does not exceed that value and the \$V_{IL}\$ specification is met.

On the other hand, you must ensure that the leakage current of the I2C open-drain outputs, when passing through your pullup resistor, does not cause a voltage drop large enough that the \$V_{IH}\$ specifications are not met. This is rarely a problem.

Finally, you must verify that the \$RC\$ time constant of the pullup resistor and wiring capacitance will not exceed the maximum rise time specification for the bus, at whatever frequency you have chosen.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.