Communication failure using PCA9615 Differential I2C Bus Extender

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Communication failure using PCA9615 Differential I2C Bus Extender

Jump to solution
4,486 Views
Ehab_Hamayel
Contributor II

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 a popular open-source board manufactured by Sparkfun which I used as a demo board, before starting the design.

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 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)

I would appreciate any help or suggestion regarding this problem.

0 Kudos
1 Solution
4,198 Views
Ehab_Hamayel
Contributor II

**The problem Has been solved

The cause of the problem is the non-compatibility of the PCA9615 and the I2C buffer IC (PCA9515B) that I’m using in the I2C master board.

After removing the PCA9515B and connecting the PCA9615 directly with the MCU, the system worked as supposed to be.

View solution in original post

0 Kudos
19 Replies
4,199 Views
Ehab_Hamayel
Contributor II

**The problem Has been solved

The cause of the problem is the non-compatibility of the PCA9615 and the I2C buffer IC (PCA9515B) that I’m using in the I2C master board.

After removing the PCA9515B and connecting the PCA9615 directly with the MCU, the system worked as supposed to be.

0 Kudos
4,314 Views
guoweisun
NXP TechSupport
NXP TechSupport

Anyway I post my suggestion here again hope you can understand!
1: If you use the hot swap please refer to page8 Fig6 timing spec.
2:If not use hot swap function please pull up this EN pin to VDDA with resistor 10K.
3:For the schematic please refer to UM10856 page4 especially the difference line's resistors value.
4: we don't have any code about this PCA9615.
5:After do above steps,if still issue please check device PCA9615,do you buy this device directly from NXP or NXP distributors?
6:You can also find any difference between your schematic and Sparkfun's PCA961,or use Sparkfun's PCA9615 into your board to verify your system work or not.

 

0 Kudos
4,310 Views
Ehab_Hamayel
Contributor II

Hello,

Thanks for your reply.

i will try to pull up the En pin to VDD through 10KR as you suggested on the last try.

if it doesn't work I will replace the IC with an IC which has a different production date.

with regard to your question about the supplier, I have sourced the IC from a trusted Chinese supplier since the PCBA is done in China too, but I don't think the IC is a copy or fake since the price is almost the same as listed on some popular stores like Digikey.

0 Kudos
4,308 Views
guoweisun
NXP TechSupport
NXP TechSupport

Refer to our schematic in the UM10856 especially the divider resistor of difference lines.

In your system if remove the PCA9615 related circuit and decrease the communicate distance,do the IIC communication work successfully?

 

0 Kudos
4,303 Views
Ehab_Hamayel
Contributor II

"Refer to our schematic in the UM10856 especially the divider resistor of difference lines."

I have referred to the schematic and changed the resistor network values to something similar, but it doesn't work.

"In your system if remove the PCA9615 related circuit and decrease the communicate distance, do the IIC communication work successfully?"

Eliminating the PCA9615 boards, and connecting the I2C  master to slave directly over I2C directly, workers without any problem .

0 Kudos
4,298 Views
guoweisun
NXP TechSupport
NXP TechSupport

Very strange!

Do you use the Sparkfun's PCA9615 board to try in your system?

 

0 Kudos
4,295 Views
Ehab_Hamayel
Contributor II

I marked it Solved by mistake, sorry for that.

I used SparkFun's PCA9615 board previously (a year ago) it was so good.

I couldn't think of any problem but the IC itself in my design

0 Kudos
4,279 Views
guoweisun
NXP TechSupport
NXP TechSupport

Any update when you change the PCA9615,or can you eliminate the solder issue in your board?

 

0 Kudos
4,285 Views
guoweisun
NXP TechSupport
NXP TechSupport

So now you can solder the Sparkfun's PCA9615 IC into your board to try and verify this IC.

 

0 Kudos
4,274 Views
Ehab_Hamayel
Contributor II

I will try to change the IC , i will order some ICs , and test them

