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.

TPS546A24A: How to count PU resistor on I2C Bus(PMBus_?

Part Number: TPS546A24A

Tool/software:

We have some VRs parts at the one I2C Bus(I2C_2) as shown below,in this open drain bus,we want add PU resistors and we want to konow how can we count the max and min of Rp(PU resistor) value? 

Also we saw the some remmandation fomula in web,but we have confustion for IOL and Cb value,see my questions below.

1. we have 7 parts in this I2C bus,for IOL(each datasheet have difne this) count is add up to calculate or Individual calculation?

2. Also Cb is simular question as 1, Cb count is add up to calculate or Individual calculation?

  •  

    The minimum pull-up resistance (maximum pull-up current) is determined by the device on the bus with the lowest maximum pull-down current rating.

    The TPS546x24A family of devices are rated for a maximum Low Output Voltage (Vol) of 0.4V with a pull-up current upto 20mA, so the pull-up resistor should be sized for no-more than 20mA of pull-up current.  You will need to check the other devices, including the pins of the μC controlling the bus to determine if any devices on the bus are rated for a LOWER maximum current.

    While the resistor can be calculated based on the Vol voltage of 0.4V, the minimum resistor value is typically calculated based on a Vol of 0V

    Rpu(min) = Vbus / Ipu(max)

    For a maximum pull-up current of 20mA on a 1.8V bus, this would be 1.8V / 20mA = 90Ω

    For a 3.3V bus, this would be 3.3V / 20mA = 165Ω

    If multiple pull-up resistors are used, the parallel combination of all pull-up resistors to the same line must be greater than Rpu(min)

    If the pull-up resistors are too small (too high pull-up current) that device may not be able to generate a "LOW" voltage on the bus, which would prevent it from ACKing or responding to the bus.

    The maximum resistance depends on the speed of the bus, the total bus capacitance, and the maximum allowable rise-time for the voltage to rise from 0V to 1.35V (maximum Vih threshold)

    The maximum pin capacitance for the TPS546x24A family of devices is 5pF, so the 7 devices may have a capacitance as high as 35pF.  You'll need to add additional capacitance for the bus traces themselves, and any other device connected, including the μC.  (I would also recommend adding at least 15pF extra to ensure the bus works with an oscilloscope attached) 

    However, leaving provisions of 10pF for the μC, 10pF for trace capacitance and 35pF for the 7 TPS546x24A devices brings a bus capacitance of 55pF.

    An RC circuit will rise from 0V to 1.35V in 1.2 time-constants with a 1.8V pull-up

    An RC circuit will rise from 0V to 1.35V in 0.6 time-constants with a 3.3V pull-up

    Operating at 400kHz, the maximum rise-time is 300ns, the maximum pull-up resistance would be:

    Rpu(max) = 462ns / Cbus  (4.5kΩ for a Cbus = 55pF and Vbus = 3.3V)

    Rpu(max) = 461ns / Cbus  (8.4kΩ for a Cbus = 55pF and Vbus = 3.3V)

    Hopefully this helps.

  • As you mentioned Rpu(min) = Vbus/Ipu(max), is align as my understandign below?

    Vbus = voltage supply the I2C bus 

    Ipu(max)= caculate the all parts maximum IOL current in I2C bus

    actually we measured the Cbus trace capacitance (exclude 7devices) in the I2C_2 bus,and we got the almost close 70pF capacitance at each device.

      Add 35pF and 70pF =105pF is our current Cbus value,and we used I2c frequency is 100KHz.

    We don't know how did you calculated the Rpu(max)? what is the 462ns or 461ns timing? is time-constants t=RC?

  • Vbus = voltage supply the I2C bus 

    Vbus is the termination voltage that the bus termination resistors are going to.  It should be between 1.8V and 5.5V

    Ipu(max)= caculate the all parts maximum IOL current in I2C bus

    Ipu(max) is the lowest IOL current of any connected device.

    If a bus contains 7 devices with an IOL current of 20mA, three devices with IOL current of 5mA and 1 device with an IOL of 2mA, Ipu(max) is 2mA

    actually we measured the Cbus trace capacitance (exclude 7devices) in the I2C_2 bus,and we got the almost close 70pF capacitance at each device.

      Add 35pF and 70pF =105pF is our current Cbus value,and we used I2c frequency is 100KHz.

    Ok, you have 105pF of maximum bus capacitance.  At 100kHz, the rise time can be as much as 1000ns

    We don't know how did you calculated the Rpu(max)? what is the 462ns or 461ns timing? is time-constants t=RC?

    Yes, those are the calculated time constants based on the ratio of 1.35/(0.63 x 1.8V) and 1.35/(0.63 x 3.3V)

    We divide the maximum Vih threshold of 1.35V by 63% of the termination voltage to convert the maximum rise-time into a time constant to calculate the maximum resistor value because the bus voltage will rise to 63% of the bus voltage during 1 time-constant.

    For a 105pF bus capacitance and 1000ns maximum rise time, the maximum pull-up resistance would be:

    Vbus = 1.8V

    833ns / 105pF = 7.9kΩ

    Vbus = 3.3V

    1667ns / 105pF = 15.8kΩ

  • f a bus contains 7 devices with an IOL current of 20mA, three devices with IOL current of 5mA and 1 device with an IOL of 2mA, Ipu(max) is 2mA

    Understood,thank you.

    We divide the maximum Vih threshold of 1.35V by 63% of the termination voltage to convert the maximum rise-time into a time constant to calculate the maximum resistor value because the bus voltage will rise to 63% of the bus voltage during 1 time-constant.

    For the temination voltage 63% ,is this value a fixed percentage ?

    Vbus = 1.8V

    833ns / 105pF = 7.9kΩ

    Vbus = 3.3V

    1667ns / 105pF = 15.8kΩ

    How can we calculate to the 833ns? is 1000/(1.35/(0.63x1.8))? but the result is almost closed 840.

  •  

    It's an intermediate rounding step.  If you look above, I rounded the Trise to time-constant ratio to 1.2 for Vbus = 1.8V and 0.6 for Vbus = 3.3V

    That rounding step is what is creating the <1% difference between 833ns and 840ns.

    1000ns / 1.2 = 833.33ns 

    1000ns / 0.6 = 1666.67ns

  • It's an intermediate rounding step.  If you look above, I rounded the Trise to time-constant ratio to 1.2 for Vbus = 1.8V and 0.6 for Vbus = 3.3V

    That rounding step is what is creating the <1% difference between 833ns and 840ns.

    Understood,thank you so much.

    For the temination voltage 63% ,is this value a fixed percentage ?

    How about this question? is 63% a fixed value ?

  • How about this question? is 63% a fixed value ?

    Sorry if I missed that.  Yes, that is a fixed percentage.

    An RC circuit will change to 63% of the source voltage in 1-time constant.

  • An RC circuit will change to 63% of the source voltage in 1-time constant

    Understood, thanks for the detailed explanation.