오픈드레인 풀업 저항 계산기
전원전압, 최대 싱크전류, 목표 상승시간과 버스 용량을 입력해 풀업 저항 범위를 계산합니다.
전원 전압, 허용 싱크 전류, 신호 상승 시간 및 버스 커패시턴스를 종합하여 회로 손상을 방지하는 최소 저항(R_min)과 통신 타이밍을 보장하는 최대 저항(R_max)의 범위를 도출하고, E12 시리즈 표준 저항값을 추천합니다.
오픈드레인 풀업 저항 계산기
계산 공식 및 예시
최소 저항 R_min = (Vcc - Vol) / Iol, 최대 저항 R_max = tr / (0.8473 × Cb)오픈드레인 풀업 저항 계산기 사용법
I2C, SMBus, 1-Wire 등 수많은 디지털 통신 버스와 인터럽트 핀은 여러 장치가 하나의 공통 신호선을 공유할 수 있도록 오픈드레인(Open-Drain) 또는 오픈컬렉터(Open-Collector) 출력을 채택합니다.
오픈드레인 출력단은 신호를 접지로 끌어내리는(Pull-down) 트랜지스터만 포함하므로, 신호선을 논리 High() 레벨로 복귀시키려면 반드시 외부 풀업 저항()을 연결해야 합니다.
적절한 풀업 저항을 선정하지 않으면 칩이 소손되거나, 신호 파형이 찌그러져 간헐적인 통신 끊김 현상이 발생합니다. 본 계산기는 회로의 전기적 한계와 통신 속도 규격을 반영하여 안전하고 안정적인 풀업 저항 범위를 제시합니다.
계산 방법
풀업 저항의 범위는 전기적 정격(최소 저항)과 신호 타이밍 사양(최대 저항)이라는 두 가지 상반된 구속 조건에 의해 결정됩니다.
1. 최소 풀업 저항 ()
신호선이 논리 Low 상태일 때, 전원()에서 풀업 저항을 통과해 출력 트랜지스터로 흘러 들어가는 전류를 싱크 전류()라고 합니다. 드라이버가 버틸 수 있는 최대 싱크 전류 규격을 초과하지 않도록 저항의 하한선이 결정됩니다.
- : 회로 구동 전원 전압 (V)
- : 논리 Low로 인정받기 위한 핀의 최대 출력 저전압 (일반적으로 0.4V 또는 )
- : 드라이버 내부 트랜지스터가 견딜 수 있는 정격 싱크 전류 (A, mA 입력 시 1,000으로 나눔)
2. 최대 풀업 저항 ()
트랜지스터가 꺼지고 신호선이 High 레벨로 올라갈 때, 풀업 저항()과 버스 상의 기생 정전용량()이 RC 충전 회로를 형성합니다. I2C 공식 규격에서는 상승 시간()을 신호가 에서 까지 도달하는 시간으로 정의합니다.
RC 과도응답 수식에 따라 유도하면 다음과 같습니다.
- : 통신 표준 모드에서 요구하는 최대 허용 상승 시간 (초, ns 단위 입력 시 적용)
- : PCB 배선 커패시턴스, 커넥터, 각 수신 핀 내부 입력 용량의 합산값 (패럿, pF 단위 입력 시 적용)
- : 에서 도출된 표준 규격 계수
3. 권장 표준 저항값 ()
하한선()과 상한선() 사이의 기하평균()을 구한 후, 실제 양산에서 널리 사용되는 E12 표준 저항 계열(1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2의 10진수 배수) 중 가장 인접한 값을 자동으로 선정합니다.
I2C 통신 모드별 권장 규격 기준
I2C 버스 설계 시 일반적으로 적용되는 속도별 파라미터는 다음과 같습니다.
| 통신 모드 | 최대 클록 속도 | 최대 상승 시간 () | 최대 버스 용량 () | 표준 싱크 전류 () |
|---|---|---|---|---|
| Standard-mode (Sm) | 100 kHz | 1,000 ns (1 µs) | 400 pF | 3 mA |
| Fast-mode (Fm) | 400 kHz | 300 ns | 400 pF | 3 mA |
| Fast-mode Plus (Fm+) | 1,000 kHz (1 MHz) | 120 ns | 550 pF | 20 mA |
| High-speed mode (Hs) | 3.4 MHz | 40 ~ 80 ns | 100 pF | 3 mA (전류원 구동 병행) |
계산 예시
예시 1: 3.3V 표준 I2C (100kHz) 버스 설계
- 입력값: , , , ,
- 최소 저항 ():
- 최대 저항 ():
- 결과: 허용 범위는 약 이며, 최적의 E12 표준 권장값은 3.3 kΩ (또는 관용적으로 4.7 kΩ)입니다.
예시 2: 3.3V 고속 I2C (400kHz Fast-mode) 설계
- 입력값: , , , ,
- 최소 저항 (): (동일)
- 최대 저항 ():
- 결과: 통신 속도가 빨라지면서 상한선이 크게 낮아져 범위가 요구되며, 권장값은 1.8 kΩ (또는 2.2 kΩ)입니다.
사용 시 주의사항 및 실무 팁
- 버스 용량() 추정법: 일반적으로 FR4 PCB의 마이크로스트립 배선은 1cm당 약 의 기생 용량을 가집니다. 여기에 연결되는 슬레이브 IC 핀당 입력 용량(, 통상 )을 모두 합산해야 합니다. 장치가 많거나 케이블로 연결된다면 버스 용량이 쉽게 에 도달합니다.
- 노이즈 vs 전력 소모의 트레이드오프:
- 강한 풀업(작은 저항값): 신호 상승 속도가 빠르고 외부 노이즈(EMI/크로스토크)에 매우 강인하지만, Low 상태일 때 소비 전력이 증가합니다.
- 약한 풀업(큰 저항값): 전력 소모를 줄일 수 있어 배터리 구동 사물인터넷(IoT) 장치에 유리하지만, 파형 상승 엣지가 둥글어져 노이즈에 취약해집니다.
- 오실로스코프를 통한 파형 검증: 양산 전 실제 보드에서 통신 파형을 오실로스코프로 측정하여 Low 전압이 기준치 이하로 깔끔하게 떨어지는지, High 상승 구간이 시간 내에 직각에 가깝게 복귀하는지 반드시 검증하십시오.
Q&A
자주 묻는 질문
오픈드레인(Open-Drain) 회로에 풀업 저항이 반드시 필요한 이유는 무엇인가요?
오픈드레인(또는 BJT의 오픈컬렉터) 구조의 출력단은 내부 트랜지스터가 신호를 접지(GND)로 당기는 Low 구동 능력만 갖추고 있습니다. 트랜지스터가 꺼졌을 때 신호선을 High(Vcc) 레벨로 끌어올려 줄 능동 소자가 없기 때문에, 외부에서 전원선과 신호선 사이에 풀업 저항을 연결해야 유효한 High 논리 레벨을 형성할 수 있습니다.
풀업 저항값이 너무 작으면 어떤 문제가 발생하나요?
풀업 저항이 너무 작으면 신호선이 Low 상태가 될 때 저항을 통해 드라이버 핀으로 과도한 싱크 전류(Iol)가 흐르게 됩니다. 이로 인해 IC 핀의 허용 전류 한도를 초과하여 칩이 과열되거나 손상될 수 있으며, 핀 내부 온저항(Ron)에 걸리는 전압 강하가 커져 논리 Low 인정 기준 전압(Vol)을 초과하는 논리 인식 오류가 발생합니다.
풀업 저항값이 너무 크면 왜 통신 에러가 생기나요?
풀업 저항과 신호선 주변의 기생 커패시턴스(배선 및 핀 용량, Cb)가 결합하여 RC 지연 회로를 형성합니다. 저항이 과도하게 크면 커패시터를 충전하는 속도가 느려져 신호가 High 레벨로 올라가는 상승 시간(tr)이 길어집니다. 이는 클록 주파수가 높은 통신에서 셋업/홀드 타임 위반 및 신호 찌그러짐을 유발합니다.
공식에 나오는 상수 0.8473은 어디서 유도된 수치인가요?
I2C 표준 규격에서 신호 상승 시간(tr)은 신호 레벨이 Vcc의 30%(0.3 Vcc)에서 70%(0.7 Vcc)까지 도달하는 데 걸리는 시간으로 정의됩니다. RC 충전 공식 V(t) = Vcc × (1 - e^(-t / RC))에서 70% 도달 시간(약 1.2040 RC)과 30% 도달 시간(약 0.3567 RC)의 차이를 구하면 ln(0.7 / 0.3) × RC ≈ 0.8473 RC가 도출됩니다.