I²C 上拉电阻
I²C 上拉电阻取值:Rp,min = (VDD − VOL)/IOL 由驱动能力决定,Rp,max = tr/(0.8473·Cb) 由上升时间决定(NXP UM10204),给出推荐 E24 值、上升时间与功耗。
电路原理图
输入参数
计算结果
点按结果可复制数值;支持输入 4.7k、100n、2u2 等工程写法
计算公式
Rp,min = (VDD − VOL,max) / IOL,VOL,max = 0.4 V(VDD > 2 V)或 0.2·VDD
Rp,max = tr / (0.8473 · Cb),0.8473 = ln(0.7/0.3)
tr(30%→70%) = 0.8473 · Rp · Cb
标准 / 快速 / 快速+:tr ≤ 1000 / 300 / 120 ns,IOL = 3 / 3 / 20 mA,Cb ≤ 400 / 400 / 550 pF
原理与说明
I²C 的 SDA、SCL 是开漏(开集)线与结构:器件只能把线拉低,高电平靠上拉电阻对总线电容充电得到。电阻越大,上升沿越慢;电阻越小,器件拉低时要吸收的电流越大。两个约束给出 Rp 的允许范围(NXP UM10204 第 7.1 节)。
选值经验
- 100 kHz 小板子常用 4.7–10 kΩ;400 kHz 常用 2.2–4.7 kΩ;1 MHz(Fm+)常用 1 kΩ 以下并要求器件支持 20 mA 灌电流。
- 总线电容可以用示波器测上升时间反推:Cb = tr/(0.8473·Rp)。
- 长线或多负载总线超出 400 pF 时,用 I²C 缓冲器/扩展器分段,或用恒流有源上拉(如 LTC4311)加速上升沿。
- 串联小电阻(100–300 Ω)可抑制振铃并保护引脚,但会抬高 VOL,计算 Rp,min 时要计入。