很多单片机开发的入门者,以及一些从事软件开发的人,往往在开发单片机的时候遇到上拉电阻、下拉电阻的概念却又无法通过字面理解其中的含义。那么,什么叫上拉电阻和下拉电阻呢?
一.定义:
上拉电阻就是把不确定的信号通过一个电阻嵌位在高电平,此电阻还起到限流的作用。同理,下拉电阻是把不确定的信号嵌位在低电平。上拉电阻是说的是器件的输入电流,而下拉说的则是输出电流。
那么在什么时候使用上、下拉电阻呢?mcustudy网友作了以下总结。
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V), 这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路必须加上拉电阻,以提高输出的高电平值。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗, 提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
选择原则:
上拉电阻阻值的选择原则包括:
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。
综合考虑以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理。
对上拉电阻和下拉电阻的选择应结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素:
1.驱动能力与功耗的平衡。以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计是应注意两者之间的均衡。
2.下级电路的驱动需求。同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。
3.高低电平的设定。不同电路的高低电平的门槛电平会有不同,电阻应适当设定以确保能输出正确的电平。以上拉电阻为例,当输出低电平时,开关管导通,上拉电阻和开关管导通电阻分压值应确保在零电平门槛之下。
4.频率特性。以上拉电阻为例,上拉电阻和开关管漏源级之间的电容和下级电路之间的输入电容会形成RC延迟,电阻越大,延迟越大。上拉电阻的设定应考虑电路在这方面的需求。
下拉电阻的设定的原则和上拉电阻是一样的。
OC门输出高电平时是一个高阻态,其上拉电流要由上拉电阻来提供,设输入端每端口不大于100uA,设输出口驱动电流约500uA,标准工作电压是5V,输入口的高低电平门限为0.8V(低于此值为低电平);2V(高电平门限值)。
选上拉电阻时:
500uA x 8.4K= 4.2即选大于8.4K时输出端能下拉至0.8V以下,此为最小阻值,再小就拉不下来了。如果输出口驱动电流较大,则阻值可减小,保证下拉时能低于0.8V即可。
当输出高电平时,忽略管子的漏电流,两输入口需200uA,200uA x15K=3V即上拉电阻压降为3V,输出口可达到2V,此阻值为最大阻值,再大就拉不到2V了。选10K可用。COMS门的可参考74HC系列
设计时管子的漏电流不可忽略,IO口实际电流在不同电平下也是不同的,上述仅仅是原理,一句话概括为:输出高电平时要喂饱后面的输入口,输出低电平不要把输出口喂撑了(否则多余的电流喂给了级联的输入口,高于低电平门限值就不可靠了)
在数字电路中不用的输入脚都要接固定电平,通过1k电阻接高电平或接地。
1. 电阻作用:
l 接电组就是为了防止输入端悬空
l 减弱外部电流对芯片产生的干扰
l 保护cmos内的保护二极管,一般电流不大于10mA
l 上拉和下拉、限流
l 1. 改变电平的电位,常用在TTL-CMOS匹配
2. 在引脚悬空时有确定的状态
3.增加高电平输出时的驱动能力。
4、为OC门提供电流
l 那要看输出口驱动的是什么器件,如果该器件需要高电压的话,而输出口的输出电压又不够,就需要加上拉电阻。
l 如果有上拉电阻那它的端口在默认值为高电平你要控制它必须用低电平才能控制如三态门电路三极管的集电极,或二极管正极去控制把上拉电阻的电流拉下来成为低电平。反之,
l 尤其用在接口电路中,为了得到确定的电平,一般采用这种方法,以保证正确的电路状态,以免发生意外,比如,在电机控制中,逆变桥上下桥臂不能直通,如果它们都用同一个单片机来驱动,必须设置初始状态.防止直通!
在数字电路中不用的输入脚都要接固定电平,通过1k电阻接高电平或接地。
1. 电阻作用:
l 接电组就是为了防止输入端悬空
l 减弱外部电流对芯片产生的干扰
l 保护cmos内的保护二极管,一般电流不大于10mA
l 上拉和下拉、限流
l 1. 改变电平的电位,常用在TTL-CMOS匹配
2. 在引脚悬空时有确定的状态
3.增加高电平输出时的驱动能力。
4、为OC门提供电流
l 那要看输出口驱动的是什么器件,如果该器件需要高电压的话,而输出口的输出电压又不够,就需要加上拉电阻。
l 如果有上拉电阻那它的端口在默认值为高电平你要控制它必须用低电平才能控制如三态门电路三极管的集电极,或二极管正极去控制把上拉电阻的电流拉下来成为低电平。反之,
l 尤其用在接口电路中,为了得到确定的电平,一般采用这种方法,以保证正确的电路状态,以免发生意外,比如,在电机控制中,逆变桥上下桥臂不能直通,如果它们都用同一个单片机来驱动,必须设置初始状态.防止直通!
实际运用:
A:如下图的两个 Bias Resaitor 电阻就是上拉电阻和下拉电阻。图中,上部的一个Bias Resaitor 电阻因为是接地,因而叫做下拉电阻,意思是将电路节点A的电平向低方向(地)拉;同样,图中,下部的一个Bias Resaitor 电阻因为是电源(正),因而叫做上拉电阻,意思是将电路节点A的电平向高方向(电源正)拉。当然,许多电路中上拉下拉电阻中间的那个12k电阻是没有的或者看不到的。我找来这个图是RS-485/RS-422总线上的,可以一下子认识上拉下拉的意思。但许多电路只有一个上拉或下拉电阻,而且实际中,还是上拉电阻的为多。
上拉下拉电阻的主要作用是在电路驱动器关闭时给线路(节点)以一个固定的电平。
1 在RS-485总线中,它们的主要作用就是在线路所有驱动器都释放总线时让所有节点的A-B端电压在200mV或200mV以上(不考虑极性)。不然,如果接收器输入端A和B间的电平低于±200mV(绝对值小于200mV),接收器输出的逻辑电平将被当作所传输数据的末位而被接收起来,这样显然是极容易产生通讯错误的。
2 最容易见到的上拉电阻应当是NE555电路7脚作为输出用的时候。实际上,它和一个三极管的C极或MOS管的D极有一个电阻接到电源+上是一样道理的。它的作用就是:当管子(晶体管或MOS管)输入关断电平时,C极或D极有一个高电平(空载时约等于电源电压);当管子(晶体管或MOS管)输入导通电平时,C极或D极将与电源地(-)接通,因而有一个低电平。理想的应为0V,但因为管子有导通电阻,因而有一定的电压,不同的管子可能不一样,相同的管子也可能因参数差异而小有差别,即便是真正的金属接触的电源开关,也是有接触电阻/导通压降(虽然不同电流下压降不同)的;仅仅就导通而言,对于不同系列的集成电路来说,因为应用对象不同,导通后的输出电压有不同的规定,典型是TTL电平和CMOS电平的不同。这方面超过了本问题的内容,将日志里另外处理。
//////////////////////////////////////////
从IC(MOS工艺)的角度,分别就输入/输出引脚做一解释:
1. 对芯片输入管脚, 若在系统板上悬空(未与任何输出脚或驱动相接)是比较危险的.因为此时很有可能输入管脚内部电容电荷累积使之达到中间电平(比如1.5V), 而使得输入缓冲器的PMOS管和NMOS管同时导通, 这样一来就在电源和地之间形成直接通路, 产生较大的漏电流, 时间一长就可能损坏芯片. 并且因为处于中间电平会导致内部电路对其逻辑(0或1)判断混乱. 接上上拉或下拉电阻后, 内部点容相应被充(放)电至高(低)电平, 内部缓冲器也只有NMOS(PMOS)管导通, 不会形成电源到地的直流通路. (至于防止静电造成损坏, 因芯片管脚设计中一般会加保护电路, 反而无此必要).
2. 对于输出管脚:
1)正常的输出管脚(push-pull型), 一般没有必要接上拉或下拉电阻.
2)OD或OC(漏极开路或集电极开路)型管脚,
这种类型的管脚需要外接上拉电阻实现线与功能(此时多个输出可直接相连. 典型应用是: 系统板上多个芯片的INT(中断信号)输出直接相连, 再接上一上拉电阻, 然后输入MCU的INT引脚, 实现中断报警功能).
其工作原理是:
在正常工作情况下, OD型管脚内部的NMOS管关闭, 对外部而言其处于高阻状态, 外接上拉电阻使输出位于高电平(无效中断状态); 当有中断需求时, OD型管脚内部的NMOS管接通, 因其导通电阻远远小于上拉电阻, 使输出位于低电平(有效中断状态). 针对MOS 电路上下拉电阻阻值以几十至几百K为宜.