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). enter image description here

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?

Scope trace

The circuit work. The two I2C slave devices respond. However my questions are:

  1. There seems to be excessive ringing as compared to some other I2C traces I've seen. What can be done to reduce this?
  2. Do the bus side diodes need to be on both ends of the transmission bus or only on the slave side?
  3. 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.

  • \$\begingroup\$ the 0.6v logic low almost sounds like it is driven by a push-pull stage, not an od stage. what does the datasheet say about that? also, if you take out the pull-up on the sck line, would you still see the waveform? \$\endgroup\$ – dannyf Jan 21 '17 at 12:07
  • \$\begingroup\$ the ringing is likely the result of that (low output impedance from a push-pull stage, low pull-up, and long wires). 100khz is low enough to use such a low pull-up. \$\endgroup\$ – dannyf Jan 21 '17 at 12:08
  • \$\begingroup\$ looks like both ground and poor 3.3V decoupling noise and possible probe ground pickup noise. \$\endgroup\$ – Sunnyskyguy EE75 Aug 8 '17 at 7:50
  • \$\begingroup\$ Looks like the result of x1 probe with inductive ground lead and coax resonance> 10MHz \$\endgroup\$ – Sunnyskyguy EE75 Aug 14 '18 at 15:27

The Output low voltage on the output side is typical 0.6Volt in the configuration that you use. So that is normal. Where the slave pulls the clock low you see almost 0Volt this is normal behavior. The pull-up resistors are not causing this offset.

According to the data sheet the clamping diodes need to be placed on both sides to reduce the transients a close s possible to the chip inputs.

The ringing that you see can be affected by a lot of things. Compared to a similar setup in the fat adhere you're pull-up resistors are quite high. Also the capacitors on the lines are not displayed in you're drawing. Also the capacitance of your probes can affect the ringing. The datasheet is very complete about acceptable ringing on the lines.

  • \$\begingroup\$ "... this is normal behavior. The pull-up resistors are not causing this offset." Thanks! \$\endgroup\$ – JoeChiphead Jul 13 '16 at 15:28
  • \$\begingroup\$ "the capacitors on the lines are not displayed in you're drawing" The PC9600 data sheet only seems to indicate capacitors on the device side when using a ribbon or flat telephone cable, as shown in Fig. 14 and Table 7. Since I am using an HDMI cable with twisted, shielded pairs, I did not add any capacitors between the SX and ground. Also, it is not clear from Fig. 14 and Table 7 if capacitors C2 are simply representing the typical bus capacitance or if they are capacitors added to the circuit. Should I add them? Would this help reduce the ringing on the device side? \$\endgroup\$ – JoeChiphead Jul 13 '16 at 15:28
  • \$\begingroup\$ "The datasheet is very complete about acceptable ringing on the lines." It appears to me that the data sheet is very clear about LINE side ringing. It does not seam so clear on the acceptable DEVICE side ringing, which is where my posted scope traces are taken. I even looked at datasheet NXP UM10204 "I2c0bus Specification and User Manual" <nxp.com/documents/user_manual/UM10204.pdf> and it contains very little information in regards to acceptable ringing. \$\endgroup\$ – JoeChiphead Jul 13 '16 at 15:30
  • \$\begingroup\$ I changed the 4.7k resistor to a ~1K ohm. It had no effect on the ringing. The only effect was to change the clock to more of a trapezoidal wave. i.e. the charge curve became almost straight. \$\endgroup\$ – JoeChiphead Jul 13 '16 at 20:35
  • 1
    \$\begingroup\$ I'd rather try a few ten ohms series along tx/rx lines. You have to damp bus pull down. Just make sure.your low level remains low enough not to spoil noise margin. \$\endgroup\$ – carloc Aug 19 '16 at 15:20

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.