2
\$\begingroup\$

I was reading this Article regarding the pull up resistor calculation.

I understood that the value of the pull up resistors depend upon the currents, the supply voltage and the Logic Level voltages between the master and the slave. Is there anything else on which the resistor values depend upon?

I had this thought like, suppose in one configuration, the I2C Master is close to the slave. And in another configuration, the I2C master is away from the slave. So, in both the cases, would the pull ups be the same value ? If not, why?

\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

In addition to the DC conditions you already mentioned, it also depends on how much there is bus capacitance and at what speed you want to communicate to determine how much current (or power) you want to spend to communicate at higher speeds.

And there is both maximum and minimum pull-up resistance range, as it can't be too low so that all devices on bus can sink enough current to pull the bus voltage low enough for all devices to reliably see a logic low level, while it can't be too high before DC leakage currents start to affect the bus high voltage.

Basically the distance between devices does not affect the pull-up values, but longer distance adds capacitance which you must charge fast enough to communicate at the speed you want so if you assumed short distance has small capacitance then larger distance has larger capacitance and then you may need to change pull-ups or communicate at slower speed.

\$\endgroup\$
3
  • \$\begingroup\$ Thank you very much for your answer. So, I understand like, suppose my I2C is running at 400kHz in both scenarios. And if the devices are placed far apart, it would take a little more time to charge the bus capacitance and to avoid this extra time, we need to have a strong pull-ups (Low pull up resistor values) on the SDA and SCL lines. Am I correct? \$\endgroup\$
    – user220456
    Commented Oct 20, 2021 at 12:01
  • \$\begingroup\$ Yes. Basically devices on the bus add X amount of capacitance, and if some amount of distance adds Y amount of bus capacitance, then double the distance will add double the capacitance. You could simply use strong enough pull-ups and simply calculate that it is strong enough unless there is too much capacitance as that is the point where you have reached the limits of the bus that is possible without special measures. \$\endgroup\$
    – Justme
    Commented Oct 20, 2021 at 12:09
  • \$\begingroup\$ Thank you for the clarification and answer \$\endgroup\$
    – user220456
    Commented Oct 20, 2021 at 12:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.