Communication failure using PCA9615 Differential I2C Bus Extender

I have used PCA9615 differential I2C bus driver in one design to extend the I2C bus over CAT5 cable.

(datasheet https://www.nxp.com/docs/en/data-sheet/PCA9615.pdf)

The design has been done according to the datasheet recommendation and with the help of a reference design of Sparkfun PCA9615 which i used a couple of years ago .
Unfortunately, the design didn’t work well in my case, as the communication doesn’t establish when connecting a pair of PCA9615 using CAT5 cable.

I have attached my schematic and layout of the board, and the connection topology I used.

Here are some observations:

  • It seems when connecting the PCA9615 boards over the ethernet cable (tested it using 1 m long cable), both SDA and SCL lines get pulled low, so there is no connection over I2C.

  • The termination resistors have been calculated according to the datasheet recommendations (yielding 88.5Ohm parallel resistance close to the 100Ohm indicated in the datasheet, it should work since SparkFun’s module uses the same values as I)

  • I tested it for the pin-to-pin continuity from one board to another and it’s correct (/ pin-to-pin, such as 1 to 1, 2 to 2, etc…)

  • Every board is designed with three I2C inputs, if I connected to two I2C devices on the same board without connecting the second board, then it works fine, which means no problem from the I2C side.

  • I have tested the voltage levels on both boards and they indicate correct voltage levels (5V in my case)
  • In my design, the En pin is left unconnected, assuming it has an internal pull-up and always in Active state, Could this cause a problem?


  • using PCA9615 and with reference to the timing requirement, does it demand any change on the original software? (assuming the code is originally attended to be used with direct I2C bus. If yes, Is it possible to give me an example code for the correct operation sequence? (I’m using STM32F103C8 MCU)
  • I would appreciate any help or suggestion regarding this problem.

    Are you daisy chaining multiple boards?

    From the data sheet it looks like you could connect two of your design with a single CAT5 cable and that would work but you could only do two boards. (Check figure 9 on the data sheet)

    I think you’d need to remove the bust terminating resistors from all boards except for the ones at the ends of the bus.

    Thanks for your answer, but no, I have only connected two PCA9615 boards with an I2C master on one side and only one sensor on the other side.

    I think the problem lays in n somewhere else.

    Here are some observations:

    It seems when connecting the PCA9615 boards over the ethernet cable (tested it using 1 m long cable), both SDA and SCL lines get pulled low, so there is no connection over I2C.

    The termination resistors have been calculated according to the datasheet recommendations (yielding 88.5Ohm parallel resistance close to the 100Ohm indicated in the datasheet, it should work since SparkFun’s module uses the same values as I)

    I tested it for the pin-to-pin continuity for one board to another and it’s correct.

    Every board is designed with three I2C inputs, if I connected to two I2C devices on the same board without connecting the second board, then it works fine, which means no problem from the I2C side.

    I have tested the voltage levels on both boards and they indicate correct voltage levels (5V in my case).

    You may need to disable the pullup resistors on all but one of the sensors…it’s a bit of a long story, but read through the hookup guide thoroughly https://learn.sparkfun.com/tutorials/qw … e-overview and hopefully how it all operates will make more sense (may take 2-3 times reading through it!)