I²C 上拉电阻:为什么常用 4.7 kΩ?

先记住:4.7 kΩ 是常见的折中选择;实际是否合适,还要看电路的电压、速度、总线电容和芯片的拉低能力。

原笔记引用的 1 张配图目前未提供;此页保留文字与来源,涉及图示的段落需对照原文阅读。

版本与验证范围

收藏整理,原作者与来源见正文;不作为 Lan 的原创项目或实测结论。

来源:IIC上拉电阻,为什么偏偏选4.7K? · 华清远见小美老师讲嵌入式

先记住:4.7 kΩ 是常见的折中选择;实际是否合适,还要看电路的电压、速度、总线电容和芯片的拉低能力。

1. I²C 的两根线在做什么?

I²C 通常用两根线让主控和传感器等芯片通信:

线 作用 可以怎样理解
SDA 传数据 传递一个个高、低电平
SCL 传时钟 告诉双方什么时候读取数据

这两根线都要能够变成高电平和低电平。普通 I²C 总线空闲时,两根线通常都是高电平。

2. 为什么要接上拉电阻?

可以把上拉电阻想成一根往上拉的弹簧:

  1. 芯片想把线路变低,就像用手把弹簧往下拉。
  2. 芯片松手后,上拉电阻把线路带回高电平。

芯片这种“能主动拉低,也能松手”的输出方式叫开漏输出。如果大家都松手而线路没有合适的上拉,线路可能浮空,高电平就没有可靠保障。

此处配图暂缺,参阅原帖。

图左只画了 SDA:电阻接在上拉电源与 SDA 之间。SCL 也需要上拉。图里的 Cb 表示线路、器件引脚、连接器等带来的总电容,不一定是一颗单独焊上去的电容。

3. 为什么不直接选最大的或最小的电阻?

继续用弹簧来理解:电阻小,相当于往上拉得更有力;电阻大,相当于往上拉得更弱。

上拉电阻 电压回到高电平 芯片拉低时
小一些,例如 1 kΩ 上升比较快 电流比较大,芯片可能拉不够低,功耗也更大
大一些,例如 10 kΩ 上升比较慢 电流比较小,但速度快时可能来不及升高
4.7 kΩ 在一些短距离、低速电路中比较折中 需要结合实际参数验证

线路有电容,就像需要先充一点电,电压才会上升。看上面的右图:相同示例条件下,10 kΩ 的蓝线比 4.7 kΩ 的橙线上升得慢。如果到了接收数据的时刻,电压还没升到对方能识别的高电平,就可能出现通信异常。

4. 4.7 kΩ 到底什么时候合适?

举个例子:假设上拉电压 3.3 V,总线电容 100 pF,用 4.7 kΩ 时,上升时间约 398 ns。这里的电容只是举例,不是我的实际电路测量值。上升时间按电压从 30% 上升到 70% 来计算。

工作模式 允许的最大上升时间 这个例子的结果
标准模式:最高 100 kHz 1000 ns 398 ns 满足这一项
快速模式:最高 400 kHz 300 ns 398 ns 不满足这一项

所以,同一个 4.7 kΩ,在一个例子里低速可以、高速可能不行。实际总线电容不同,结果也会不同;上升时间合格也不代表其他电气和时序要求全部合格。NXP I²C 规范

5. 做自己的板子,先检查什么?

  1. 每根线都要上拉。 SDA 和 SCL 分别检查;同一根线上可以有多个上拉电阻,但要把它们并联后的等效阻值一起计算。
  2. 先看模块是否自带上拉。 两个 4.7 kΩ 接在同一根线、同一上拉电源时,并联后相当于约 2.35 kΩ,拉低时的电流会增大。确认电阻是否已经焊上、接到哪个电源。
  3. 确认上拉电压。 3.3 V 和 5 V 模块共用总线时,要查每个引脚允许的电压和高电平要求;必要时使用合适的电平转换。
  4. 检查最弱器件的拉低能力。 看所有参与拉低总线的器件手册:在指定下拉电流下,能否保证足够低的电平。
  5. 有条件就用示波器测。 分别观察 SDA、SCL 的上升沿和低电平;示波器探头也会增加一些电容。通信频率、走线和模块数量变化后应重新检查。

例如连接 ESP32-S3、PCA9685 或 MPU6050 时,应以实际模块原理图、实物上拉电阻、引脚电压和通信配置为准;本笔记没有测量或核验你的具体电路。

6. 通信不正常时怎么排查?

  • 两根线一直低: 检查上拉是否存在、接线或焊接是否短路,以及是否有器件持续拉低线路。
  • 低速能用,高速不稳定: 用示波器观察上升沿;总线电容过大或上拉电阻过大是需要检查的可能原因。
  • 多接一块模块后出问题: 检查模块自身上拉并联、上拉电压、电源和地址冲突。

这些都是排查方向,不能仅凭现象直接认定原因。

7. 想知道怎么算,再看这里

根据 TI 上拉电阻计算说明:

text
上升时间 ≈ 0.8473 × 上拉电阻 × 总线电容
R最小 = (上拉电源电压 − VOL最大值) / IOL
R最大 = 允许的最大上升时间 / (0.8473 × 总线电容)
  • R最小:电阻太小时,芯片可能拉不够低;VOL最大值 与 IOL 要使用同一器件手册中对应的保证条件,检查拉低能力最弱的器件。
  • R最大:电阻太大时,上升沿可能太慢;由允许的上升时间和总线电容决定。
  • 举例:假设上拉为 3.3 V、相关器件都保证在 3 mA 时 VOL ≤ 0.4 V,则 R最小 ≈ 0.97 kΩ;再假设总线电容 100 pF、快速模式上升时间上限 300 ns,则 R最大 ≈ 3.54 kΩ。这组假设下可先评估 2.2 kΩ,还要考虑误差并测量。这里的 3 mA 是示例保证条件,不是所有芯片的绝对最大电流。
来源与关联索引
来源
个人知识库
原笔记
抖音收藏待整理/004-I2C上拉电阻怎么选.md
资料性质
工程笔记。原文的版本、来源与验证边界继续保留。
关联笔记 3
返回文章目录

想去哪里?

22 个入口

首页作品作品展厅全部项目文章总览文件夹标签资料归档关于认识 Lan探索路线工具与工作台最近在做InkFeed · 4.2 英寸电子纸信息终端VIBRATION · 柔性振动检测与采集链路TRACE · 航向保持与灰度循迹小车STRIDE · 八自由度四足机器人SCOPE · 固件日志浏览器温度为什么被 AI 改了?FIFO 有半帧,就一定是故障吗?直线守航向,弧线再看黑线。

Tab 选择入口 · Enter 打开 · Esc 关闭