I2C上拉电阻计算器
根据总线电容和速度模式计算最佳I2C上拉电阻值。支持标准、快速和快速模式增强。
I2C上拉电阻器总线通信嵌入式
计算器
pF
Total SDA/SCL line capacitance
V
Vcc Vcc
│ │
┌┴┐ ┌┴┐
│ │ Rp │ │ Rp
└┬┘ └┬┘
│ │
SDA ─┼─────────────┼─ SCL
│ │
┌──┴──┐ ┌──┴──┐
│ │ │ │
│ IC1 │ │ IC2 │
│ │ │ │
└─────┘ └─────┘如何使用此计算器
此I2C上拉电阻计算器帮助您根据总线电容、电源电压和速度模式要求,找到I2C总线的最佳上拉电阻值。
- 估算总线电容 — 所有设备输入电容加上走线/导线电容的总和
- 输入电源电压 — 通常为3.3V或5V
- 选择速度模式 — 标准(100kHz)、快速(400kHz)或快速模式+(1MHz)
- 点击计算 — 获取有效的电阻范围和推荐值
I2C上拉公式
Rmax = tr / (0.8473 × Cbus)
Rmin = (Vcc - Vol) / Iol
其中 tr = 最大上升时间,Cbus = 总电容
理解约束条件
- 最大电阻: 受上升时间要求限制。较高的电容需要较低的电阻以满足时序规格
- 最小电阻: 受输出灌电流(Iol)限制。不得超过设备将线路拉低的能力
- 0.8473系数: 从RC上升时间到达0.7×Vcc(逻辑高电平阈值)推导而来
I2C速度模式
| 模式 | 最大频率 | 最大上升时间 | 最大电容 | 灌电流 |
|---|---|---|---|---|
| 标准模式 | 100 kHz | 1000 ns | 400 pF | 3 mA |
| 快速模式 | 400 kHz | 300 ns | 400 pF | 3 mA |
| 快速模式+ | 1 MHz | 120 ns | 550 pF | 20 mA |
| 高速模式 | 3.4 MHz | — | 400 pF | 特殊 |
注意: 高速模式需要有源上拉(电流源)而非电阻上拉。
估算总线电容
电容来源
- 设备输入电容: 每个设备3-10 pF(查看数据手册)
- PCB走线: 典型走线宽度约1-2 pF/cm
- 连接器: 每个连接器2-5 pF
- 导线/电缆: 根据电缆类型30-100 pF/米
计算示例
10cm PCB上的3个设备:
- 3个设备 × 10 pF = 30 pF
- 10 cm走线 × 1.5 pF/cm = 15 pF
- 总计: 约45 pF(增加20%余量 = 54 pF)
常见问题
我可以为SDA和SCL使用不同的上拉值吗?
通常两条线使用相同的值。但是,如果一条线的电容明显不同(例如走线更长),您可以分别优化每条线。
如果计算出的范围非常小或无效怎么办?
这通常意味着您的总线电容对于该速度模式来说太高了。解决方案: 减少设备数量、缩短走线、使用总线缓冲器/扩展器,或切换到较慢的模式。
我应该使用微控制器的内部上拉吗?
内部上拉(通常20-50kΩ)对于正确的I2C操作通常太弱,特别是在快速模式速度或有显著总线电容时。 为了可靠的通信,请始终使用外部上拉。
我应该把上拉电阻放在哪里?
将上拉放在总线的主设备端,或尽可能靠近主设备。每条总线只使用一对上拉,而不是每个设备一对。