0
\$\begingroup\$

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

Links:
Si8400 data sheet
TC74 data sheet

\$\endgroup\$
7
  • 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, 2012 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, 2012 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, 2012 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, 2012 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\$ Oct 22, 2012 at 20:06

2 Answers 2

1
\$\begingroup\$

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)

\$\endgroup\$
9
  • \$\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, 2012 at 17:28
  • \$\begingroup\$ unfortunately, I do not have access to an osciloscope :( \$\endgroup\$
    – petr
    Aug 23, 2012 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, 2012 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, 2012 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, 2012 at 17:47
0
\$\begingroup\$

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.

\$\endgroup\$
8
  • \$\begingroup\$ ok, that makes a lot of sense - however, shouldn't i2c be a standard voltage? \$\endgroup\$
    – petr
    Aug 23, 2012 at 17:22
  • \$\begingroup\$ @petr, no. I2C can be run on essentially any voltage. \$\endgroup\$
    – The Photon
    Aug 23, 2012 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, 2012 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, 2012 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, 2012 at 17:58

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.