Skip to content
RFrftools.io
Comms

I2C 풀업 저항기 계산기

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

Loading calculator...

공식

Rmax=tr0.8473⋅Cbus,Rmin=VDD−VOLIOL,Rrec=Rmin⋅RmaxR_{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.4 V, 2 V 이하에서는 0.2·V_DD) (V)
I_{OL}— 싱크 전류 (표준/고속 3 mA, 패스트 플러스 20 mA, 2 V 이하에서는 2 mA) (A)

작동 방식

이 계산기는 표준 (100kHz), 고속 (400kHz) 및 고속 플러스 (1MHz) 모드에서 안정적인 버스 통신을 위한 최적의 I2C 풀업 저항 값을 결정합니다.하드웨어 엔지니어와 임베디드 개발자는 이를 사용하여 상승 시간 요구 사항과 전력 소비의 균형을 맞춥니다.NXP UM10204 (공식 I2C 사양) 에 따라 풀업 저항기는 R_min = (V_DD - V_OL) /I_OL (표준 및 고속 모드에서 3.3V일 때 967옴) 및 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 풀업은 버스 커패시턴스가 75pF를 초과할 때 실제로 고속 모드 사양을 위반하는 것입니다.I2C 장애를 연구한 결과, 68% 가 잘못된 풀업 값으로 인해 상승 시간 위반이 발생한 것으로 나타났습니다.

계산 예제

웨어러블 장치 설계는 400kHz 고속 모드에서 작동하는 3.3V 버스의 I2C 센서 4개 (각각 25pF) 와 50pF 트레이스 커패시턴스를 연결합니다.NXP UM10204 섹션 7.1에 따름: 합계 C_bus = (4 x 25) + 50 = 150pF.최대 저항: R_max = t_rise / (0.8473 x C_bus) = 300 ns/ (0.8473 x 150pF) = 2.36kΩ.최소 저항: R_min = (V_DD - V_OL) / I_OL = (3.3V - 0.4V) /3mA = 967옴.최적값 = sqrt(R_max x R_min) = sqrt (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 이상입니다.
  • ✗마스터 보드와 슬레이브 보드 모두에 풀업을 배치하여 저항을 효과적으로 절반으로 줄이고 3mA 장치 제한을 초과하는 전류를 두 배로 늘립니다. I_OL
  • ✗패스트 모드 플러스 (1MHz) 에는 t_rise <= 120 ns가 필요하다는 점을 무시하고 200pF 버스에 대해 700옴 미만의 풀업을 요구합니다.

자주 묻는 질문

I2C는 NXP UM10204 규격의 오픈 드레인 출력을 사용합니다. 즉, 장치는 라인을 LOW로만 끌어내릴 수 있습니다.풀업은 R을 통해 버스 커패시턴스를 충전하여 HIGH 상태를 제공합니다. 풀업이 없으면 버스가 플로팅되어 통신이 100% 실패합니다.
커패시턴스와 저항은 RC 시간 상수를 형성합니다.400kHz에서 C_bus = 200 pF에서 t_rise < 300 ns를 달성하려면 R <= 1.77kOhm이 필요합니다.50pF를 추가할 때마다 최대 R이 약 400옴씩 감소합니다.I2C 사양은 총 버스 커패시턴스를 400pF로 제한합니다.
아니요.표준 모드 (100kHz) 는 t_rise = 1000 ns를 허용하며, 200pF에서 5.9kOhm을 허용합니다.고속 모드 (400kHz) 에는 t_rise = 300 ns가 필요하며, R은 1.77kOhm으로 제한됩니다.패스트 모드 플러스 (1MHz) 에는 t_rise = 120 ns가 필요하며, 동일한 커패시턴스에서 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

관련 계산기