2
\$\begingroup\$

I'm trying to communicate between several MCUs with I2C using a Teensy as the master and a TCA9406DCTR as a level shifter. I'm currently testing the I2C signals from the Teensy without any other MCUs connected.

I seem to be getting quite a lot of overshoot on both the clock and signal lines on the Teensy, over 500mV which concerns me that it may damage it and comms is unstable. 3.3V I2C Clock

The 5V side of the TCA9406DCTR is even worse, about 1.8V overshoot and -1V undershoot. 5V I2C Clock

My current thinking is that I probably need to revise my PCB layout a bit and make sure the traces between the Teensy and the TCA9406DCTR are as short as possible although they aren't that long (approx. 120mm). Possibly I need to find a better alternative to the TCA9406DCTR.

What can I do to reduce the overshoot and make a more stable I2C signal?

EDIT:

The issue is there with no other MCUs connected.

Here is the schematic in question:

Teensy I2C

The layout of the PCB in that area:

Teensy PCB

I2C Clock signal directly from a stand-alone Teensy as measured using the same method as before just to confirm that the scope ground should be adequate (I'm just using the spring clip on the probe directly to ground on the Teensy board):

I2C Teensy signal

\$\endgroup\$
11
  • 3
    \$\begingroup\$ Make sure you are probing the signal corrrectly - the most common cause of this is that the ground lead of the scope is too long. Make it VERY short and see what it looks like. \$\endgroup\$ Commented Sep 11, 2020 at 15:42
  • \$\begingroup\$ Joe - Hi, I recommend adding the schematic. (a) Although you mention the second scope trace is a 5 V I2C signal (SCK, I guess), it doesn't look correct in more than the overshoot. Specifically, the logic high on that supposed 5 V side settles around 3.3 V not 5 V, so there is something going on. (b) The overshoot is unlikely to be that bad really (as Kevin has mentioned). I would start by investigating the probing technique used, and try to get a higher-resolution image. However point (a) above still remains a concern. || Can you add the schematic and perhaps some photos of the hardware? \$\endgroup\$
    – SamGibson
    Commented Sep 11, 2020 at 15:43
  • \$\begingroup\$ Are the MCU's on the same board as the Teensy? How many are there. Without a schematic it's tough to tell what the problem might be. As others have mentioned don't use a long ground lead on your probe. Use the ground spring tip on your probe. \$\endgroup\$
    – mrbean
    Commented Sep 11, 2020 at 15:47
  • \$\begingroup\$ @SamGibson - Good point about the 5V signal - clearly something isn't right there. Faulty chip possibly? \$\endgroup\$
    – Joe
    Commented Sep 11, 2020 at 16:03
  • 1
    \$\begingroup\$ @SamGibson. Appreciate the help. I think my course of action will be to revise the layout with a simpler I2C translator and see how that goes. \$\endgroup\$
    – Joe
    Commented Sep 11, 2020 at 19:47

2 Answers 2

2
\$\begingroup\$

The level translator chip might be more complex than what you would expect from a simple I2C level translator. It has internal push stage for rise time acceleration and can work up to 2 Mbps opendrain signals and 24 Mbps pushpull signals. So if you have no load connected, also the rising edge is accelerated to look like square wave when there is no load. The chip also has internal 10k pull-ups to respective supply which is very light load.

So with incorrect probing techniques and incorrectly compensated probes, the insides of the level translator chip explains the overshooting and undershooting that you see on the scope. You did use the ground spring, also make sure the probes are at 10x setting, and that the probe compensation is properly adjusted.

I also recommend to switch to more normal level translator chip than TCA9406.

Definitely put separate I2C pull-up resistors, as you can just leave them out if you don't need them.

\$\endgroup\$
4
  • 1
    \$\begingroup\$ Sounds like the edge rate accelerators just bypass the internal 10k pullups during low to high transitions. \$\endgroup\$
    – mrbean
    Commented Sep 11, 2020 at 17:56
  • \$\begingroup\$ @mrbean Yes, the diagram in the datasheet shows it works like that. \$\endgroup\$
    – Justme
    Commented Sep 11, 2020 at 18:22
  • 1
    \$\begingroup\$ I'd be particularly worried about the edge rate acceleration interacting poorly with the long supply traces and potentially somehow even confusing itself. Especially if we're then seeing ground bounce between the probe ground and tip. \$\endgroup\$ Commented Sep 11, 2020 at 18:27
  • \$\begingroup\$ The TCA9406/TXS0102 indeed can be made to oscillate if there is too much ringing on the signal lines. More normal translators would be the PCA9306/LSF0102 or a buffer like the TCA9517. \$\endgroup\$
    – CL.
    Commented Sep 12, 2020 at 19:14
1
\$\begingroup\$

Make sure you are probing the signal correctly - the most common cause of this is that the ground lead of the scope is too long. Make it VERY short and see what it looks like.

It is probable that there is nothing wrong with your I2C signal.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.