EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

i2c galvanic isolation

Started by Henry December 19, 2003
Hi!
I need a i2c bus isolation with optocouplers or another technology. Google
doesn't know interesting hits. Any hints other than the Philips solution
with i2c bus drivers and optocouplers? An integrated solution as a cheap
sockable DIP or SMD device would be great.
I wonder that none of the big semiconductor producers is interested
producing such a device many people need. Hey marketing engineer, where are
you??
Greetings -
Henry



http://cgi.microrobotics.plus.com/docs/pdf/opto-i2c.pdf

Though note the error around U4:
VCC2 should _not_ supply both sides of the isolator.



"Henry" <otc_friend@gmx.net> wrote in message
news:3fe373ce_1@news.arcor-ip.de...
> Hi! > I need a i2c bus isolation with optocouplers or another technology. Google > doesn't know interesting hits. Any hints other than the Philips solution > with i2c bus drivers and optocouplers? An integrated solution as a cheap > sockable DIP or SMD device would be great. > I wonder that none of the big semiconductor producers is interested > producing such a device many people need. Hey marketing engineer, where
are
> you?? > Greetings - > Henry
Did you just ask for isolation of Maxim/Dallas single-wire bus? The basic problem is the same: the bus is essentially an open-drain bidirectional bus, but the available isolators are unidirectional. You need to bridge both the clock and the data line with two isloators each, one for each direction. To prvent inventing an isolating flip-flop, the isolator has to understand pretty deeply the bus protocol to select the direction properly. The contention mechanisms in I2C make this a challenging situation. HTH Tauno Voipio tauno voipio @ iki fi
Hi!
Yes, I understand what you mean and the bus is NOT the 1-wire bus.
Philips have an app note featuring the new 82B96 on each bus side and using
four optocouplers. Their circuits works without deep knowledge of the bus
protocol. I think there must be other solutions possible.
Knowing the current bus state explicitly, e.g. if one side is the
controlling master, should help.
- Henry



"Henry" <otc_friend@gmx.net> wrote in message
news:3fe44fac_1@news.arcor-ip.de...
> Hi! > Yes, I understand what you mean and the bus is NOT the 1-wire bus.
Sorry for asking, there was just a question about isolating the 1-wire bus. You should still find the thread from this very same group. I2C is more complicated to isolate due to the multi-master architecture.
> Philips have an app note featuring the new 82B96 on each bus side and
using
> four optocouplers. Their circuits works without deep knowledge of the bus > protocol. I think there must be other solutions possible. > Knowing the current bus state explicitly, e.g. if one side is the > controlling master, should help. > - Henry
Right. If you think that there may be slaves on both sides of the isolation clamping the clock simultaneously or masters negotiating for the bus, you'll see the problem. Are you sure that the Philips chip does not understand the protocol? Tauno Voipio tauno voipio @ iki fi
Tauno Voipio wrote:
> > "Henry" <otc_friend@gmx.net> wrote in message > news:3fe373ce_1@news.arcor-ip.de... > > Hi! > > I need a i2c bus isolation with optocouplers or another technology. Google > > doesn't know interesting hits. Any hints other than the Philips solution > > with i2c bus drivers and optocouplers? An integrated solution as a cheap > > sockable DIP or SMD device would be great. > > I wonder that none of the big semiconductor producers is interested > > producing such a device many people need. Hey marketing engineer, where > are > > you?? > > Greetings - > > Henry > > Did you just ask for isolation of Maxim/Dallas single-wire bus? > > The basic problem is the same: the bus is essentially an open-drain > bidirectional bus, but the available isolators are unidirectional. You need > to bridge both the clock and the data line with two isloators each, one for > each direction. To prvent inventing an isolating flip-flop, the isolator has > to understand pretty deeply the bus protocol to select the direction > properly. The contention mechanisms in I2C make this a challenging > situation.
Depending on how the basic I2C controller is implemented, this is not a big deal. If the I2C interface is totally within a chip, then it might be tricky. But if the I2C interface is in a PLD or MCU where you can control the external interface, then it is a slam dunk. All you need is access to the open drain driver (I am finally getting used to not calling it "open collector"...). You substitute the OptoIsolator for the OD driver and add a second OI for the receive (on a separate MCU/PLD pin) and you are done! The only electrical issue I see is that it would take a wopping pullup to supply a bunch of OI with current, so I expect you would need access to the bus Vcc (or is it Vdd?) and wire the OI inputs as pullups. Then the active OI output would connect the bus to ground to draw current through the OIs. This may require a lot more current than the bus is normally designed for. But that should be a good thing since it will speed up the transitions (unless you are worried about the EMI). Of course you could add a transistor driver to reduce the loading, but you still need a common Vcc to drive the bus side of the OI and transistor. -- Rick "rickman" Collins rick.collins@XYarius.com Ignore the reply address. To email me use the above address with the XY removed. Arius - A Signal Processing Solutions Company Specializing in DSP and FPGA design URL http://www.arius.com 4 King Ave 301-682-7772 Voice Frederick, MD 21701-3110 301-682-7666 FAX
Henry wrote:
> > Hi! > Yes, I understand what you mean and the bus is NOT the 1-wire bus. > Philips have an app note featuring the new 82B96 on each bus side and using > four optocouplers. Their circuits works without deep knowledge of the bus > protocol. I think there must be other solutions possible. > Knowing the current bus state explicitly, e.g. if one side is the > controlling master, should help. > - Henry
You did not supply a link for the circuit, so I don't know how they are doing it. But it appears to me that you either have to build something that *does* understand the protocol, or you use the smarts that is already doing this and let it control your optoisolators. Do the Philips chips have separate pins for input and output? If so, this is a trivial design. If not, you need to figure out when the chip is driving and when the bus is driving. That will take current sensors in both sides. It can be done, but is messy and difficult. Pullup Pullup | | To control<-----+----------------------+ | | Sense Resistor Sense Resistor | | To control<-----+ To control<-----+ | | Isolation |-- --| I2C Cntl Control ---|| Opto output ||---- |-- --| | | | | V V The controller has to sense the current drawn by the I2C controller output. You might not need to sense the current through the Opto output, but you would need a resistor to prevent the Opto output from "hogging" all the current and making the I2C output appear to be off. When the voltage across the I2C sense resistor is above a threshold, you drive the Opto which drives the bus. You need a similar circuit on the bus to detect when the bus is driving the Opto input. -- Rick "rickman" Collins rick.collins@XYarius.com Ignore the reply address. To email me use the above address with the XY removed. Arius - A Signal Processing Solutions Company Specializing in DSP and FPGA design URL http://www.arius.com 4 King Ave 301-682-7772 Voice Frederick, MD 21701-3110 301-682-7666 FAX
Henry <otc_friend@gmx.net> wrote:

