SLVA689 February 2015 DS90UH940N-Q1 , LM8323 , LM8325-1 , LM8327 , LM8328 , LM8330 , LM8333 , LM8335 , P82B715 , P82B96 , PCA6107 , PCA9306 , PCA9306-Q1 , PCA9515A , PCA9515B , PCA9518 , PCA9534 , PCA9534A , PCA9535 , PCA9536 , PCA9538 , PCA9539 , PCA9543A , PCA9544A , PCA9545A , PCA9546A , PCA9548A , PCA9554 , PCA9554A , PCA9555 , PCA9557 , PCF8574 , PCF8574A , PCF8575 , PCF8575C , TCA4311A , TCA5405 , TCA6408A , TCA6416A , TCA6418E , TCA6424A , TCA6507 , TCA8418 , TCA8418E , TCA8424 , TCA9406 , TCA9509 , TCA9517 , TCA9517A , TCA9534 , TCA9534A , TCA9535 , TCA9538 , TCA9539 , TCA9539-Q1 , TCA9543A , TCA9544A , TCA9545A , TCA9546A , TCA9548A , TCA9554 , TCA9554A , TCA9555 , TCA9617A , TCA9617B , TCA9800 , TCA9801 , TCA9802 , TCA9803 , TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1
Pullup resistor calculation for I2C interface is a commonly asked question. In this application note we show how to use simple equations for this calculation.
All trademarks are the property of their respective owners.
I2C communication standard is the mostly widely used inter-chip communication standard in today’s electronic systems. It is an open-drain/open-collector communication standard which implies integrated circuits (IC’s) with different voltage supply rails can be connected for communication. Pullup resistors need to be connected from the I2C lines to the supply to enable communication as shown in Figure 1. The pullup resistors pull the line high when it is not driven low by the open-drain interface. The value of the pullup resistor is an important design consideration for I2C systems as an incorrect value can lead to signal loss. In this article we show the simple equations for the pullup resistor calculation which the system designer can use to do quick calculations for their design.
A strong pullup (small resistor) prevents the I2C pin on an IC from being able to drive low. The VOL level that can be read as a valid logical low by the input buffers of an IC determines the minimum pullup resistance [RP(min)]. RP(min) is a function of VCC, VOL (max), and IOL:
The maximum pullup resistance is limited by the bus capacitance (Cb) due to I2C standard rise time specifications. If the pullup resistor value is too high, the I2C line may not rise to a logical high before it is pulled low. The response of an RC circuit to a voltage step of amplitude VCC, starting at time t = 0 is characterized by time constant RC. The voltage waveform can be written as:
For VIH = 0.7 × VCC:
For VIL = 0.3 × VCC:
The rise time for the I2C bus can be written as:
The maximum pullup resistance is a function of the maximum rise time (tr):
where parametrics from I2C specifications are listed in Table 1.
Parameter | Standard Mode
(Max) |
Fast Mode
(Max) |
Fast Mode Plus
(Max) |
Unit | |
---|---|---|---|---|---|
tr | Rise time of both SDA and SCL signals | 1000 | 300 | 120 | ns |
Cb | Capacitive load for each bus line | 400 | 400 | 550 | pF |
VOL | Low-level output voltage (at 3 mA current sink, VCC > 2 V) | 0.4 | 0.4 | 0.4 | V |
Low-level output voltage (at 2 mA current sink, VCC ≤ 2 V) | – | 0.2 × VCC | 0.2 × VCC | V |
The RP (min) is plotted as a function of VCC in Figure 2. The RP (max) is plotted as a function of Cb in Figure 3 for standard-mode and fast-mode I2C.