This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TCA9617A: I2C pull ups required at one or both sides of the interface cable?

Part Number: TCA9617A
Other Parts Discussed in Thread: TCA9517A

We use the TCA9617A buffer for connecting 2 PCBs at the outside world with our main PCB. Both PCBs contain a few I2C chips (total number of 3 for both PCBs together)  and are connected by means of a ribbon cable with our main board at the same I2C bus (at the output of the TCA9617A buffer). The length of the cable for one board is around 0.5m and for the second board around 0.3m. The max I2C speed we use is 400kHz. 

My question  is what you would recommend here for the values of the pull resistors for SDA and SCL? Do you recommend to place pull ups at both side of the cables (e.g. 10k at the main board en 10k at both external PCBs so the total value will be around 3k3? Or would you recommend to use just one pull up resistor here at the main board? In our application the external PCBs will always be present here because our software checks if they are present and connected.

Best Regards

Chris van der Aar

Sr. Hardware Designer

NTS Systems Development

Eindhoven The Netherlands

  • Hey Chris,

    Are you connecting both TCA9617A's together? If so, I would be careful about this. I would recommend you have the A sides of the device connect to the Ribbon sides and the B side face the main boards.

    "The length of the cable for one board is around 0.5m and for the second board around 0.3m. The max I2C speed we use is 400kHz....values of the pull resistors for SDA and SCL? "

    The pull up resistor value should still be based on the rise time:

    The capacitance of the wire is what we would want to know. CAT 5 cable has around 50pF of capacitance per meter. I would expect the cables you are using to carry around 25pF of capacitance.

    As a rule of thumb, each I2C device should have 10pF MAX of capacitance on SDA/SCL.

    This should give you the capacitance values you need to run the equation.

    "Do you recommend to place pull ups at both side of the cables (e.g. 10k at the main board en 10k at both external PCBs so the total value will be around 3k3?" I would recommend pull up resistors on both sides as you've pointed out here. 10k on both sides will give about 5k together (2 equal value resistors in parallel is basically half of the original value). I've seen in practice that having pull up resistors on both sides did help with signal integrity.

    ----------------Some food for thought---------------------

    1 meter of cat 5 cable brings about 500 nH of inductance. In your case, I would assume from just the wires along you have around 250 nH of inductance, the connectors to the wires could further boost these numbers. Inductance is a parasitic annoyance in cable transmission because of its transient affects in circuits. (I am referring to inductive kickback events). You may end up seeing oscillation on your transmission, I would be cautious about undershoots in particular as undershoots could damage the I2C devices. (I am referring to the absolute minimum current most device are rated for which is typically -0.5V). I would recommend two things to include in your circuit:

    1) a small series resistor before both ends of the cable. This will help dampen the inductance because it will limit the overall instantaneous current. maybe 30~50 ohms. If anything, include a place holder for the resistors and verify whether or not you see the undershooting occur. If so populate the place holders with low series resistance.

    2) a schottky diode from ground to SDA/SCL. This will help to clamp negative swings and protect i2c devices. Diode I've used in before: BAT54A

    Lastly, TCA9617A may actually be overkill for your frequency and application. TCA9617A is meant for highly capacitive loads and 1MHz clock frequencies. The device itself was designed to be able to sink 30mA of current while still providing a low Rdson. This is normally a good thing but when we talk about inductive kickback, this actually means it makes inductive kickback events worse because of the low resistance when driving low causes a larger di/dt (larger means bigger voltage swings). You may want to switch to TCA9517A, it is a similar device but has a lower Rdson and was made to support 400kHz. They are both pin to pin devices so you could move ahead using the TCA9617A but if you find problems with its strong pull down strength then you could switch to TCA9517A later.

    Tip on the ribbon cable: you should seperate the SDA/SCL lines such that they are not directly next to each other if possible. The parasitic capacitance they share could introduce cross talk between SCL to SDA and cause some signal integrity problems. I would recommend space them in the middle with a GND wire.

    --------------Example of resistance calculation--------------------

    cable capacitance (0.5m of cable): 25pF

    3 slave devices: 30pF

    trace capacitance: 20pF

    Cbus total: 75pF (I wanna round up to 100pF incase I may have missed something/marginal error)

    Tr=300ns per I2C spec for 400kHz frequency

    Equation (7) from the app note I linked:

    Rp(max) = 300ns/ (0.8473*100pF) -->3500 ohms

    I want two pull up resistors on both sides which is close to 3500 ohms in equivalent resistance so I can choose two 7000 ohm resistors..... Choose 6000 ohms because we wanna have some room for error because we aren't accounting for parasitic resistances or the dampening resistors which may be included..... This gives us 3000 ohms of equivalent resistance which is below the required 3500.

    Hope this helps with your design, you may want to post schematics later on for a sanity check in case you think you missed something. If you cannot post on e2e, I can take a look offline here: duynguyen@ti.com

    -Bobby