I am currently working on optical isolation of the i2c bus in order to remove the risk of damaging the PI from outside noise.

I am using Si8400 optical isolator but I was so far unable to make it work, so I would like to check with you if I am doing it all ok (and the reason for it not working is that I destroyed the part during soldering or something like that.)

I have a separate 5V usb power supply for the B side of the Si8400 and I am testing connection of an i2c thermometer TC74A5.

When the thermometer has power and i2c bus connected to the pi, I can see it using i2cdetect on its proper address (and all other i2c devices I have connected).

Then I tried connecting the the TC74A5 to the B side of the isolator, and I simply cannot see it using i2cdetect (all the other devices are still there).

Originally, I did not have a 3k pullup-resistor connected to the B side lines, which resulted in the i2cdetect not finding anything at all. After that I have connected two 3k 0.5W resistors between the +5V and the data + clock lines (one at each line). This has resulted in i2cdetect now reporting the devices connected straight to the PI but still no sign of the TC74A5 on the B side.

Am I doing something wrong with the connection?

To summarise the connections of the Si8400:

1 - AVDD - connected directly to Pi's 5V
2 - ASDA - connected directly to Pi's SDA
3 - ASCL - connected directly to Pi's SCL
4 - AGND - connected directly to Pi's GND

8 - BVDD - connected to another 5V power supply
7 - BSDA - connected to +5V using 3k resistor and to SDA of the TC745A
6 - BSCL - connected to +5V using 3k resistor and to SCL of the TC745A
5 - BGND - connected to the ground of the other PS

Si8400 data sheet
TC74 data sheet

  • 1
    \$\begingroup\$ Do you have decoupling caps (e.g. 100nF) on each pair of power pins of the Si8400? Also does the A side have pullups also? (it should do) \$\endgroup\$ – Oli Glaser Aug 23 '12 at 16:50
  • \$\begingroup\$ Did you include the power supply bypass caps on both sides of the Si8400? It uses keyed RF oscillators internally (it isn't optical), so this could be pretty important. \$\endgroup\$ – Dave Tweed Aug 23 '12 at 16:56
  • \$\begingroup\$ @OliGlaser No, I wired it as I described - I thought about adding those later after I test it. I think the A side (raspberry) should have the pullups built-in, shouldn't it? \$\endgroup\$ – petr Aug 23 '12 at 17:01
  • \$\begingroup\$ @DaveTweed are you referring to the same as Oli? ie note on the page 14 of the schematic \$\endgroup\$ – petr Aug 23 '12 at 17:03
  • 1
    \$\begingroup\$ As an aside, I was interested in using this IC in a medical device, but when I contacted Silicon Labs about where this IC was in its engineering life cycle, they didn't tell me, and when I asked for samples they turned me down cold because I'm affiliated with a university, and they don't sample universities. I moved my design efforts to the AD ADUM1250! \$\endgroup\$ – Scott Seidman Oct 22 '12 at 20:06

I think if you haven't got bypass caps present, then this is very likely to be the problem (especially given the RF isolation)
The datasheet recommends 1uF ceramic caps be placed on both sets of supply pins. Put them as close as possible to the pins.

Also, make sure you have the pullup resistors present on both sides.

If you have an oscilloscope, you should be able to test the lines easily (e.g. send repeated signal and see if what's going in one side is coming out okay the other)

  • \$\begingroup\$ ok, can try it out - just one more question - could I have damaged the part by not using the capacitors? What happens now (maybe the same happened also before, not sure) after plugging in power on the B side is that the IC gets really hot (I cannot even hold my finger on it). \$\endgroup\$ – petr Aug 23 '12 at 17:28
  • \$\begingroup\$ unfortunately, I do not have access to an osciloscope :( \$\endgroup\$ – petr Aug 23 '12 at 17:28
  • \$\begingroup\$ It's very unlikely not having decoupling caps would manage to damage the IC. If it's getting very hot, then it's possible you have a short somewhere, or the chip is not orientated correctly. Check all connections carefully (unfortunately this is all a lot more difficult with no scope - get hold of one as soon as you can if you are planning to do this stuff regularly) If you have a multimeter you can check the supply voltages are correct, and also the current draw is within datasheet limits (put multimeter in series for current, i.e. between supply and pin) \$\endgroup\$ – Oli Glaser Aug 23 '12 at 17:33
  • \$\begingroup\$ Tried the contacts with a multimeter and it seems that pins 1 and 4 show connection - so I must have damaged the chip internally :( Well, need to order another part.. I must have done something wrong along the way. \$\endgroup\$ – petr Aug 23 '12 at 17:37
  • 1
    \$\begingroup\$ If "the PI" provides pull-ups, and you connected the PI to the I2C bus, then you have provided pull-ups. But not everyone here knows what the PI provides and doesn't provide...That's up to you as the designer of your circuit/system. \$\endgroup\$ – The Photon Aug 23 '12 at 17:47

First, a minor correction, the Si8400 is not an optical isolator, it's an RF isolator.

My guess would be that the voltage levels on the A side are not compatible with the Si8400. See page 19 in the Si8400 datasheet. Unfortunately, it seems that the Raspberry Pi's electrical characteristics are not documented, so you'd need to check things on an oscilloscope to see if this is causing your issue.

  • \$\begingroup\$ ok, that makes a lot of sense - however, shouldn't i2c be a standard voltage? \$\endgroup\$ – petr Aug 23 '12 at 17:22
  • \$\begingroup\$ @petr, no. I2C can be run on essentially any voltage. \$\endgroup\$ – The Photon Aug 23 '12 at 17:41
  • \$\begingroup\$ @petr - No, you can use I2C with whatever voltage as long as master and slaves will recognize the same levels as high and low \$\endgroup\$ – stevenvh Aug 23 '12 at 17:41
  • \$\begingroup\$ I've just measured and the PI's I2C is running at 3.3V.. so that could be a problem I suppose? \$\endgroup\$ – petr Aug 23 '12 at 17:49
  • \$\begingroup\$ I also have P82B96 laying around, will start reading the docs to see if I can utilise that.. \$\endgroup\$ – petr Aug 23 '12 at 17:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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