0 Kudos
4,264 Views
guoweisun
NXP TechSupport
NXP TechSupport

You can quickly change Spakrfun's PCA9615 into your board and get the result.

If not this PCA9615's issue,we can find others reason but need eliminate this firstly.

 

0 Kudos
4,258 Views
Ehab_Hamayel
Contributor II

I haven’t yet because I have placed an order for 10 pcs of the PCA9615 yesterday, and I will wait till they arrive. But now, I’m pretty sure the problem with the IC itself.

Also, I no longer have SparkFun's PCA9615 boards. It was a year ago. By the way, I've placed an order for a couple of boards and waiting for them to arrive, I will use them as demo boards

I’m highly appreciating your assistant with my case, and I will inform you if it works for me.

*Regarding your suggestion of pulling the En pin to VDD using 10KR, I have applied it to a few boards, but it didn’t make any difference.

0 Kudos
4,399 Views
guoweisun
NXP TechSupport
NXP TechSupport

HI

1:If you use the hot swap function,you need follow this timing and EN configuration.

2: This device no registers setting so we don't have the code example.

 

 

0 Kudos
4,455 Views
guoweisun
NXP TechSupport
NXP TechSupport

Hi

1:What's the VDDA and VDDB value?

2:Your schematic only half  pair  of PCA9615,the other half has same circuit with your attached?

3:You also need follow the timing of PCA9615 as datasheet page8 Fig6.

0 Kudos
4,386 Views
Ehab_Hamayel
Contributor II

Hi,

1. I'm not using hot-swap, both boards are being connected and powered before running the code.

2. in the User manual for the dI2C demo board [Doc. UM10856], NXP demonstrates a usage example of PCA9615 without the En pin, and I did to using Sparkfun's PCA9615 I2C extender and it worked.

3. I was meaning an MCU general code (or pseudo-code) to achieve the starting sequence that you mention, but it doesn't work too! here is the procedure:

  • EN pin: Low upon MCU reset, then High after a certain delay.
  • SDA, SCL: sending stop bit, followed by Idle state.

testing the Differential bus using the oscilloscope, I got the following when using VddB=5V:

  • DSDAM,DSCLM = 2.8V
  • DSDAP, DSCLP = 2.45V
0 Kudos
4,322 Views
guoweisun
NXP TechSupport
NXP TechSupport

In the UM10856 the PCA9614/5/6 schematic the EN is pull up to VDDA not floating. I suggest you refer to the schematic of UM10856 page4.

For the MCU code which is no available

 

0 Kudos
4,450 Views
Ehab_Hamayel
Contributor II

Hi guoweisun,

Regarding your questions, here are the answers:

  1. The VDDA and VDDB are tied together and both have 4.86V when using Vcc= 5V and a CAT5e cable of 2m.
  2. Yes, identical board, they are connected using RJ45 connectors / pin-to-pin, such as 1 to 1, 2 to 2, etc...
  3. I will verify the timing of the signals and upload a picture of it ASAP.

 - could you please confirm whether the schematic design is correct or has any design problem?

- 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.

Thanks,

0 Kudos
4,425 Views
guoweisun
NXP TechSupport
NXP TechSupport

1:R1/R5/R2/R6=600ohm.R3/R4=100ohm.

2: EN can’t be floating please following the timing also in datasheet.

 

0 Kudos
4,419 Views
Ehab_Hamayel
Contributor II

Hi,

Thanks for your answer.

But from my previous experience using Sparkfun's PCA9615 two years ago, the En pin is optional to use, and I left it floating, and it worked, also the datasheet mentioned the En pin is internally pulled up to VDDA, and an internal control circuit manages the operation sequence, please correct me if I'm wrong on this.

Is it possible to give me an example code for the correct operation sequence? (I'm using STM32F103 MCU), because I'm planning to mass-produce this module and I have told the PCB manufacture to suspend the production until I found what's wrong with the design.

-----

Thank you very much,

0 Kudos