三炮儿每周二早七点
分享/更新一篇硬件开发学习笔记
学习分享以助能力增长♥经验交流以期跻身一流
目录
1. 上/下拉电阻的定义
2. 拉电流和灌电流
3. 上下拉电阻的应用场景
3.1 电平标准匹配
3.2 获取输出高电平能力
3.3 增加输出管脚的驱动能力
3.4 维持输入管脚为稳定态
3.5 低电平中断检测
3.6 增强电路抗干扰能力-终端匹配
4. 上下拉电阻选型
4.1 从功耗消耗的角度
4.2 从驱动能力的角度
4.3 从信号速率的角度
✍
某日摸鱼水群时,看到一表情包,如下
三炮儿当时心想,就一破电阻有啥好研究的!?
有这时间,还不如研究下怎么才能撩到隔壁软件组刚来的漂亮妹子,
晚上下班等电梯偶遇妹子,听她接电话说了句:老公我这就下班,你等我。
三炮儿瞬间觉得晴天霹雳,果然软件女神不属于我,属于我的只会是软件甩来的锅;
为了以后把锅扔回去,啪啪砸软件脸上,我还是抽时间研究了会上下拉电阻。
对大家兴许有用。
1. 上/下拉电阻的定义
无论是上拉还是下拉电阻,本质都是电子元器件中的一个常用器件:电阻;
而上拉、下拉是大家为了突出某颗电阻的使用场景的叫法。
上拉电阻:信号通过电阻连接到一个固定的高电平VCC,在空闲状态时该信号被保持为VCC电平,该电阻被称为上拉电阻
下拉电阻:信号通过电阻连接到一个固定的低电平,在空闲状态时该信号被保持为GND电平,该电阻被称为下拉电阻
在数字电路中,上述的固定高电平、固定低电平分别被称作逻辑1、逻辑0
一句话理解:
上拉是将不确定的信号通过一电阻钳位在高电平(逻辑1)
下拉是将不确定的信号通过一电阻钳位在低电平(逻辑0)
如下图,R0为上拉电阻,R1为下拉电阻;
其阻值由具体的使用场景确定,一般10kΩ、4.7kΩ、2.2kΩ较为常见。
值得注意的是
当R0阻值达到上百K时,使信号线得到的负载电流很小,对负载充电会比较慢,被称作弱上拉;
当下拉电阻阻值很大时,信号被下拉的速度比较缓慢,称作弱下拉;
而当上下拉电阻很小时,信号线得到较大的电流,信号边沿变化速度快,被称作强上拉或强下拉。
一般认为,上拉是为了增大电流,下拉电阻则是用来吸收电流;这就需要看下另外的概念:拉电流和灌电流。
2. 拉电流和灌电流
拉电流source current和灌电流sink current
通常,灌电流(Source Current)和拉电流(sink current)都是针对IC器件的输出端口而言的,如MCU的输出管脚,在IC器件的规格书中一般可查到拉电流、灌电流的阈值范围,有的还可通过寄存器配置其大小,来改善端口的信号质量,改善或避免信号上、下冲。
拉电流:对于一个MCU输出端口,若电流流向端口外,称为“拉电流",是主动的;
拉电流:对于一个MCU输出端口,若电流流向端口内,称为“灌电流",是被动的;
在数字电路中,输出只有高、低(1、0)两种电平值
高电平输出时,一般是输出端对负载提供电流,该电流叫“拉电流”
低电平输出时,一般是输出端要吸收负载的电流,该吸收电流的“灌电流”
如下图,
PA0输出 0,点亮LED0 会亮,电流是由MCU外部流向 PA0的 ,即灌电流
PA1输出 1,点亮LED1 会亮,电流是由 PA1流向MCU外部的 ,即拉电流
3. 上下拉电阻的应用场景
上下拉电阻的叫法是突出电阻的使用场景,下面归纳了上下拉电阻的典型应用。
3.1 电平标准匹配—如TTL驱动CMOS
标准TTL的高电平最大输出值为2.4V,而CMOS的高电平输入最小值为3.5V,
若直接使用TTL驱动CMOS,当TTL高电平输出为最小值2.4V(<3.5V)时,CMOS无法识别为高电平,
这就需要在TTL的输出端加一个上拉电阻,将TTL的输出高电平钳位5V(>3.5V),使CMOS有效识别高电平。
TTL驱动CMOS时,TTL的低电平输出为最大值0.4V,小于CMOS的低电平输入最大值的1.5V,CMOS可有效识别TTL低电平。
这里对于上拉电阻R的选型是需要注意的,
R太大,会使TTL端的饱和压降增大,导致TTL输出的低电平很高,
R太大,会使TTL输出信号的上升沿变缓。
3.2 获取输出高电平能力—如OC和OD门
采用OC和OD门结构的电路本身无法输出高电平,在添加上拉电阻后能够输出高电平。
I2C是典型的OD结构,因此SDA和SCL信号上都需要加上拉电阻,不加上拉电阻,OC和OD是无法输出高电平的。
下图为IIC的OD结构拓扑,SCL和SDA信号线都需要上拉电阻,上拉电阻的大小需要根据实际的I2C速率和信号质量确定,常见的为4.7kΩ、2.2kΩ等。
3.3 增加输出管脚的驱动能力
有些芯片输出管脚本身并不是OC或OD门,
我们也会增加一个上拉或者下拉电阻,通过上拉或下拉来增加或减小驱动电流,
例如一个单片机的IO口内部有一个电阻为几十kΩ,输出电流低于mA级,
为增加高电平输出能力,可以添加一个上拉电阻,与内部上拉电阻形成并联提高驱动电流。
3.4 维持输入管脚为稳定态
3.5 低电平中断检测
在低电平中断触发电路设计中,通常在检测端会添加上拉电阻,当INT_n低电平到来时MCU_INT会变为低电平,触发MCU中断。
R1太大,MCU_INT的上升沿很缓,R1太小,有可能造成灌电流过大,导致MCU管脚烧坏。
3.6 增强电路抗干扰能力—终端匹配
在长线传输中,由于传输线的阻抗不连续会引起信号的反射,导致波形出现过冲、回沟、振铃等现象;
添加上拉/下拉电阻即终端匹配,能有效的抑制反射波干扰
终端匹配常规来说具有两种类型,并联端接和戴维南端接
①并联端接
在终端并联一个与传输线特征阻抗一致的电阻到VCC或GND,使信号能量反射回源端之前,在负载端会消除掉;
优点
- 适用于多个负载
- 只需要一个电阻并且阻值容易选取
缺点
- 增加了直流功耗
- 并联端接是上拉到电源或下拉到地,会使低电平升高或高电平降低,减小了噪声容限
②戴维南端接
戴维南端接也称为分压器端接,采用上拉电阻和下拉电阻同时接在终端上,降低了终端对源端驱动能力的要求
优点
- 适用于多个负载
- 适用于SSTL/HSTL电平上拉或下拉输出阻抗很好平衡的情况
缺点
- 直流功耗增加
- 需要两个器件
- 端接电阻上拉到电源或下拉到地,会使得低电平升高或高电平降低
- 电阻值较难选择,电阻值取值小会使低电平升高,高电平降低更加恶劣;电阻值取大有可能造成不能完全匹配,使反射增大,可以通过仿真来确定
常见的阻抗匹配方式还有串联端接、AC并联端接、二极管并联端接
③串联端接
最常用的一种端接方式,发送端的输出阻抗比较小,在电路上直接串联一个电阻(通常22R或33R),
使得远端输出阻抗RD加上串联电阻RT的总阻抗等于传输线阻抗Z0,保证阻抗的连续性,减小信号的反射。
优点
- 只需要一个电阻,
- 没有多余的直流功耗
- 消除驱动端的二次反射
- 不受接收端负载变化的影响
缺点
- 接收端的一次反射仍然存在
- 信号边沿会有一些变化
- 电阻需要靠近驱动端放置,不适合双向传输信号
- 在线上传输的电压是驱动电压的一半,不适合菊花链型的多负载结构
如果串联过小,则依然会有过冲存在;
如果串联过大,则接收端信号会过缓甚至会有台阶。
④AC并联端接
AC并联端接是并联端接的升级,就是在并联到地的电阻下面再增加一颗电容。
这样既能够和并联端接一样减小反射,同时电容的存在隔离了直流,减小了直流功耗。
当然缺点也很明显,RC电路的时间常数会影响信号的上升时间,在高速电路使用中要仔细计算
优点
- 适合于多个负载
- 无直流功耗增加
缺点
- 需要二个器件
- 增加了终端容性负载,增加了RC电路造成的延时
- 不适合周期信号
⑤二极管并联端接
又叫肖特基并联端接,通常应用在器件内部;很多器件自带有输入保护二极管
优点
- 能有效减小信号过冲和下冲,
缺点
- 并不能消除反射
- 二极管的开关速度会限制响应时间,不大适合高速系统
在实际的电路设计中,具体使用哪种端接,需要具体问题具体分析;
需要在信号质量的提高(稳定性/可靠性)与产品成本控制之间作平衡,
但作为靠谱的硬件工程师最好预留端接方案,
避免因信号质量问题导致改版。
4. 上下拉电阻选型
从上文的介绍可以看出来,电阻拉不拉很重要,上拉还是下拉以及拉大少也至关重要,
上下拉电阻阻值大小的选取一般需要从以下几个方面综合考虑
4.1 从功耗消耗的角度
上拉电阻和电源相连接,下拉电阻和GND相连接,
在确定电阻阻值时,电阻本身的功率消耗不容忽略。
在按键电路中,电阻取10kΩ能满足需求,取20kΩ也能满足;
但20kΩ时电阻功率消耗更低,是更优值。
4.2 从驱动能力的角度
驱动能力的大小和提供的电流有关系,电阻过大,无法信号网络提供较大的电流提供较大的电流;电阻过小,又可能会因过流损坏器件。
如下图,LED0正常工作时需要5~10mA电流,如果电阻取值太大为10kΩ,PA1为0时LED0灯无法点亮(VCC=3.3V)
4.3 从信号速率的角度
这其实也是考虑驱动能力的一种角度,之所以单独拿出来是因为在I2C总线中上拉电阻的选型比较典型。
①上拉电阻过小,总线上电流增大,端口输出低电平增大。
②上拉电阻过大,上升沿时间增大,方波可能会变成三角波
I2C的上拉电阻经验上常用2.2kΩ、4.7K等阻值,
但了解上拉电阻阻值的理论计算方式也是很有必要的,
其计算公式如下:
tr :上升沿时间 tr 、 Cb:负载电容 、0.8473:标准上升沿时间
Vdd :电源电压、Vol:端口最大输出电压, 与端口的最大电流 Iol 有关
一般来说
电源电压限制了上拉电阻的最小值
负载电容(总线电容)限制了上拉电阻的最大值
三炮儿才疏学浅,对于上下拉电阻的认识也就这么多
大家觉得上下拉电阻还有哪些方面需要研究
请洒潘江各倾陆海云尔
END
这里是软磨硬泡公众号,号主三炮儿的硬件开发学习笔记、经验分享
学习分享以助能力增长,经验交流以期跻身一流
同名微信公众号:软磨硬泡