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.

TCA9546A: VCC and PU Resistors

Part Number: TCA9546A

Hi,

1) I am wondering if this layout will work: (VCC= 1.8V), (VPUM= 1.8V), (VPU0= 3.3V), (VPU1, 2, 3= 1.8V)

2) Do I need to use the equations for R pullup? Or should I use the R pullup recommended by the peripheral device datasheet?

Thanks,

JP

  • Hey JP,

    "I am wondering if this layout will work: (VCC= 1.8V), (VPUM= 1.8V), (VPU0= 3.3V), (VPU1, 2, 3= 1.8V)"
    If Vcc of TCA9546A is 1.8V then this will work. (Should always work if Vcc is the lowest value compared to all channels and main)

    "Do I need to use the equations for R pullup? Or should I use the R pullup recommended by the peripheral device datasheet?"
    Pull up values should be calculated separated between each channel and the main channel. (treat them as separate I2C channels and choose pull up values that are between the maximum and minimum values allowed. )

    If my explanation isn't clear or you have further questions, let me know.

    Thanks,
    -Bobby
  • Thanks for the reply.
    Which values of VOL and IOL am I using. Is this wrt the devices attached? or the switch? can you give me a quick example?
  • Hey JP,

    VoL and IoL are actually from the I2C standard. Your Vcc (VDD in the spec), and clock frequency determine what values you will plug in.

    For the 1.8V buses, you should use IoL=2mA and VoL = 20%*VDD which is 0.36V for you.

    For the 3.3V bus, you should use IoL=3mA and VoL = 0.4V

    These calculations will give you the strongest (lowest value) R pull up you are allowed:

    Example1:

    (1.8V-0.36V)/2mA = 720 ohms. This means you need to use a resistor larger than 720 ohms.

    All of your 1.8V buses need to have a pull up resistor larger than 720 ohms. The maximum allowed resistor (weakest pull up) will depend on bus capacitance

    Example 2:

    (3.3V-0.4V)/3mA = 966 ohms: The 3.3V bus requires 966 ohms or larger

    ------------

    I'd recommend choosing values a bit larger than the minimum to ensure you don't run into VoL issues.

    ----------

    Example 3:

    You need to calculate the maximum allowed resistance on each bus. Take into account the parasitic capacitance of the PCB length, vias, parasitic input capacitance of I2C slaves/masters/devices. For reference each I2C device can have up to a maximum of 10pF of capacitance (exceptions to switches). PCB/Vias capacitance is usually small so I will ignore them..... Lets say you have 10 I2C devices on one bus/channel then gives us about 100pF.

    Lets say you are operating at 400kHz so your max allowed rise time is 300ns.

    Rp(max) = trise/(0.8473*Cbus)

    300ns/(0.8473*100pF) = 3540 ohms

    Now if you were operating at 100kHz then your trise would change to 1000ns.(I will let you calculate that)

    So if I were using example 1 and 3 together then I would need to choose a resistor between 720 ohms and 3540 ohms to make sure I meet rise time requirements. I would probably pick something like 3k or 2k.

    Table of requirements from the I2C standard

    You'll basically need to do this calculation for all the separate channels using example 3 to find your max resistor values. I hope this helped.

    -Bobby

  • Extremely helpful, I'll be saving this page for future use. Thanks, alot Bobby!