I²C Pull-up Resistor Calculator
Calculate I²C pull-up resistor limits from supply voltage, VOL(max), device sink current, bus capacitance, and the selected I²C bus mode.
COM-003 focuses on pull-up resistor design, bus rise time, sink current, and RC timing. It does not calculate I²C addresses, timing registers, clock stretching, SMBus PEC, I3C behavior, or firmware configuration.
Engineering tool
I²C Pull-up Resistor Calculator
Calculate I²C pull-up resistor limits, rise time, sink current, RC time constant, and bus capacitance effects.
Total bus capacitance from traces, cables, connectors, MCU pins, and all I²C devices.
I²C pull-up summary
1.85 kΩ
3.3 V, Fast Mode
Result console
- Recommended pull-up
- 1.85kΩ
- Minimum pull-up
- 966.667Ω
- Maximum pull-up
- 3.5407kΩ
- Rise-time limit
- 300ns
- Bus capacitance
- 100pF
Engineering recommendation: Choose a practical resistor between the calculated minimum and maximum values, then verify rise time and VOL on real hardware.
Result is valid for the selected ideal I²C pull-up model.
Formula reference
I²C Pull-up Resistor Formulas
I²C uses open-drain outputs, so the bus rises through pull-up resistance and bus capacitance.
Minimum Pull-up: Rmin = (VCC - VOL) / IsinkMaximum Pull-up: Rmax = tr / (0.8473 × Cb)Rise Time: tr = 0.8473 × Rpullup × CbSink Current: Isink = (VCC - VOL) / RpullupRC Time Constant: τ = Rpullup × CbVariable definitions
- VCC
- I²C bus pull-up supply voltage
- VOL
- maximum allowed low-level output voltage
- Isink
- low-state current the device must sink
- Cb
- total bus capacitance
- tr
- allowed bus rise time for the selected I²C mode
- 0.8473
- 30% to 70% RC rise-time factor used for I²C rise-time estimation
Worked Examples
3.3 V, 100 pF, Fast Mode
Rmin = (3.3 - 0.4) / 3 mA = 966.7 Ω. Rmax = 300 ns / (0.8473 × 100 pF) = 3.541 kΩ. A practical value inside this range should be verified on hardware.
5 V, 200 pF, Standard Mode
Rmin = 1.533 kΩ. Rmax = 1000 ns / (0.8473 × 200 pF) = 5.901 kΩ. A mid-range value near 3 kΩ is a reasonable first estimate.
3.3 V, 400 pF, Fast Mode
Rmin remains 966.7 Ω, but Rmax falls to 885.2 Ω. The range is not comfortable, so bus capacitance or speed should be reviewed.
1.8 V, 100 pF, Fast Mode Plus
Rmin = (1.8 - 0.4) / 3 mA = 466.7 Ω. Rmax = 120 ns / (0.8473 × 100 pF) = 1.416 kΩ.
4.7 kΩ, 100 pF rise time
tr = 0.8473 × 4.7 kΩ × 100 pF = 398.2 ns, which is slower than the 300 ns Fast Mode reference limit.
2.2 kΩ at 3.3 V sink current
Isink = (3.3 - 0.4) / 2.2 kΩ = 1.318 mA, below the common 3 mA assumption.
Compare 100 pF vs 400 pF
At the same bus mode, 400 pF produces 4× the rise time and one quarter of the maximum pull-up resistance compared with 100 pF.
Compare 3.3 V vs 5 V
With the same VOL and sink-current assumption, 5 V raises Rmin because the pull-up must sink more current when the bus is low.
Engineering Notes
- I²C uses open-drain or open-collector outputs.
- SDA and SCL must be pulled high by resistors or equivalent current sources.
- A pull-up that is too large increases rise time and can violate bus timing.
- A pull-up that is too small increases sink current and can violate VOL requirements.
- Higher bus capacitance requires a lower pull-up value or a slower bus mode.
- Multiple pull-ups in parallel reduce the effective pull-up resistance.
- Actual design must reference the MCU and I²C device datasheets.
- This calculator provides engineering estimates and does not replace device specifications.
Common Mistakes
- Leaving SDA or SCL without pull-up resistors.
- Using pull-ups that are too large for the selected bus speed.
- Using pull-ups that are too small for the device sink-current capability.
- Ignoring total bus capacitance from traces, connectors, and all devices.
- Assuming a common 4.7 kΩ value works for every I²C bus.
- Forgetting that several board-level pull-ups may be connected in parallel.
- Using the controller datasheet but ignoring peripheral VOL and current limits.
- Not measuring the actual bus waveform during validation.
Support reference
FAQ
Why does I²C need pull-up resistors?
I²C uses open-drain or open-collector outputs. Devices pull the bus low, while pull-up resistors return SDA and SCL to the high level.
How do I calculate pull-up resistance?
Use Rmin = (VCC - VOL) / Isink for the low-state current limit and Rmax = tr / (0.8473 × Cb) for the rise-time limit.
How does bus capacitance affect rise time?
Higher capacitance increases the RC rise time, so larger buses usually need lower pull-up resistance or slower I²C speed.
Can I use 10 kΩ pull-ups?
10 kΩ can work on short, low-capacitance, low-speed buses, but it may be too weak for Fast Mode or larger bus capacitance.
Why is 4.7 kΩ commonly used?
4.7 kΩ is a practical starting value for many short 3.3 V or 5 V I²C buses, but it still must be checked against capacitance, rise time, and sink current.
What happens if the pull-up is too small?
A pull-up that is too small increases sink current and may prevent devices from meeting the required VOL low-level voltage.
How much sink current is acceptable?
The acceptable sink current depends on the MCU and I²C device datasheets. 3 mA is a common assumption, not a universal guarantee.
Does every I²C device need a pull-up?
No. The bus needs pull-ups on SDA and SCL, but multiple devices can share the same pull-up resistors.
Can multiple pull-ups be connected?
Yes, but parallel pull-ups reduce the effective resistance. Too many pull-ups can make the equivalent resistance too low.
What is the recommended rise time for I²C?
Common reference limits are 1000 ns for Standard Mode, 300 ns for Fast Mode, and 120 ns for Fast Mode Plus. Always verify the actual device requirements.
Related Calculators
UART Baud Rate Calculator
AvailableCalculate UART bit time, character time, frame bits, data rate, and baud-rate comparisons.
UART Timing Calculator
AvailableAnalyze UART frame timing, packet time, sampling position, and baud-rate error.
SPI Clock Calculator
AvailableCalculate SPI clock divider settings, bit time, byte transfer time, block transfer time, and throughput.
Data Rate Converter
In_DevelopmentPlanned converter for bits, bytes, packets, symbols, and data-rate units.
Communication Calculators
AvailableBrowse communication calculators for UART, I²C, SPI, CAN, RS-485, and embedded interfaces.
Future Engineering Guide Topics
How I²C Pull-up Resistors Work
In_DevelopmentPlanned guide explaining open-drain outputs, shared buses, pull-up current, and logic-high recovery.
Choosing I²C Pull-up Values
In_DevelopmentPlanned guide for selecting practical resistor values from speed, voltage, capacitance, and sink-current limits.
I²C Bus Capacitance Explained
In_DevelopmentPlanned guide covering device capacitance, trace length, cables, connectors, and measurement.
I²C Rise Time Requirements
In_DevelopmentPlanned guide explaining Standard, Fast, Fast Mode Plus, and high-speed timing constraints.
Engineering Disclaimer
This calculator provides ideal I²C pull-up resistor estimates. Real buses must be checked against device datasheets, measured capacitance, board layout, cable length, voltage levels, oscilloscope waveforms, and product-level timing requirements.
