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.

P82B96: Attempting to send I2C over long distance twisted pairs

Part Number: P82B96
Other Parts Discussed in Thread: TCA9548A,

Hi i was having some issues utilizing your p82b96 IC I've set it up in accordance with the manuals' recommendations to send I2C communications through a long section of CAT-6. I set up the cabling as shown in Figure 13 in the manual with cable-SCL paired with 12v (orange-white/orange) and cable-SDA paired with GND (blue-white/blue) on my CAT-6 twisted pairs. I had set up  IC as shown in Figure 10 with the i2c pullups for local side of each IC @ 4.7K and 440 for line-side I also solder bridged TX with RX and TY with RY under the board. Additionally, I have put the recommended 100 nF capacitor at VCC for the IC as well as a 10 uF capacitor in parallel further away. I am using a 12v  power supply and I am using a buck converter at the remote board to generate 5v for the local end. I successfully detected a variety of I2C slaves (TCA9548a, ADSW1115, MCP23017) on a 3 ft. cable, however every attempt at a longer length resulted in my not being able to detect the slave at the other end. From here i have since removed the cable pull-ups (440) at the remote board as I notice were missing in Figure 13 in an attempt to get it working with a greater length of cable; it again was able to detect on the 3 ft. cable and again failed at any greater length. I have Schottky diodes however they are not the ones recommended (BAT54a) and are quite difficult to solder onto my board as the thickness of the leads doesn't allow it to be through hole and I'm not certain how necessary they are.
  • Hi Dionisi,

    Your limiting factor here is going to be your bus load. As the length of your cable increases your bus load will increase which increases your delay on your clock. This added delay will force you to reduce your clock speed in order to continue to communicate between the device. You will also have to adjust your high time and low time on the SCL bus as you increase your length since your bus capacitance will change.

    If you can provide me with your RM, CM, RB, CB, RS, and CS values I can walk you through how to calculate this delay:



  • Rm=Rs=4.4K, Rb=440, Cm=Cs=~10 pF(just one master to one slave), Cb=5.6 nF/m cable

  • ive seen other values for capacitance for cat-6 46 pF/m

  • Hi Dionisi,

    Are you not using two P82B96s? Our application in the datasheet requires two P82B96s, one for the controller (formerly known as Master) and one for the target (formerly known as Slave). If you want to use this device for it's intended purpose over very long cables you will need another P82B96 on the target side to redrive the TX and RX of each SDA and SCL line back into just an SCL/SDA line.



  • yes i am using a pair of boards i have set up as i had said i went so far as to remove the cable pullup or Rb on the receiving end (target) as was shown in figure 13 with pullup only at controller

  • Using the numbers that you have provided I am going to preform the following calculations:

    I will assume 1 meter or cable. You will have to adjust this to achieve your desired size. Cb= 46pF VCCM=VCCB=VCCS=5V

    A. Effective Delay of SCL at Slave = 353.42 ns

    RsCs=RmCm= 44ns RbCb=20.24ns 

    B. Effective delay of SCL at Master = 328.168

    C. Effective Delay of SDA at Master = 323.768

    Master low period >=(1300+A-B+C)

    Master low period >=1649.02 ns

    You can still program the master high to be the minimum of 600ns. This make your total period >= (1649.02+600) = 2249.02 ns or a frequency >= 444 kHz.

    The actual bus-clock period including the 328 ns clock stretch effect makes your maximum frequency equal to 388 kHz.

    This frequency is going to change and become lower as you increase your cable size. Keep in mind it's not important to just program the master to communicate at these speeds. You have to actually change your low time to be at least the minimum low time above (1649.02 ns).

    Hopefully this shed some light on how to tune this device. Let me know if you have any questions.