I am using an NXP PCA9600 I2C bus buffer to drive a 2 meter cable in a two wire configuration. My clock is 100KHz. The bus voltage is 5V and the device sides are 3.3V. I have 350 ohm pull-ups on the bus. There is also a Schottky diodes on both ends of the cable for transient protection when hot plugging. The cable is an HDMI cable. One of TX-RX lines is twisted with logic GND as shown and the other TX-RX line is twisted with 5V. Each pair is individually shielded with earth ground. (not shown).
My scope probes are on 10X and have been trimmed. In the scope capture, Blue is clock, Red is data and Green is ground reference. The attached scope trace is taken on the device side (SX & SY). The trace shows the clock low to be ~0.6V above zero (green ground reference). Is this normal? Also it looks like the slave acknowledge (red) actually does pull the line to zero. The diodes are on the transmission side, so it shouldn't cause the 0.6V shift, should it?
The circuit work. The two I2C slave devices respond. However my questions are:
- There seems to be excessive ringing as compared to some other I2C traces I've seen. What can be done to reduce this?
- Do the bus side diodes need to be on both ends of the transmission bus or only on the slave side?
- Do the device side pull-ups need to be both the same value? Would having different values cause the offset shown?
Any additional comments or tips are appreciated.