풀업 저항 값 정하는 법: 4.7k와 10k 중 무엇을 쓸까
임베디드 하드웨어 설계 단계에서 오픈 드레인(Open-Drain) 또는 오픈 컬렉터(Open-Collector) 버스를 구성할 때 마주하는 가장 흔한 딜레마는 저항값의 절충입니다. 회로 엔지니어 관점에서 풀업 저항 값 정하는 법은 단순히 관행적으로 4.7kΩ이나 10kΩ 중 하나를 무작위로 선택하는 문제가 아니라, 버스 상승 시간(Rise Time)과 소비 전력(Static Power Dissipation) 사이의 물리적 트레이드오프를 엄밀하게 계산하는 프로세스입니다.
저항값을 지나치게 높게 설정하면 부유 용량(Parasitic Capacitance)에 의한 RC 시상수가 증가하여 신호의 천이 시간이 지연되고, 고속 통신 환경에서 I2C 셋업 타임 불만족이나 신호 왜곡을 유발합니다. 반대로 풀업 저항을 지나치게 작게 선정하면 버스가 로직 로우(Logic Low)로 구동될 때 싱크 전류(Sink Current)가 급증하여 MCU 입출력 포트의 열화 및 배터리 전력 낭비를 초래합니다.
따라서 버스에 연결된 모든 디바이스의 핀 정전용량, PCB 트레이스 커패시터, 통신 프로토콜 표준 스펙을 토대로 수학적 허용 마진을 산출하는 체계적인 계산 접근법이 필수적입니다.

페이지내용
오픈 드레인 구조와 버스 커패시턴스의 물리적 한계
I2C, SMBus, 1-Wire와 같은 양방향 버스는 내부 풀업 회로가 제거된 오픈 드레인 구조를 채택하여 버스 충돌 시 드라이버 파손을 방지합니다. 이 구조에서는 로직 로우 신호는 드라이버의 내부 NMOS가 빠르게 방전시켜 형성하지만, 로직 하이 신호는 순수하게 외부 풀업 저항을 통해 전원 라인(VCC)으로부터 전하가 유입되는 방식으로 회복됩니다.
이때 PCB 트레이스 간 용량성 결합, 커넥터 접촉면의 기생 커패시턴스, 그리고 버스에 병렬로 물린 슬레이브 칩셋들의 입력 핀 용량이 합산되어 총 버스 커패시턴스($C_b$)를 형성합니다. 충전 전압 $V(t) = V_{CC}(1 - e^{-t/RC})$ 수식에 따라, 풀업 저항($R_p$)과 $C_b$의 곱으로 정의되는 시상수($\tau$)가 커질수록 로직 하이 임계값(0.7 $V_{DD}$)에 도달하는 시간은 비선형적으로 지연됩니다.
"In Standard-mode and Fast-mode I2C-bus systems, the maximum rise time ($t_r$) for both SDA and SCL signals is specified as 1000 ns and 300 ns respectively, where rise time is measured from 0.3 $V_{DD}$ to 0.7 $V_{DD}$. The maximum bus capacitance allowed without active bus buffers is limited to 400 pF."
— NXP Semiconductors, UM10204 I2C-bus Specification and User Manual, Rev. 7.0
공식 I2C 버스 규격에서 명시하듯, 고속 모드(Fast-mode, 400 kHz)에서는 상승 시간 제한이 300 ns로 엄격해집니다. 만약 버스 전체 정전용량이 200 pF에 달하는 긴 케이블 배선 환경에서 10kΩ 저항을 사용한다면 규격 허용치를 초과하여 통신 프레임 손실(Frame Error)과 ACK 수신 실패가 발생하게 됩니다.

