硬件那点事儿
认证:优质创作者
作者动态
用PMOS搭建一个电源端防反接电路,附带仿真原理图和仿真验证结果
15小时前
为什么LDO电路输入端经常会串联一个电阻?电阻该如何选型计算呢?
6天前
硬件工程师需要掌握的提高LDO电流输出能力的三种常用方法-电路知识点
1星期前
LDO电路选型的关键参数负载调整率Load Regulation解析,1200字搞定它
2星期前
什么是LDO的Line Regulation?在LDO电路设计选型时如何理解和计算?1200字搞定它
3星期前

I2C电路上拉电阻选1K还是10K?如何计算?1200字手把手教你搞定它

Part 01 前言

I2C通信电路是嵌入式设计中的“常客”,在各种产品比如家电,工控,医疗器械等产品的板内通信中I2C总能派上用场。但设计I2C电路时,上拉电阻Rp的选择却是个让人头疼的问题:选小了不行,选大了也不行。今天咱们就来聊聊I2C上拉电阻的计算方法吧。

Part 02 为啥I2C需要上拉电阻?

I2C是一种开漏Open-Drain通信协议,SDA和SCL线上的信号只能被拉低(输出0V),而拉高(输出1)全靠上拉电阻Rp。

工作原理:

没有信号时,上拉电阻把线路拉到高电平(接近Vcc)。

IC需要输出0时,会通过内部的MOSFET把线路拉低到接近0V。

上拉电阻的作用:

电阻决定了线路从低电平到高电平的上升速度,同时也影响功耗。选的值不对,要么通信慢得像“乌龟爬”,要么功耗高得像“电老虎”。

那上拉电阻的阻值如何确定呢?

Part 03 上拉电阻计算

我们需要计算上拉电阻的最小值Rp(min)和最大值Rp(max),咱们一步步分析。

最小值 Rp(min)计算

如果上拉电阻太小,电流会太大,IC可能拉不下来低电平,导致通信失败。最小电阻由以下公式决定:

Vcc:电源电压

VoL(max):IC能输出的最大低电平电压(I2C标准要求逻辑低电平低于 0.3×Vcc)

IoL:IC拉低时的灌电流能力(Sink Current)

举个例子,Vcc = 3.3V,VoL(max)=0.4V,IoL=3mA,

所以,上拉电阻不能小于966.67Ω,不然IC拉低电平会“力不从心”,逻辑0 可能变成“半吊子”,通信直接崩。

最大值 Rp(max)计算

如果上拉电阻太大,线路的上升时间会变长,达不到I2C标准的上升时间要求(Rise Time),导致通信失败。最大电阻由以下公式决定:

tr:I2C标准的最大上升时间

Cb:总线电容(包括线路电容和IC的引I脚电容)

0.8473:RC电路上升时间的常数(从0.3×Vcc到0.7×Vcc的时间系数)

举个例子,如果tr=300 ns,Cb = 200pF

所以,上拉电阻不能大于1770Ω,不然信号上升太慢,I2C主设备可能还没等到高电平就“等不及了”,通信又崩。

上拉电阻的范围算出来了(966.67Ω到1770Ω),但具体选多大,还得看速度和功耗的平衡。小电阻(接近Rp(min)),优点是上升时间短,通信速度快。缺点是电流大,功耗高。比如用1kΩ,上升时间:

速度很快,但平均电流(信号频繁切换时):

功耗

大电阻(接近 Rp(max)),优点是电流小,功耗低。缺点是上升时间长,速度慢。比如用1.5kΩ,上升时间:

速度慢了点,但功耗:

Part 04 注意事项

1.总线线电容Cb要估准:

Cb包括PCB走线电容(每厘米约1-2pF)、IC引脚电容(通常5-10pF/个)。比如10cm走线+2个IC,Cb ≈ 20 + 2 × 10 = 40 pF。实际设计时留点余量,测一下最好。

2.Vcc变化的影响:

Vcc不是稳定的,而是波动的,比如不是3.3V,而是2.9-3.5V之间,Rp(min)会变化,重新算一下。

3.环境温度:

高温下IC的IoL可能变小,Rp(min)会变大,注意评估。

4.多设备场景:

多个IC挂在I2C 总线上,电容Cb会增加,Rp(max)变小,重新算一下范围。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 1
收藏 2
关注 141
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