날짜 & 시간 계산

I2C 풀업 상승시간 계산기

풀업 저항과 버스 정전용량을 입력해 I2C 신호의 예상 상승시간을 계산합니다.

한눈에 요약

풀업 저항(Rp)과 버스 정전용량(Cb)을 기반으로 I2C 오픈 드레인 신호의 상승시간(tr)과 RC 시정수를 계산하고 표준 규격(100kHz, 400kHz, 1MHz) 만족 여부를 판정합니다.

실시간 자동 연산100% 브라우저 연산검토 완료

I2C 풀업 상승시간 계산기

실시간 연산
pF

계산 결과
수치를 입력하면 실시간으로 계산됩니다.

계산 공식 및 예시

공식예상 상승시간(ns) = 0.8473 × 풀업 저항(kΩ) × 버스 정전용량(pF)
계산 예시풀업 저항 4.7kΩ, 버스 정전용량 100pF일 때 예상 상승시간은 약 398.2ns입니다.

I2C 풀업 상승시간 계산기 사용법

I2C(Inter-Integrated Circuit) 버스는 SDA(데이터) 및 SCL(클록) 라인이 오픈 드레인(Open-Drain) 또는 오픈 컬렉터(Open-Collector) 형태로 설계되어 있습니다. 드라이버가 신호를 HIGH로 직접 밀어 올리지 못하고, 외부에 장착된 풀업 저항(RpR_p)을 통해 버스 정전용량(CbC_b)을 충전하면서 전압이 상승하게 됩니다.

이 계산기는 설정한 풀업 저항값(RpR_p)과 회로의 전체 버스 커패시턴스(CbC_b)를 입력받아, 신호 전압이 0.3VDD0.3 V_{DD}에서 0.7VDD0.7 V_{DD}까지 상승하는 데 걸리는 예상 상승시간(trt_r)을 정밀 계산합니다. 또한 계산된 상승시간이 I2C 표준 모드(100kHz), 고속 모드(400kHz), 고속 플러스 모드(1MHz)의 규격 상한을 만족하는지 즉시 검증합니다.

계산 방법 및 이론적 배경

단순 1차 RC 충전 회로에서 시간 tt에 따른 버스 전압 V(t)V(t)는 다음과 같이 표현됩니다.

V(t)=VDD(1etRp×Cb)V(t) = V_{DD} \left(1 - e^{-\frac{t}{R_p \times C_b}}\right)

I2C 공식 사양서(NXP UM10204)에서 상승시간(trt_r)은 신호 레벨이 논리 LOW 상한인 VIL=0.3VDDV_{IL} = 0.3 V_{DD}에서 논리 HIGH 하한인 VIH=0.7VDDV_{IH} = 0.7 V_{DD}까지 도달하는 시간 차이로 정의됩니다.

각 전압 임계치에 도달하는 시점 t1t_1, t2t_2는 다음과 같이 계산됩니다.

  • V(t1)=0.3VDD    t1=RpCbln(10.3)=RpCbln(107)0.3567×RpCbV(t_1) = 0.3 V_{DD} \implies t_1 = -R_p C_b \ln(1 - 0.3) = R_p C_b \ln\left(\frac{10}{7}\right) \approx 0.3567 \times R_p C_b
  • V(t2)=0.7VDD    t2=RpCbln(10.7)=RpCbln(103)1.2040×RpCbV(t_2) = 0.7 V_{DD} \implies t_2 = -R_p C_b \ln(1 - 0.7) = R_p C_b \ln\left(\frac{10}{3}\right) \approx 1.2040 \times R_p C_b

따라서 신호 상승시간 trt_r 공식은 아래와 같이 유도됩니다.

tr=t2t1=RpCb[ln(103)ln(107)]=RpCbln(73)0.8473×Rp×Cbt_r = t_2 - t_1 = R_p C_b \left[\ln\left(\frac{10}{3}\right) - \ln\left(\frac{10}{7}\right)\right] = R_p C_b \ln\left(\frac{7}{3}\right) \approx 0.8473 \times R_p \times C_b

실무 단위로 풀업 저항을 kΩ\text{k}\Omega, 버스 정전용량을 pF\text{pF}로 입력하면, 단위 변환 계수(103×1012×109=110^3 \times 10^{-12} \times 10^9 = 1)에 따라 결과는 곧바로 나노초(ns\text{ns}) 단위로 계산됩니다.

I2C 속도 모드별 최대 상승시간 규격 기준

I2C 버스 사양서에 명시된 주요 모드별 최대 허용 상승시간(tr,maxt_{r,\max})과 최대 버스 커패시턴스(Cb,maxC_{b,\max}) 한계는 다음과 같습니다.

  • Standard-mode (Sm, 100 kHz): 최대 상승시간 tr1000 nst_r \le 1000\text{ ns}, 최대 버스 용량 Cb400 pFC_b \le 400\text{ pF}
  • Fast-mode (Fm, 400 kHz): 최대 상승시간 tr300 nst_r \le 300\text{ ns}, 최대 버스 용량 Cb400 pFC_b \le 400\text{ pF}
  • Fast-mode Plus (Fm+, 1 MHz): 최대 상승시간 tr120 nst_r \le 120\text{ ns}, 최대 버스 용량 Cb550 pFC_b \le 550\text{ pF}