> I need a i2c bus isolation with optocouplers or another technology.
[...]
> I wonder that none of the big semiconductor producers is interested > producing such a device many people need. Hey marketing engineer, > where are you??
Maybe the reason nobody seems interested in doing this is that this hardly ever is needed. I2C, as far as I recall, is designed almost exclusively for short-range usage, usually to connect items all sitting on the same PCB, using the same power supply. Galvanic isolation would then be in direct contradiction to the basic design principles of the bus. In other words: if you need it galvanically isolated, I2C quite likely wasn't the right choice of connection in the first place. The only sane way to galvanically isolate a bidirectional data line is to have a line driver that exports separate lines per direction of the bus, so you can put unidirectional isolators on each of those. That's how, e.g., CAN bus is usually done. The CAN controller (a "MAC", in networker terms) has a "RX" and "TX" line, and the CAN transceiver (the "PHY") connects those to the actual bus. Opto-isolation can be had either integrated into the transceiver, or by putting discrete optos between the MAC and PHY. But since I2C is usually done directly by connecting the wires to bi-directional port pins of the MCU, without any transceiver between it and the bus, there's no place to insert galvanic isolation. -- Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de) Even if all the snow were burnt, ashes would remain.
Henry,

if you send me your email address. I will send you a schematic for a very
simple but very good working isolation of I2C. It needs four opto's (two for
SCL and two for SDA) and a couple of diodes.

email gerard.zagema@NOstacktoolsSPAM.com

gerard


On Fri, 19 Dec 2003 22:57:29 +0100, the renowned "Henry"
<otc_friend@gmx.net> wrote:

>Hi! >I need a i2c bus isolation with optocouplers or another technology. Google >doesn't know interesting hits. Any hints other than the Philips solution >with i2c bus drivers and optocouplers? An integrated solution as a cheap >sockable DIP or SMD device would be great.
Here's one idea. I've not tried it. http://www.reed-electronics.com/ednmag/contents/images/111199di.pdf Best regards, Spehro Pefhany -- "it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com

The 2024 Embedded Online Conference