嵌入式分享#59:4.7KΩ

描述

欢迎关注,每周更新!☞

正文

我们都知道,I2C 总线在硬件设计中通常需要外接上拉电阻,而 4.7kΩ 几乎成了业界的 “黄金阻值”。但你有没有想过:为啥偏偏是 4.7kΩ?这个数值背后藏着哪些工程考量?

I2C总线

4.7kΩ背后的工程考量

上拉电阻的值不是随便选的,需要在下面四个相互制约的因素中寻找平衡点:

1. 最大电阻值受限于上升时间
总线上的寄生电容(线缆电容、引脚电容等)会与上拉电阻形成RC电路。电阻值越大,充电时间常数越大,信号上升沿(tr)越缓。过慢的上升沿可能违反I2C时序规范,导致通信错误。

I2C总线

行业内常见的I2C总线电容,一般在几十pF到几百pF之间。经过大量实践验证,4.7kΩ的上拉电阻,搭配这个量级的总线电容,刚好能满足标准模式和快速模式的时序要求——既不会因为上升太慢导致通信误码,也不会因为上升太快产生过多信号噪声。

如果选 10kΩ 的电阻,在总线电容较大的场景下,上升时间会超标,I2C通信很容易卡顿、丢包;如果选2.2kΩ的电阻,上升时间虽然够快,但会引入更多噪声,反而影响总线稳定性。

2. 最小电阻值受限于驱动能力
当设备拉低总线时,电流会通过上拉电阻流入地。电阻值越小,电流越大。这个电流不能超过设备输出引脚的最大灌电流能力。

如果上拉电阻太小,灌电流会过大——比如3.3V电源下,2.2kΩ电阻的灌电流约1.5mA,而很多MCU的I2C引脚灌电流能力有限,长期承受过大电流可能会损坏引脚,或者导致电平拉不低(出现“线与”失败)。

4.7kΩ电阻在3.3V电源下的灌电流约0.7mA,5V电源下约1.06mA,这个电流值刚好在绝大多数嵌入式芯片的承受范围内,既能保证设备轻松拉低总线,又不会给引脚带来过大负担。

3. 功耗考虑

上拉电阻的功耗的计算很简单:P = V²/R(V是电源电压,R是电阻值)。电阻越小,功耗越大;电阻越大,功耗越小。

对于需要低功耗的设备(比如电池供电的传感器),功耗是核心考量。4.7kΩ的电阻在保证通信性能的前提下,比2.2kΩ、1kΩ等小电阻的功耗低很多——比如3.3V电源下,4.7kΩ电阻的功耗约2.3mW,而2.2kΩ电阻的功耗约5mW,差距明显。

当然,10kΩ电阻的功耗更低,但正如前面所说,它会影响时序性能,所以4.7kΩ成了“性能”和“低功耗”的折中优选。

4. 成本

从供应链角度看,4.7kΩ电阻是电子行业的“通用料”——产量大、价格低,几乎所有元器件供应商都能提供,不用为了特殊阻值单独采购,大大降低了硬件开发的物料成本和采购周期。

4.7kΩ也不是“万能的”

虽然4.7kΩ是默认最优解,但在一些特殊场景下,也需要根据实际情况调整阻值:

长距离通信:如果I2C总线长度超过1米(比如工业场景中的设备互联),总线电容会增大,此时可以选2.2kΩ~3.3kΩ的小电阻,加快上升时间,保证通信稳定;

低功耗场景:对于电池供电的便携设备(比如智能手环、传感器节点),可以选10kΩ~20kΩ的大电阻,进一步降低静态功耗,延长续航时间;

高速模式(1Mbps):如果需要用到I2C的高速模式,必须选更小的电阻(比如1kΩ~2.2kΩ),同时要严格控制总线长度和电容,避免信号失真;

多设备挂载:如果总线上挂载的设备数量很多(比如十几个传感器),总线电容会显著增大,此时可以适当减小上拉电阻,或者采用“分段上拉”的方式(在总线不同位置各加一个上拉电阻)。

另外还有一种情况:设备端数据手册指定上拉电阻值,比如 gt911 触摸 IC 就指定上拉电阻值为 2KΩ。建议直接采用该 IC 原厂的2KΩ,这是在一定条件下经过测试验证效果最好的。

I2C总线

(完)

本人专注 Linux 驱动 & Linux/Android BSP 开发调试,可接外包项目/技术支持/问题定位。有需求或交个朋友可加微信:【Chen_WeChat2026】。

更多原创技术文章:《README 2026》。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分