4
\$\begingroup\$

I'm dealing with an application where our microcontroller is communicating with a slave device over I2C at 100 kHz fairly close to the MCU (less than 10 cm).

Everything works fine, but once we include TVS diodes on the lines communication with our slave fails with no acknowledge.

Vdd = 3.3 V, f = 100 kHz

These are the TVSs we've tried that have caused issues:

My thinking is that these are meant to protect high speed data lines and since we're only at 100 kHz, this causes problems. Am I correct in this?

UPDATE: Turns out it had nothing to do with the RCclamp. The slave device had an address change and we had no idea. Still very useful answers here.

schematic

simulate this circuit – Schematic created using CircuitLab

\$\endgroup\$
7
  • 1
    \$\begingroup\$ Pretty low capacitance (only a few pF each) - doesn't seem that likely. 5k pull-ups seem to be on the weak side though. Ideally you need to scope SCL and SDA rise/fall times with and without the TVSs in circuit to really understand what's happening here. \$\endgroup\$ Commented Feb 1 at 17:10
  • \$\begingroup\$ What do the oscilloscope waveforms look like, with and without? \$\endgroup\$ Commented Feb 1 at 17:15
  • 1
    \$\begingroup\$ They should work but neither component matches to your schematic. Your schematic fails to show how the components are really connected, and for example the chips don't share ground or supply either. And why protection is needed, unless there is hot-plugging involved? Please show how actual schematics and/or connections look like, maybe they are faulty. \$\endgroup\$
    – Justme
    Commented Feb 1 at 17:23
  • \$\begingroup\$ @AdamLawrence Isn’t that capacitance specified at 1MHz? I’ll definitely scope it after I remove these. \$\endgroup\$
    – BobaJFET
    Commented Feb 1 at 17:56
  • 1
    \$\begingroup\$ @Justme I've updated the schematic to show how I have RCLAMP0582BQTCT wired. I'd like to keep the question within the context of RCLAMP0582BQTCT only. Everything is one ground. Protection is needed for ESD from human contact on the PCB during service. \$\endgroup\$
    – BobaJFET
    Commented Feb 1 at 18:21

1 Answer 1

6
\$\begingroup\$

If the bus is kept on one PCB, without exiting it, then the combined ESD input protection of the MCU and the slave devices will do the protection job. How have you determined that you even need the clamp?

The clamp will be somewhere along the I2C bus, so if the bus is long, the clamp will mostly protect itself, and the trace inductances will make it "invisible" at the chips that are connected to the bus.

If somehow you've figured out that you need this protection, then you'll need a clamp very near to each IC connected to the bus. And you'll want an ESD gun and a proper wideband, high-voltage scope probing setup to measure what's going on - otherwise it'll be merely a "feel good" measure without practical impact.

The clamp has parasitic capacitance lower than a x10 scope probe input. Probing the I2C lines with a scope probe will affect them more than the clamp's capacitance will. In other words: the clamp is transparent to I2C signals, at any frequency supported by typical I2C systems.

\$\endgroup\$
4
  • \$\begingroup\$ There are I2C pins on the outside of the device which a human can touch. The slave device is on a separate PCB connected via a short cable. We intend to place the clamps near the MCU. Everything you've stated makes perfect sense to me, yet communication fails with these TVS diodes installed. Remove them, and everything works again. I'll try to post some o-scope pictures once I have them if I can figure this out. \$\endgroup\$
    – BobaJFET
    Commented Feb 1 at 19:05
  • \$\begingroup\$ The clamps must be placed at each entry/exit from the PCB. It doesn't make sense to place them near the MCU, since that's not where the transients will be, and you don't even know if the MCU is the most critically ESD-sensitive part. If ESD on I2C is a problem, everything connected to it needs to be protected. You want to suppress transients at the entry point to each PCB. Did you get the parts from DigiKey? You sure they are not fake? Have you measured their shunt capacitance and breakdown voltage to make sure they are what you think they are? Is the pin numbering not messed up on the PCB? \$\endgroup\$ Commented Feb 1 at 19:45
  • \$\begingroup\$ @BobaJFET In other words: if these diodes are what they are supposed to be, and are connected correctly, and the I2C pullups are correct, then it should work. If it doesn't, something simple is wrong. Start by replacing the TVS with two reverse biased 1N4148 diodes. That should give you at least a sanity check. Things should still work when you do that. Then measure the TVS out to make sure it is exactly what you expect it to be. \$\endgroup\$ Commented Feb 1 at 19:50
  • \$\begingroup\$ Something simple was wrong. The address changed on our slave device. Fixed. Thanks for the great answer nonetheless. \$\endgroup\$
    – BobaJFET
    Commented Feb 2 at 3:54

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.