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.

TCA9509: VILC requirement for B side

Part Number: TCA9509
Other Parts Discussed in Thread: TCA9517, TCA9517A

Tool/software:

Hi Team,

My customer is asking if there's a Vilc requirement for SDAB and SCLB. Could you pls help comment? Is it because the A side is connected to the BUS controller and the B side is connected to the device by default, so there is no need for the B side?

Regards,
Hailiang

  • Hailiang,

    My customer is asking if there's a Vilc requirement for SDAB and SCLB. Could you pls help comment? Is it because the A side is connected to the BUS controller and the B side is connected to the device by default, so there is no need for the B side?

    No VILC requirement on B-side (SDAB & SCLB). 

    From the electrical characteristics in section 7.5 of the datasheet, we can see that the contention side is on the A-side of the device where VILC (typ) = 150mV when VCCA > 1.5V and VCCB > 3.15V. 

    TCA9509 implements a 1mA current source on A-side that is responsible for the direction control of the buffer when passing a LOW signal across the buffer. The internal current source ICS is responsible for detecting direction of current flow to ensure that the buffer understands direction of the LOW logic signal propagation. 

    Regards,

    Tyler

  • Hi Tyler,

    Customer place the I2C slave at B side. When an I2C slave pulls the SCL low, how can the master at A side detect? We met an issue, the master can't detect the clock stretch from I2C slave if we use TCA9517. After we replace TCA9517 with TCA9509, the issue can be fixed.

    The customer wants to know how the TCA9509 works when contention occurs. And how does TCA9517 work? Could you pls help?

    Regards,
    Hailiang

  • Hailiang,

    I understand the situation better now. 

    I believe the reason the customer is seeing this behavior is that the I2C slave has weaker pull-down strength during a clock stretching event. This means that the VOL (slave) might be higher than the VILC requirement of the TCA9517 (VILC(typ.) = 0.4V). If the slave cannot pull VOL < 0.4V, then the LOW of the clock stretch event might not be passed through the buffer. 

    I see a couple of options here, either switch to the TCA9517A which increases VILC to 0.45V, or change the pull-up resistors to be weaker on the B-side (larger resistance). 

    If the TCA9509 is used to replace TCA9517, this works, because the static voltage offset side is now on the A-side of the device instead of the B-side. TCA9509 VILB = 30% of VCCB, which gives more margin than the VILC requirement. 

    With the TCA9509, the VILC requirement is on the A-side of the device. 

    Regards,

    Tyler

  • Hi Tyler,

    Can you please help describe the behavior/working principle of the device when contention occurs?

    Regards,
    Hailiang

  • Hi Hailiang, 

    Sorry for the late reply. 

    Both buffers either TCA9517/ TCA9517A/TCA9509 both implement some level of static voltage offset on B-side (TCA9517/A) or A-side (TCA9509). This buffered LOW is the differentiator during a contention situation. 

    For example, driving LOW on TCA9517A (A-side) will output a buffered LOW (static voltage offset ~0.52V) on B-side. If the downstream target drives B-side while the offset is present, contention occurs. The buffer waits for the VOLB to drop to a VILC where the target is driving from B-to-A. Once this occurs, the buffer understands that direction has changed, and therefore turns off the B-side driver, and then turns on the A-side driver. This still avoids a lockup since only one side of the buffer internal re-drivers is ON at one time, not both drivers on A-side and B-side. 

    In short, because of the two LOW voltage levels - VOLB = 0.52V, and VILC = 0.4V, the buffer is able to recognize two different LOW output levels and can differentiate when two sides are driving at the same time. 

    Another note internal to the buffer, I believe there is some type of mux design where the buffer is able to switch between two voltage levels between a VILC = 0.4V and 30% of VILB. Again, these two levels are switched between in order to have only one re-driver output ON at a single time. 

    Regards,

    Tyler

  • Hi Tyler and Hailiang

    Thanks for the explanation. I have a further question. Taking TCA9517 for example, it monitors the voltage level of B-side and if the voltage lower than Vilc (0.4V), it knows device on the B sides is sending 'low' and propagates 'low' from B side to A side by turning on the A side pull down FET. This means the device on the B sides must be able to drive the line lower than 0.4V. 

    Can we say it's only Vilc that matters for B side and B-Vil (0.3xVccb) in the datasheet is meaningless? If not, under what circumstance we should refer to Vil rather than Vilc?

  • When the voltage on the A side is high, and the voltage on the B side falls to VIL, then the buffer knows that an external device has pulled the line low, and it can propagate the low signal to the A side. But this case does not matter in practice, because when the signal has propagated to the A side, then both sides are below VIL, and you need VILC to break the contention.

    So you are correct; the B-side VIL specification should be ignored.

  • Hi Clemens,

    Thanks for your comments. VILC is about breaking contention. If we consider contention, we need the Vo of the B-side device to be lower than VILC, which is always lower than VILB, so VILB seems meaningless. However, when no contention occurs, the low signal on the B side below VILB can be reliably transmitted to the A side. Is it right?

    Regards,
    Hailiang

  • Hey Hailiang,

    Designing with the VILC parameter in mind would ensure that the device on B-side can propagate a low to A-side. The VILB spec is referenced in section 7.3 as a general spec. off the I2C standard to ensure that the device driving the I2C bus is capable of following the logic thresholds set by the I2C standard.

    Regards,

    Jack 

  • Hi Hailiang,

    In addition to Jack's comments, the VILB spec applies for the 1st LOW seen by the SDAB and SCLB lines. After that, a VILC must be met. This is why we had to include two different specs both VILB and VILC.

    Normally, we just tell customers to follow VILC since it has less margin than VILB. If you meet a VILC, you always meet a VILB. 

    Regards,

    Tyler