전류 및 속도 계산을 통한 풀업 저항 값 정하는 법
최적의 풀업 저항 범위를 도출하기 위해서는 하한값($R_{p(min)}$)과 상한값($R_{p(max)}$)의 경계 조건을 각각 독립적으로 수식화하여 연립해야 합니다. 저항의 최솟값은 버스가 로우 상태일 때 드라이버 내부 NMOS로 흘러 들어가는 싱크 전류가 MCU 입출력 포트의 절대 최대 정격($I_{OL}$)을 넘지 않도록 제한하는 전류 수식으로 결정됩니다.
반대로 저항의 최댓값은 시스템의 통신 속도 표준에서 허용하는 최대 신호 상승 시간($t_r$) 내에 신호 라인이 유효한 하이 레벨 전압에 도달할 수 있는 RC 시상수 상한선으로 정의됩니다. 3.3V 전원 시스템에서 $V_{OL} = 0.4V$, $I_{OL} = 3mA$ 스펙을 갖는 범용 마이크로컨트롤러 기준 계산식은 다음과 같이 정립됩니다.
풀업 저항 한계값 산출 핵심 공식
- 최소 저항치 ($R_{p(min)}$): $(V_{CC} - V_{OL(max)}) / I_{OL}$ (포트 싱크 전류 한계 보호)
- 최대 저항치 ($R_{p(max)}$): $t_r / (0.8473 \times C_b)$ (0.3 $V_{DD}$에서 0.7 $V_{DD}$ 구간 상승 시간 충족)
- 실리콘 포화 전압 고려: $V_{OL}$ 값이 MCU 로직 로우 입력 기준($0.3 V_{DD}$)보다 충분히 낮아야 노이즈 마진이 확보됩니다.
다음 스크립트는 버스 전압, MCU 사양, 버스 기생 정전용량 및 목표 I2C 통신 모드를 입력받아 이론적 허용 저항 구간을 즉시 검산하는 엔지니어링 계산 모델입니다.
# I2C Bus Pull-Up Resistor Boundary Calculator (Python 3)
import math
def calculate_pullup_boundaries(vcc, v_ol, i_ol, c_bus_pf, mode="fast"):
# Protocol rise time specs (NXP UM10204)
tr_specs = {"standard": 1000e-9, "fast": 300e-9, "fast_plus": 120e-9}
t_rise_max = tr_specs.get(mode, 300e-9)
c_bus = c_bus_pf * 1e-12
# 1. Minimum Pull-Up Resistance (Sink Current Constraint)
r_min = (vcc - v_ol) / i_ol
# 2. Maximum Pull-Up Resistance (Rise Time Constraint: ln(0.7/0.3) =~ 0.8473)
r_max = t_rise_max / (0.8473 * c_bus)
return r_min, r_max
# Example: VCC=3.3V, VOL=0.4V, IOL=3mA, Bus Capacitance=180pF, Fast-mode(400kHz)
r_min, r_max = calculate_pullup_boundaries(3.3, 0.4, 0.003, 180, "fast")
print(f"R_min: {r_min:.1f} Ohm | R_max: {r_max:.1f} Ohm")
# Output: R_min: 966.7 Ohm | R_max: 1967.1 Ohm -> Choose Standard Value: 1.5k ~ 1.8k Ohm위 계산 결과에서 알 수 있듯이, 총 버스 커패시턴스가 180 pF에 이르는 Fast-mode 환경에서는 상한 저항값이 약 1.96 kΩ으로 억제됩니다. 이러한 조건에서 무심코 4.7kΩ이나 10kΩ을 장착할 경우 신호 상승 시간이 300 ns를 초과하여 통신 트랜잭션 도중 슬레이브 디바이스가 비트를 인식하지 못하는 치명적인 버스 에러가 발생합니다.

4.7kΩ과 10kΩ 선택 기준 및 트레이드오프 비교
엔지니어링 현장에서 4.7kΩ과 10kΩ이 표준적인 참조 회로로 널리 통용되는 이유는 소형 PCB 내부에서 버스 라인이 수 센티미터 이내로 짧고 디바이스가 1~2개 수준일 때 $C_b$가 통상 20~50 pF 범위에 머무르기 때문입니다. 하지만 동작 클록 주파수와 저전력 요구 조건에 따라 두 저항값의 적합성은 극명하게 갈립니다.
10kΩ 저항은 로직 로우 유지 시 전류 소비를 330 μA(3.3V 기준) 수준으로 낮출 수 있어 상시 구동 배터리 기반 IoT 기기의 센서 폴링 회로에 유리합니다. 반면 4.7kΩ 저항은 상대적으로 높은 정전용량을 가진 확장 모듈 연결 시에도 빠른 충전 전류를 공급하여 신호 무결성을 보장하는 대신 약 700 μA의 정적 전력을 소모합니다.
| 평가 항목 | 1.5kΩ ~ 2.2kΩ (강한 풀업) | 4.7kΩ (범용 권장) | 10kΩ (약한 풀업) |
|---|---|---|---|
| 최대 허용 $C_b$ (Fast 400kHz) | 최대 230 pF 지원 | 약 75 pF 이내 | 약 35 pF 이하 (위험) |
| 로우 상태 정적 전류 소모 | 1.5 mA ~ 2.2 mA (높음) | 약 0.70 mA (보통) | 약 0.33 mA (최적) |
| 노이즈 마진 및 EMI 내성 | 매우 우수 (임피던스 낮음) | 양호 (실내 제품 표준) | 취약 (커플링 노이즈 노출) |
| 권장 응용 애플리케이션 | 하네스 배선, 복수 센서, 산업용 | 온보드 센서, MCU 단거리 I2C | Standard 모드(100kHz), 코인셀 장비 |
따라서 와이어링 하네스를 통해 보드 외측으로 신호선이 인출되거나 3개 이상의 I2C 슬레이브 칩이 단일 라인에 물려 있는 복잡한 아키텍처라면, 관행적인 10kΩ을 배제하고 2.2kΩ에서 4.7kΩ 사이의 강력한 풀업 저항을 적용하는 것이 시스템 락업을 방지하는 실무 정석입니다.

