Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am designing a circuit which will have some external I2C sensors connected to it and thus I want to protect it from noise - via an optocoupler. I have to say that I am a complete novice to this all and after much searching, I came up with following source: Opto-electrical isolation of the I2C-Bus

The thing is, I would ideally like to see an IC, which would have two sides and I would plug in power + signal lines of the both sides into either side and it would do it all, without any extra complexity. I have looked at RS components but to be honest, it just makes my head spin and I cannot really see which one to choose. Which IC can I use here?

share|improve this question
I2C can be tricky to optoisolate due to its bidirectional nature (and the fact its a wired-OR gate) - is SPI an option for your sensors? Much easier to optoisolate – BullBoyShoes Aug 15 '12 at 11:39
up vote 2 down vote accepted

Are you sure you need isolation? The I2C bus carries digital signals, and is relatively low impedance; you can go as low as 2 kΩ. So noise may not be a too big problem there.

If it's the power supply you worry about then isolating the bus doesn't make much sense. Make sure the sensors' power supplies are properly decoupled. For a proper PSRR (Power Supply Rejection Ratio) you can have a separate LDO close to each sensor.

If you think you do need isolation this document may help to get you started.

If you want to protect your RPi against spikes there may be a more simple solution: use TVS (Transient Voltage Suppression) diodes, possibly in combination with a small series resistor. That resistor's value shouldn't be too high for two reasons: it will form a divider with the pull-ups and so lift up your low level, and also it will deteriorate the falling edges of your signal. 100 &Omega might be a good value. For the TVS diodes you could use these, for instance.

Further reading
Opto-electrical isolation of the I2C-bus, NXP application note

share|improve this answer
The reason for isolation is that I want to avoid noise getting through the wires and into the main device (raspberry pi) to prevent its damage - I was advised that there should be no direct wire connection between the inside and the outside world - does that make sense? – petr Aug 15 '12 at 9:32
@petr - It might. Depends on how hostile the outside world is. Like I said I2C are digital signals, and the first thing what happens to them at the receiving end is buffering, i.e. cleaning up the levels to Vdd and ground, resp. If there would be any noise on it that would be the end of it. I would be a bit more worried about the power supply. Do your sensors have separate power supplies? – stevenvh Aug 15 '12 at 9:48
Yes, I intend to have a separate power supply for the PI and the sensors. The only two wires going into the PI from the outside world would be the i2c interface. I am worried about some spike getting from the sensors into the PI to and frying the i2c circuit (or more). That's why I want to have complete separation between those two. And I want to do it as simple as possible as I really am not that proficient in troubleshooting more complex circuits. I am thinking about having a component with 8 wires, 4 each side (i2c+power) to provide the separation. – petr Aug 15 '12 at 9:54

You want the ADUM1250, which is not optical but is an isolator.

share|improve this answer

If you don't need galvanic isolation, a bidirectional buffer like the NXP P82B96 may be all that you need. (This part is often used with optos, but works just fine as a buffer by itself.)

Optocouplers can pose challenges at high frequencies, especially if you intend to operate at 100kHz or higher. CTR, propagation delays and current consumption are all key areas that need to be considered when optically isolating the bus.

Digital isolators from ADi and Silicon Labs are robust and don't require lots of external parts, but can be expensive compared to simpler solutions (especially if you don't need galvanic isolation.)

share|improve this answer

There are some parts specifically designed for I2C isolation http://www.mouser.com/Semiconductors/Interface-ICs/Digital-Isolators/_/N-62fhb?Keyword=i2c

E.g. ISO154x parts have power and ground on both sides and bidirectional (SCL and SDA or bidirectional SDA and unidirectional SCL) as you want.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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