I have an "interesting" problem. I hope I can explain my setup in a way it's understandable :wink:
1- ELV USB to I2C converter in the house, connected to computer (USB) and local I2C bus where a attiny861a is connected (using I2C).
2- I2C bus extender (P82B715) connected to the local I2C bus, it has no pull ups on the local bus (the ELV converter already supplies these) and it has 4k7 resistors on the "remote" bus, calculated from the datasheet
3- 2 meters (6 ft) of cat 5e UTP cable that carries the remote I2C bus outside the house, pairs connected/twisted as advised in the PB82B715 documentation (that is: pair every signal line with a ground line)
4- complementary I2C bus extender on the outside (not exposed to weather etc., btw.), no pullups on the "remote" side, 2x 4k7 on the local side.
5- the "outside" local bus has a attiny85 connected, as well some I2C sensors (digipicco, tsl2550, ds1731).
Believe it or not, but this works, no problem.
Problems started to show, though, when I started applying TVS diodes to all cables going outside the house. After long long searching I found out the problem was the TVS diode between SDA ("remote bus") and ground. I did replace the TVS diode of course, but no change. Also, the TVS diode on the SCL never was a problem.
So now I placed a 10k resistor in series with the TVS diode and now it works. I cannot be any smaller resistor, then it fails again.
This is very unsatisfactory of course, this won't give much protection against ESD...
The suprising thing is that I have a similar setup at another location and that works, including TVS on the SDA line.
Also I tried various TVS diodes, rated from 6V8 to 22V, no change.
I guess it has something to do with the parasitic capacitance of the TVS, but why only on SDA then? Also the TVS is on the "remote bus" which may be up to 3000 pF, of wich only 100 pF are "consumed" by the cable and converter.
Otherwise suggestions for other means of ESD-protection on SDA?
P.S. I already made a whole new print with the converter IC on it, to rule out any stupid errors. On the way along, I also added indicators for SCL and SDA using 2 leds + 2 transistors (inverting), it's quite fun to see :wink: