I have a I2C Master as a MCU operating on 3.3VDC.

And a slave MCU operating at 5VDC.

I want to communicate between these two devices using I2C.

For level shifting 3.3V to/from 5V purpose I am using a I2C isolator ic ADuM1250.

At master side, 4.7kohm pull ups are used for communicating with other slaves at 3.3V.

Is it required to connect the pull up resistors at isolator second side i.e. 5V side?

If yes then what should be its value? enter image description here

  • 2
    \$\begingroup\$ There is an I2C bus coming from the left of the master (to slave 1) and another one coming from the right (to ADuM). Are they the same bus (in which case you shouldn't draw it like that, but rather put the master at a T-derivation of the bus)? Or are they different buses coming from different PINs on the MCU (in which case you should clearly indicate this in your description). Please clarify. \$\endgroup\$
    – dim
    Oct 26, 2016 at 12:55
  • \$\begingroup\$ Honestly, I would source alternative parts that all operate at the same voltage. I2C is intended to be a simple interface. Trying to level shift a bus who's outputs are intended to be ground or high impedance makes for a not so simple interface. \$\endgroup\$
    – st2000
    Oct 26, 2016 at 12:56
  • 1
    \$\begingroup\$ Do you require isolation? There are simpler/less expensive ways to deal with this issue, if not. According to the datasheet, you do require a pull-up on both sides of the isolator since the outputs are open-drain. I2C Pull-up value is a tradeoff between noise immunity, bus loading, SCL frequency, etc. There is no standard for the pull-up value. \$\endgroup\$
    – M D
    Oct 26, 2016 at 17:59
  • \$\begingroup\$ You only need one pair of pull ups on the slave side and one pair on the slave side \$\endgroup\$ Oct 27, 2016 at 10:54

1 Answer 1


You need pull-ups on both sides, electrically these are separate busses.

As to the value it depends on the capacitance on your bus to meet the required rise time for your I2C bus speed. I think this rise time is in the I2C specification. See here.


Not the answer you're looking for? Browse other questions tagged or ask your own question.