하드웨어 양산 전 신호 무결성 검증 체크리스트
설계 단계의 이론적 수식 산출을 마친 후에는 양산 보드 조립 전 실제 물리적 동작 환경을 시뮬레이션하고 계측기로 검증해야 합니다. 특히 저항을 MCU 핀 근처에 배치할지, 아니면 슬레이브 버스 종단에 둘지에 따라 고주파 반사파와 링잉(Ringing) 특성이 크게 달라집니다.
또한 MCU 내부 소프트웨어 풀업(Weak Pull-up) 저항은 일반적으로 20kΩ에서 50kΩ 수준으로 값이 매우 크기 때문에, 고속 I2C나 타이밍 임계 통신 회로에서는 내부 저항에 의존하지 말고 반드시 외부 실장형 금속 피막 정밀 저항(F급 1%)을 적용해야 합니다.
실무 하드웨어 설계 검증 체크포인트
- 오실로스코프 프로브 용량 보정: 10:1 패시브 프로브 자체 용량(통상 8~15 pF)이 버스에 병렬 부하로 걸리므로 측정 시 프로브 보정을 고려할 것.
- 로직 로우 전압 레벨($V_{OL}$) 검증: 가장 멀리 떨어진 슬레이브가 버스를 당길 때 접지 전압이 0.4V 이하로 완전하게 가라앉는지 점검할 것.
- 다중 전원 도메인 레벨 시프터 연계: 1.8V와 3.3V 혼용 시스템에서는 양방향 전압 레벨 시프터 내부의 전계효과 트랜지스터(MOSFET) 온저항이 풀업 저항값과 직렬 분압을 형성하므로 저항값을 추가 보정할 것.
- MCU 내부 풀업 디스에이블: GPIO 초기화 펌웨어 코드에서 내부 풀업 레지스터가 외부 풀업 저항과 병렬 결합되어 합성 저항이 낮아지는 현상을 차단할 것.

실무 엔지니어 심화 FAQ
Q1. MCU 내부 풀업 저항을 활성화하면 외부 풀업 저항을 완전히 생략해도 되나요?
스위치 버튼이나 인터럽트 입력 감지 등 정적 신호선에는 내부 풀업(통상 20kΩ~50kΩ)으로 충분하지만, I2C와 같은 고속 시리얼 통신에서는 저항값이 너무 커서 상승 시간을 충족하지 못합니다. 파형이 톱니파 형태로 붕괴되어 통신 오류를 유발하므로 통신 라인에는 반드시 외장 저항을 배치해야 합니다.
Q2. I2C 버스에 슬레이브 모듈을 추가할 때마다 모듈 보드에 달린 풀업 저항 때문에 통신이 죽는 이유는 무엇인가요?
시중의 센서 브레이크아웃 보드 대다수는 개별적으로 4.7kΩ이나 10kΩ 풀업 저항을 내장하고 있습니다. 이러한 모듈 4개를 단일 I2C 버스에 병렬로 연결하면 합성 저항이 $R_{total} = 4.7k\Omega / 4 \approx 1.17k\Omega$ 이하로 급락하여 MCU 싱크 전류 한계를 초과하고, 디바이스가 버스를 충분히 로우(0.4V 이하)로 끌어내리지 못해 통신 락업이 발생합니다.
Q3. 케이블 길이가 1미터 이상으로 길어질 때 저항값을 낮추는 것 외에 어떤 하드웨어 대안이 있나요?
케이블 길이가 길어지면 기생 커패시턴스가 400 pF 한계를 쉽게 초과합니다. 단순히 풀업 저항을 낮추면 싱크 전류 한계에 부딪히므로, NXP의 PCA9615 같은 I2C 디퍼런셜 트랜시버를 도입하거나 액티브 풀업 가속기 회로(LTC4311 등)를 장착하여 슬루율을 인위적으로 보상해야 합니다.
공식 기술 문서 및 데이터시트 참고자료
NXP UM10204: I2C-bus Specification and User Manual Rev. 7.0
Texas Instruments Application Report SLVA689: I2C Bus Pull-Up Resistor Calculation
ARM Architecture Reference Manual: GPIO Port Electrical Specifications
이 글은 정보 제공을 목적으로 작성되었으며, 실제 기기·환경·정책에 따라 결과가 다를 수 있습니다. 보다 정확하고 최신인 정보는 아래 공신력 있는 기관의 자료를 함께 참고하시기 바랍니다.