계산 결과 나온 trt_r 값이 사용하려는 모드의 기준치를 초과할 경우, 데이터 셋업 타임 부족이나 클록 왜곡으로 인해 통신 패킷 손실이 발생합니다.

계산 예시

  • 상황 1: 일반적인 4.7kΩ 풀업 저항과 100pF 버스 용량

    • 풀업 저항 Rp=4.7 kΩR_p = 4.7\text{ k}\Omega, 버스 정전용량 Cb=100 pFC_b = 100\text{ pF}
    • RC 시정수: τ=4.7×100=470 ns\tau = 4.7 \times 100 = 470\text{ ns}
    • 예상 상승시간: tr=0.8473×4.7×100398.2 nst_r = 0.8473 \times 4.7 \times 100 \approx 398.2\text{ ns}
    • 판정: Fast-mode 한계(300ns)를 초과하므로 Standard-mode(100kHz, 최대 1000ns)에서 안정적으로 동작합니다. 400kHz 고속 통신을 적용하려면 풀업 저항을 줄여야 합니다.
  • 상황 2: 고속 400kHz 구동을 위해 2.2kΩ 적용 시

    • 풀업 저항 Rp=2.2 kΩR_p = 2.2\text{ k}\Omega, 버스 정전용량 Cb=100 pFC_b = 100\text{ pF}
    • RC 시정수: τ=2.2×100=220 ns\tau = 2.2 \times 100 = 220\text{ ns}
    • 예상 상승시간: tr=0.8473×2.2×100186.4 nst_r = 0.8473 \times 2.2 \times 100 \approx 186.4\text{ ns}
    • 판정: Fast-mode 한계치인 300ns보다 훨씬 낮으므로 400kHz Fast-mode를 완벽히 지원합니다.

실무 풀업 저항(RpR_p) 선정 가이드 및 주의사항

  • 최대 풀업 저항 한계 (Rp,maxR_{p,\max}): 목표 통신 속도의 최대 허용 상승시간(tr,maxt_{r,\max})을 만족하려면 풀업 저항은 다음 식 이하로 설계해야 합니다.
Rp,max=tr,max0.8473×CbR_{p,\max} = \frac{t_{r,\max}}{0.8473 \times C_b}
  • 최소 풀업 저항 한계 (Rp,minR_{p,\min}): 신호가 LOW로 유지될 때 IC 내부 트랜지스터가 버텨야 하는 최대 싱크 전류(IOLI_{OL}, 통상 3mA)와 출력 로우 전압(VOL,maxV_{OL,\max}, 보통 0.4V)을 고려하여 최소 저항값을 지켜야 합니다.
Rp,min=VDDVOL,maxIOLR_{p,\min} = \frac{V_{DD} - V_{OL,\max}}{I_{OL}}
  • 버스 정전용량 산정 체크포인트: 회로도 상에 별도 커패시터를 달지 않더라도 마이크로컨트롤러(MCU) 및 각 센서/EEPROM 핀당 약 5~10pF, PCB 선로 패턴 cm당 약 0.5~1pF의 기생 커패시턴스가 발생합니다. I2C 장치가 5개 이상 병렬 연결되거나 긴 플렉스 케이블을 사용할 경우 버스 용량이 쉽게 200pF를 넘어가므로 실측 기반의 검증이 권장됩니다.
최종 내용 검토일: 2026-09-16

Q&A

자주 묻는 질문

I2C 신호 상승시간(Rise Time, tr)이란 무엇인가요?

I2C 버스는 오픈 드레인(Open-Drain) 구조로 동작하므로 신호가 LOW에서 HIGH로 전환될 때 풀업 저항을 통해 버스 커패시턴스가 충전됩니다. I2C 표준 규격(NXP UM10204)에서는 LOW 인식 임계치인 $V_{IL} = 0.3 V_{DD}$에서 HIGH 인식 임계치인 $V_{IH} = 0.7 V_{DD}$까지 전압이 상승하는 데 걸리는 시간을 상승시간($t_r$)으로 정의합니다.

풀업 저항을 너무 크거나 작게 설정하면 어떤 문제가 발생하나요?

풀업 저항이 너무 크면 버스 충전 속도가 느려져 상승시간이 길어지고, 규격 한계(예: 400kHz 기준 300ns)를 초과하여 신호 왜곡과 통신 에러가 발생합니다. 반대로 풀업 저항이 너무 작으면 마스터나 슬레이브가 신호를 LOW로 당길 때 과도한 싱크 전류($I_{OL}$)가 흘러 전력 소비가 급증하고 LOW 레벨 전압($V_{OL}$)이 상승하여 통신 인식이 실패할 수 있습니다.

버스 정전용량(Cb)은 어떻게 산정하나요?

버스 정전용량($C_b$)은 PCB 패턴 배선의 기생 커패시턴스(통상 cm당 약 0.5~1pF), I2C 버스에 연결된 마스터 및 각 슬레이브 IC 핀의 내부 커패시턴스(IC당 약 5~10pF), 그리고 커넥터 및 케이블의 커패시턴스를 모두 합산하여 산출합니다.

I2C 속도 모드별 허용 상승시간 한계는 얼마인가요?

I2C 공식 규격에 따르면 Standard-mode(100kHz)는 최대 1000ns(1µs), Fast-mode(400kHz)는 최대 300ns, Fast-mode Plus(1MHz)는 최대 120ns 이하를 만족해야 정상적인 통신이 보장됩니다.