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.

TCA9803: Bad I2C response on ACK phase (nineth bit).

Part Number: TCA9803

We designed a board with Level Shifter TCA9803. At the end of the project, the I2C bus with two Level Shifter and one I2C Mux became complex. Exercising I2C operations from CX3 (CX3_I2C_SCL/CX3_I2C_SDA) and accessing IO_Expander (U86), both on the same B-Side bus of the Level Shifter, I see during the ACK phase the SDA that is going up and down continuously and this is propagated on all the paths of the I2C bus. Then let me say that this happens when U117 (the second TCA9803) is disabled.
After I enable this second Level Shifter everything works fine. Can you look at the schematic and at the picture and give me back some suggestion?
Thanks a lot.
Best regards Edo.

  • Hi Edoardo,

    We'd be happy to help debug.  It doesn't look like there is a photo or schematic attached to your post, though.  Could you please try to post those again?

    Regards,
    Max

  • I'm sorry, here below you can find the screen shot and the schematic.

    I'm preparing a sketch with the architecture of the I2C paths.

    Thanks a lot.

    Best regards Edo.

     621_20_0176_03.pdf

  • This sketch describes the architecture of the I2C paths.

    TCA9803 1 (on VDIO bus) is disabled during the acquisition of the previous waveform.  When I enable TCA9803 1 the I2C_SDA improves and the oscillation during ACK phase disappear.  The I2C transaction related the waveform acquisition is from CX3 (the master) and the IO Expander (with TCA9803 disabled).

    If the architecture is compatible with the characteristics of the Level Shifter, could be that the issue is due to pullup values?

    Thanks a lot.  

    I2c_LevelShifter_Issue.pdf

  • I added here other pictures related the issue I have.

    I don't understand if this could be induced by Level Shifter or other staff like inductance capacitance on CX3_I2C_SDA net.  We developed a previous board, very similar with one only Level Shifter on CX3_I2C_SDA.  There I haven't this oscillation when IO expanded was driving the ACK.

    Thanks a lot.  

  • Hi Edoardo,

    Thanks for the additional info.

    ##Note my comments below are on the assumption that your block diagram has both TCA9803s connected together through B side of the device.##

    In your block diagram, I notice you have 2 TCA9803s in parallel. I'm assuming its the B sides are the ones connected together since the VDIO/STM32 sides have pull ups. This is likely causing issues with the low detection algorithm for the device. You mention that you disable one of the TCA9803 devices but this doesn't actually disable the internal sourcing element on B side of the device.

    The other potential problem I see is you have TCA9803 (B side?) connected to an I2C MUX. Our device doesn't want to see any pull ups on the bus and since an I2C MUX requires an external pull up on the opposite side and works as a passive switch element (think of it like a short when the device is passing a low and the channel is enabled) then B side would directly see a pull up resistor. (Example shows what the I2C MUX looks like to our device when driving low)

    I think the best solution is to flip both TCA9803s so that A sides are connected to each other instead of B sides.

  • Hi Bobby,

    thanks a lot for your prompt support.

    This NOTE on parallel interconnection on B side has not been seen and so we got the problem.

    Thanks a lot again!

    Best regards Edo.