i2c galvanic isolation

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

Reply to
Henry
Loading thread data ...

formatting link

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

Reply to
kryten_droid

are

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

Reply to
Tauno Voipio

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

Reply to
Henry

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.

using

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

Reply to
Tauno Voipio

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
Reply to
rickman

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

Reply to
rickman

[...]

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.
Reply to
Hans-Bernhard Broeker

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 snipped-for-privacy@NOstacktoolsSPAM.com

gerard

Reply to
Gerard Zagema

Here's one idea. I've not tried it.

formatting link

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
Reply to
Spehro Pefhany

... snip ...

Simplify :-) You want a one wire path that detects collisions, can be 'wire or' connected, opto-isolated, etc. Go back further than open collectors and, presto: Current loop. Think mark/space.

I have driven 20 mA current loops, opto-isolated, through literally miles of extremely noisy environments, surrounded by elevators, diathermy, x-rays, you name it.

--
Chuck F (cbfalconer@yahoo.com) (cbfalconer@worldnet.att.net)
   Available for consulting/temporary embedded and systems.
     USE worldnet address!
Reply to
CBFalconer

Take look at

formatting link
This circuit should do the job (although I haven't tested it).

j.

Reply to
Jacek R. Radzikowski

Google

solution

cheap

need

for

has

Did you notice that there is a severe speed restriction?

The circuit does not go over 10 kHz, but the bus is 100 kHz or faster.

Tauno Voipio tauno voipio @ iki fi

Reply to
Tauno Voipio

I don't see any obvious reason why this circuit won't work at higher speeds than 10kHz. But I do see a problem which would result in a glitch when both sides are driving the bus and one side releases. As the released side rises, it has to reach a voltage of around 3.4 volts before the opto cuts off enough to let the other side turn on to drive back. This will be a short glitch and it is likely that the side doing the release will not be watching. But if any transactions are edge detected, this is likely to cause a false edge. Perhaps this has something to do with the speed limitation?

--

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
Reply to
rickman

We speak about i2c ! Having the benefit of directly interface to a mass of different chips. Current loops is another field.

Reply to
Henry

Surely. The Philips 82B96 does isolation for i2c with a little help. What you describe is more like Ethernet or other "networks". You can directly add chips to the bus and that is the benefit of i2c.

Reply to
Henry

Hi! I feel a strong need for a i2c newsgroup, webpage or yahoo group. Exists? All the webpages I know a very limited in parts to the subject i2c.

82B96 background info from Philips is here (interesting as they show other vendors circuits and historical info)
formatting link
Yes, I think the 82B96 doesn't know anything about the protocol. As I understand it the device works by sensing a differential voltage between external and internal signal. The Philips block diagram shows voltage sources of 0.6 volts in-line (= diodes?).
Reply to
Henry

I didn't notice any further discussion to the subject but would like that!! Hopefully it goes on ...

Reply to
Henry

Ask new question, then ;-) The old ones seem to be considered settled by everybody else.

--
Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
Even if all the snow were burnt, ashes would remain.
Reply to
Hans-Bernhard Broeker

Difficult to ask a unknown question :)

Reply to
Henry

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.