Hello,
I'm searching for I2C bus extender. Since distance between mCU and I2C devices will be quite large and everything will work in harsh environment I'm thinking about using I2C to CAN converter. I can find two interesting products - PCA9615 (NXP) and LT3960 (Analog Devices). If I understood right, PCA9615 supports clock stretching devices? What are other main differences between PCA9615 and LT3960?
Many thanks, Dejan.
Hello dejanh,
I hope all is great with you. Thank you for using the NXP communities.
I highly recommend the PCA9615 for your design. It extends the normal single-ended I2C-bus through electrically noisy environments using a differential I2C-bus physical layer.
Correct, the device supports a hot-swap and clock stretching features. Actually, we do offer even more features than our competitor´s with a lower price. Please review the chapter 2 from datasheet for further information.
I hope this information helps.
Regards,
David
Hello David,
many thanks for your reply. PCA9615 looks really interesting.
However, I have additional questions, mainly just for clarification:
1. since level translating is not needed, I assume that Vdd(A) and Vdd(B) supply pins can be tied together and connected to the same supply? For ex. 5 V, since at 5 V performance is the best per datasheet. If level translating is needed, Vdd(A) could be 3.3 V and Vdd (B) could be 5 V?
2. since there is already pull-up resistor on EN pin connected to Vdd(A), can be this pin left floating even the hot-swap feature is needed? I mean - if I2C bus is active can I connect another PCA9615 to the bus or can I it disconnect from the bus with EN pin left just floating? Or EN must go to logical zero before device is disconnected from the bus?
3. if I understood in a right way - if there are more PCA9615 devices on the bus, all of them play the same role - there is no master PCA9615 and slave PCA9615?
4. since differential side of the PCA9615 is supplied from the Vdd(B) supply - do you recommend to use any filter, so any noise from the differential side (over long wires) would not have affect back to the Vdd(B) supply?
5. What values of resistors are recommended to use? There is 120 Ohm for R2 and 600 Ohm for R1 suggested in datasheet, but I can see also applications with different values for R1 and R2?
6. When more PCA9615 are used. Do you recommend to connect them strictly in a bus or can also be in a star topology connected?
7. Minimum output voltage (Vol_min) for logical zero equals 0.47 V and maximal (Vol_max) equals 0.6 V according to PCA9615's datasheet. Since many I2C sensors has a maximum input voltage that can be recognized as logical zero (Vil(max)) that equals to 0.4 V, I suppose that some kind of I2C buffer must be used between PCA9615 and I2C sensor?
8. Do you recommend to put any ESD protection on the differential side of I2C bus? Like NUP2105L or simmilar?
9. I will not share ground potential and power supply between different PCA9615, so only for differential lines will be connected in between. Can we talk about common mode voltage between these PCAs at all or not? I'm just thinking if maximum common mode voltage (Vcm) can be exceeded or not...
Many thanks,
Kind regards,
Dejan.
Hello dejanh,
I am pleased to contact you again.
Please accept my apologies for the delayed response.
I noticed that you submitted a case and your inquiries were answered.
Please let me know if you have any further questions.
Regards,
David
Hello David,
thanks for your reply.
Yes, you are right - I received responses. However, I'm not pretty sure that all my questions were understood properly.
1) An answer to second question regarding EN pin is pretty unclear for me. Datasheet says that pull-up resistor is present on this pin, which means that pin goes to high as soon as voltage is supplied to the PCA9615. I don't think that there is a 10 ms "timer" integrated in PCA9615 which delays rise of voltage on EN pin? Does hot-swap feature work with leaving EN pin as it is (with pull-up resistor integrated)?
Or does the Fig 6 in a datasheet says that there is 10 ms between the moment when sufficient voltage is provided to the PCA9615's supply pins and moment when PCA9615 check a status on this pin by itself?
2) Regarding sixth question - with bus or star topology I meant - is allowed to connect devices (other PCA9615) on differential side in a both - bus and star topology?
Bus topology;
Star topology:
3) Regarding question number 7.
Imagine that I would like to use a dI2C connection between mCU and I2C device, which is 1 m away from the mCU. So connection will be like this:
mCU--I2C--PCA9615-----------dI2C-----------PCA9615--I2C--INA228
On a remote side there is a PCA9615 and INA228. PCA9615 has:
Vol_min=0.47 V
Vol_max=0.6 V
INA228 has:
Vil_min=0 V
Vil_max=0.4 V
As you can see - INA228 has a Vil_max lower than Vol_min of PCA9615 is. I suppose that some kind of buffer is needed in between, otherwise INA228 would not understand logical zero generated by the PCA9615?
4) Regarding question 9. Voltage on the differential side swings up to Vdd(B) voltage. If I understand properly, absolute common mode voltage allowed on differential side of PCA9615 is the same - Vdd(B)? So there is no chance to install ESD diodes there at all?
Many thanks,
Kind regards,
Dejan.
Hello dejanh,
I am pleased to contact you again.
Please review the information below:
1. Note that during the power-on sequence an internal timer is triggered if the power supply is stable. If such timer is triggered, it will take 10ms to get the hot-swap logic enabled. After such process, the EN pin will be able to detect a Stop Bit and Bus Idle condition.
As we know, when EN is driven HIGH, it connects SDA/SCL to differential SDA/SCL after a stop bit or bus idle has been detected on differential line bus.
2. The following post might be useful for you:
https://community.nxp.com/t5/Other-NXP-Products/PCA9615-in-star-topology/td-p/1838759
3. Correct, a voltage level translator is recommended in such a case.
4. Do you mean adding a diode for protection? Could you please share more details on this question?
I hope this information helps.
Regards,
David
Hello,
things became much more clear now.
1. It is great that all logic regarding power-on sequence is integrated in PCA9615. This means that I can leave EN pin »floating«, since it has a pull-up resistor to Vdd, so no external control signal is needed to achieve hot-swap feature.
2. Thanks for link you provided. It is really helpful. However, I would like to check two things with you.
a) Since I'm using 5 V for VDD(B) and I'm going to make a twisted pair from two 26 AWG wires (impedance calculator gives me somewhere between 180-200 Ohm for the impedance of such cable), resistors values should be (I tried to follow steps provided on link you gave me):
Step 1.: R2 = Rb = ZO = 200 Ω
Step 2.: 200Ω // 200Ω = 100 Ω
Step 3.: R' = ((100 Ω)5.0 V/0.2 V) − 100 Ω = 2400 Ω
R1 = R1 = 2400 Ω/2 = 1200 Ω
Step 4.: R2//(R1 + R1) = 200 Ω//(1200 Ω + 1200 Ω) = 185 Ω
R1=1200 Ω, R2= 200 Ω
Checking:
1. R2//(R1 + R1)=ZO
200//(1200+1200)=185 Ω -> It is within 10% from Z0
2. Req=Rb//R2
200 Ω//200 Ω=100 Ω
3. Vfsb = VCC (Req/(R1+Req+R1))
5V(100 Ω/(1200 Ω + 100 Ω +1200 Ω)) = 200 mV
R1=1200 Ω, R2=200 Ω (nearest value would be 220 Ω)
Seems calculation right for you? However, Vfsb is on the limit (200 mV) for calculated resistors values – could be this a problem?
b) I'm going to connect devices (more PCA9615) on the same bus, without sharing Vss and Vdd in between. This is simmilar to what Figure 9 in a datasheet shows. However, on the Figure 9 (below) is shown that end termination must be done on the main board - main board's Vdd and Vss potential should be used (marker with red elipse):
This is pretty »unfriendly«, especially when last sensor or device (or last PCA9615) is meters away from the main board. Can be end termination done (example shown on picture below) on the last sensor board according to the Vdd/GND potential of that board? Is this acceptable, would this work?
3. Many thanks – I'm going to use some buffer.
4. I was just thinking about using some kind of ESD diode to protect differential outputs of the PCA9615, since it can survive common-mode voltage just to up to 5 V. I didn't have any special example on my mind.
Many thanks,
Kind regards,
Dejan.