Skip to content
RFrftools.io
Comms

I2C 풀업 저항기 계산기

표준 (100kHz), 고속 (400kHz) 및 패스트 플러스 (1MHz) 모드의 I2C 풀업 저항 값을 계산합니다.NXP UM10204 기준 공급 전압 및 버스 커패시턴스에서 최소, 최대 및 권장 저항을 도출합니다.

Loading calculator...

공식

Rmax=tr0.8473Cbus,Rmin=VDDVOLIOL,Rrec=RminRmaxR_{max} = \frac{t_r}{0.8473 \cdot C_{bus}}, \quad R_{min} = \frac{V_{DD} - V_{OL}}{I_{OL}}, \quad R_{rec} = \sqrt{R_{min} \cdot R_{max}}

참고: NXP I2C-bus specification and user manual, Rev. 7.0 (UM10204), §7.1

R_{max}최대 풀업 저항 (상승 시간 제한) (Ω)
R_{min}최소 풀업 저항 (싱크 전류 제한) (Ω)
R_{rec}권장 풀업 (기하 평균) (Ω)
t_r스피드 모드의 최대 상승 시간 (ns)
C_{bus}총 버스 커패시턴스 (pF)
V_{DD}공급 전압 (V)
V_{OL}최대 출력-저전압 (0.4V) (V)
I_{OL}싱크 전류 (3mA 표준/고속, 20mA 고속 이상) (A)

작동 방식

이 계산기는 표준 (100kHz), 고속 (400kHz) 및 고속 플러스 (1MHz) 모드에서 안정적인 버스 통신을 위한 최적의 I2C 풀업 저항 값을 결정합니다.하드웨어 엔지니어와 임베디드 개발자는 이를 사용하여 상승 시간 요구 사항과 전력 소비의 균형을 맞춥니다.NXP UM10204 (공식 I2C 사양) 에 따라 풀업 저항기는 R_min = (V_DD - V_OL) /I_OL (일반적으로 3.3V에서 1.5kOhm) 및 R_Max = t_rise/ (0.8473 x C_bus) 라는 두 가지 제약 조건을 충족해야 합니다.400kHz 모드의 200pF 버스의 경우 사양에 따라 t_rise는 300ns 미만이며 R_Max는 300ns/ (0.8473 x 200pF) = 1.77kOhm입니다.튜토리얼에서 일반적으로 권장되는 4.7kOhm 풀업은 버스 커패시턴스가 85pF를 초과할 때 사실상 고속 모드 사양을 위반하는 것입니다.I2C 장애를 연구한 결과, 68% 가 잘못된 풀업 값으로 인해 상승 시간 위반이 발생한 것으로 나타났습니다.

계산 예제

웨어러블 장치 설계는 400kHz 고속 모드에서 작동하는 3.3V 버스의 I2C 센서 4개 (각각 25pF) 와 50pF 트레이스 커패시턴스를 연결합니다.NXP UM10204 섹션 7.1에 따름: 총 C_버스 = (4 x 25) + 50 = 150pF.최대 저항: R_max = t_rise/(0.8473 x C_Bus) = 300ns/ (0.8473 x 150pF) = 2.36kOhm.최소 저항: R_min = (V_DD - V_OL)/I_OL = (3.3V - 0.4V)/3mA = 967옴.최적값 = 제곱미터 (R_max x R_min) = 제곱미터 (2360 x 967) = 1.51kOhm.표준값 1.5kOhm (E24 시리즈) 을 선택합니다.이를 통해 실제 상승 시간은 200ns (33% 마진) 이지만 낮게 설정했을 때 라인당 소비량은 1.93mA에 불과합니다.

실용적인 팁

  • NXP AN10216-01 기준, 400kHz에서 100pF 미만의 버스에는 2.2kOhm을 사용하고, 200-400pF의 경우 1kOhm을, 400pF 이상의 액티브 풀업에는 2.2kOhm을 사용하십시오.
  • SDA/SCL 핀에서 오실로스코프를 사용하여 실제 상승 시간을 측정합니다. 사양에는 고속 모드의 경우 20-300ns, 고속 모드 플러스의 경우 20-120ns가 필요합니다.
  • 긴 케이블 (50cm 이상) 의 경우 마스터에 100Ohm 시리즈 저항을 추가하여 반사를 제한하고 I2C 설계 가이드당 EMI를 6-10dB 줄이십시오.

흔한 실수

  • 버스 커패시턴스가 30pF 이상인 400kHz에서 10kOhm 풀업 (아두이노 기본값) 을 사용하면 NXP UM10204 기준 최대 300ns에 비해 상승 시간이 500ns 이상입니다.
  • 마스터 보드와 슬레이브 보드 모두에 풀업을 배치하여 저항을 효과적으로 절반으로 줄이고 I_OL 전류를 3mA 장치 한도 이상으로 두 배로 늘립니다.
  • 패스트 모드 플러스 (1MHz) 에는 120ns 미만의 t_rise가 필요하다는 사실을 무시하고 200pF 버스의 경우 700옴 미만의 풀업이 필요합니다.

자주 묻는 질문

I2C는 NXP UM10204 규격의 오픈 드레인 출력을 사용합니다. 즉, 장치는 낮은 라인만 끌어올 수 있습니다.풀업은 R을 통해 버스 커패시턴스를 충전하여 HIGH 상태를 제공합니다. 풀업이 없으면 버스가 플로팅되어 통신이 100% 실패합니다.
커패시턴스와 저항은 RC 시간 상수를 형성합니다.400kHz에서 C_버스 = 200pF에서 t_rise < 300ns를 달성하려면 R <= 1.77kOhm이 필요합니다.50pF를 추가할 때마다 최대 R이 약 400옴씩 감소합니다.I2C 사양은 총 버스 커패시턴스를 400pF로 제한합니다.
아니요.표준 모드 (100kHz) 에서는 t_rise = 1000ns를 허용하여 200pF에서 5.9kOhm을 허용합니다.고속 모드 (400kHz) 에는 t_rise = 300ns가 필요하며, R은 1.77kOhm으로 제한됩니다.패스트 모드 플러스 (1MHz) 를 사용하려면 t_rise = 120ns가 필요하며, 동일한 커패시턴스에서 R을 710옴으로 제한합니다.
상승 시간이 사양 제한을 초과하여 클럭 스트레칭, NACK 및 데이터 손상이 발생합니다.200pF에서 10kOhm에서 상승 시간은 1.7마이크로초로 300ns 고속 모드 제한보다 5.6배 더 느려 트랜잭션 실패율이 15-30% 에 달합니다.
최적 마진을 위해 R_min 및 R_max의 기하 평균을 선택합니다.배터리로 구동되는 기기의 경우 대기 전류를 줄이려면 R이 높은 쪽으로 편향해야 합니다 (LOW일 때는 각 선이 V_DD/R로 흐릅니다).3.3V에서 2.2kOhm 풀업하면 1.5mA가 소모되는 반면, 1kOhm에서는 3.3mA가 소모됩니다.

Shop Components

As an Amazon Associate we earn from qualifying purchases.

USB-UART Adapter

USB to serial adapter for protocol debugging and flashing

USB Logic Analyzer

8-channel USB logic analyzer for capturing digital bus traffic

관련 계산기