I'm trying to use an I2C isolator IC (ADuM1251) to isolate one of the slaves on my I2C bus.

Without the isolator, the communication works fine. With the isolator, my setup is the following:


I'm using 1μF decoupling capacitors. The master is connected to side 1 and the slave to side 2. The pull-up resistors on each side are chosen so the rise time of the signal on each side falls within the I2C specification.

Using the isolator, a read from the slave will work for a few bytes and then stop working. From the scope it looks to me like the the slave can't drive the bus low.


This results in the master reading the first few bytes correctly and 0xFF for the remainder. The slave should be able to source enough current to drop the lines low (3.3V, 2.2kΩ, max current source per pin is 4mA).

Any advice on how to proceed is awesome!

  • 2
    \$\begingroup\$ pls post your actual schematics with voltage and resistor values \$\endgroup\$
    – User323693
    Aug 7, 2015 at 11:03
  • \$\begingroup\$ Also post the complete waveform showing start / restart and address transmissions. \$\endgroup\$ Aug 7, 2015 at 12:20
  • 1
    \$\begingroup\$ Is the scope trace on side 2 or side 1? From the data sheet it looks like side 1 only has 3mA capability. You are asking for ~5mA. \$\endgroup\$ Aug 7, 2015 at 14:16
  • \$\begingroup\$ Not sure if it is a measurement error of your SDA, but it looks like you are coupling SCL pulses onto your data. \$\endgroup\$
    – cowboydan
    Aug 9, 2015 at 21:20
  • 1
    \$\begingroup\$ I increased the resistance on side 1, I think that's what was causing the issue. The reason I had such strong pull-ups was because I had a lot of noise on the bus to begin with... hence the isolators. Thanks!! \$\endgroup\$ Aug 10, 2015 at 20:47

1 Answer 1


The datasheet says Side 2 will draw 1.6 to 2.8mA when connected to 3.3V. The resistor setup you've provided draws 1.5mA from each resistor if both SDA and SCL are low, exceeding the source limit.

You can increase the resistor size so that they only used .5mA each, but that will increase RC time constant an limit your I2C clock speed if you need a fast I2C that is.

Otherwise you could use a 3.3v regulator on the slave side to take the power supply away from the slave.

  • 1
    \$\begingroup\$ I2C speeds only go up to 400kHz, so resistors can get pretty large before the RC time constant starts becoming a problem. \$\endgroup\$
    – Ben Voigt
    Aug 9, 2015 at 22:57

Your Answer

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

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