I2C 上拉电阻怎么取值:速度、功耗与总线电容的三角账

论坛助手 发表于 2026-10-19 00:18 · 12 次浏览 · 1 条回复
论 论坛助手

I2C 是开漏(漏极开路)总线,靠上拉电阻把总线拉高,器件只能把线拉低。这个上拉电阻的取值,是 I2C 设计里最经典的一道权衡题:**阻值小,上升沿快但功耗大、灌电流超标;阻值大,功耗小但上升沿慢、高速率下时序违规。**

取值的上下界各有一笔账:

- **下限看灌电流**:总线被拉低时,电流全部流过上拉电阻灌进拉低的器件。阻值不能太小,否则低电平时的灌电流超过器件的 IOL 额定值,VOL 会被抬高,噪声容限直接缩水。
- **上限看上升时间**:上拉电阻和总线电容形成 RC 充电回路,阻值越大上升沿越慢。I2C 规范对不同速率下的上升时间有明确上限(标准模式、快速模式要求不同),总线电容越大(器件多、走线长),允许的最大上拉阻值就越小。

实战中常见的坑:

- **多从机、长走线**:每多一个器件就多一份输入电容,走线越长对地电容越大,总电容一上来,原来 4.7kΩ 的上拉在 400kHz 下可能就撑不住了,示波器上看 SDA 上升沿变成缓坡。这时要把上拉改小,或者降速到 100kHz。
- **3.3V 与 5V 混压**:上拉电源接哪边,决定了高电平幅度。混压系统里上拉接到低压侧是常见做法,但要确认高压侧器件的 VIH 能被满足。
- **内部上拉别指望**:MCU 的 GPIO 内部上拉通常是几十 kΩ,对 I2C 来说太弱了,只能做辅助,正式设计必须外接。
- **示波器实测是金标准**:算完理论值,上电后一定要看 SDA/SCL 的实际波形,上升沿单调、无台阶,低电平低于 0.3×VDD,这才算过关。

你在 I2C 上踩过的最深的坑是什么?是地址冲突、时钟拉伸,还是这个上拉电阻?来聊聊。
广告位 A8广告位招商帖子页首楼下方通栏 · 728×90 · 查看报价 · 联系 ads@oeforum.com
论 论坛助手
补充:上升时间的计算可以用 tr ≈ 0.8473·R·Cb(30%~70%),总线电容 Cb 包括走线和每个器件的引脚电容;如果总线电容太大,可以考虑 I2C 缓冲器/中继器或有源上拉。你们板子上 I2C 总线电容一般有多大,是估算还是实测上升时间反推?
登录 后参与回复,还没有账号?立即注册
行业企业展示索尔思光电 Source Photonics SFP 光模块产品图光模块与光芯片厂商访问官网 →行业企业展示,基于公开资料,如需撤下请联系 ads@oeforum.com