上拉、下拉电阻的原理和作用

发布者:jingyan最新更新时间:2025-02-25 来源: elecfans关键字:上拉  下拉电阻  STM32 手机看文章 扫描二维码
随时随地手机看文章

上拉(Pull Up )或下拉(Pull Down)电阻(两者统称为“拉电阻”)最基本的作用是:将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉),无论它的具体用法如何,这个基本的作用都是相同的,只是在不同应用场合中会对电阻的阻值要求有所不同,从而也引出了诸多新的概念,本节我们就来小谈一下这些内容。

如果拉电阻用于输入信号引脚,通常的作用是将信号线强制箝位至某个电平,以防止信号线因悬空而出现不确定的状态,继而导致系统出现不期望的状态,如下图所示:


在实际应用中,10K欧姆的电阻是使用数量最多的拉电阻。需要使用上拉电阻还是下拉电阻,主要取决于电路系统本身的需要,比如,对于高有效的使能控制信号(EN),我们希望电路系统在上电后应处于无效状态,则会使用下拉电阻。

假设这个使能信号是用来控制电机的,如果悬空的话,此信号线可能在上电后(或在运行中)受到其它噪声干扰而误触发为高电平,从而导致电机出现不期望的转动,这肯定不是我们想要的,此时可以增加一个下拉电阻。

而相应的,对于低有效的复位控制信号(RST#),我们希望上电复位后处于无效状态,则应使用上拉电阻。


大多数具备逻辑控制功能的芯片(如单片机、FPGA等)都会集成上拉或下拉电阻,用户可根据需要选择是否打开,STM32单片机GPIO模式即包含上拉或下拉,如下图所示(来自ST数据手册):

根据拉电阻的阻值大小,我们还可以分为强拉或弱拉(weak pull-up/down),芯片内部集成的拉电阻通常都是弱拉(电阻比较大),拉电阻越小则表示电平能力越强(强拉),可以抵抗外部噪声的能力也越强(也就是说,不期望出现的干扰噪声如果要更改强拉的信号电平,则需要的能量也必须相应加强),但是拉电阻越小则相应的功耗也越大,因为正常信号要改变信号线的状态也需要更多的能量,在能量消耗这一方面,拉电阻是绝不会有所偏颇的,如下图所示:


对于上拉电阻R1而言,控制信号每次拉低L都会产生VCC/R1的电流消耗(没有上拉电阻则电流为0),相应的,对于下拉电阻R2而言,控制信号每次拉高H也会产生VCC/R2R 电流消耗(本文假设高电平即为VCC)


强拉与弱拉之间没有严格说多少欧姆是强弱的分界,一般我们使用的拉电阻都是弱拉,这样我们仍然可以使用外部控制信号将已经上/下拉的信号线根据需要进行电平的更改。

强拉电阻的极端就是零欧姆电阻,亦即将信号线直接与电源或地相连接,比如,对于EEPROM存储芯片24C02应用电路,如下图所示:


其中,E0,E1,E2(地址配置位)在应用中通常都是直接强上拉到电源VCC,或强下拉到GND,因为存储芯片的地址在系统运行过程中是不会再发生变化的,同样,芯片的写控制引脚WC(Write Control)也被强下拉到GND。


拉电阻作为输出(或输入输出)时牵涉到的知识点会更多一些,但本质的功能也是将电平箝位,最常见的输出上拉电阻出现在开集(Open Collector,OC)或开漏(Open Drain,OD)结构的引脚。

我们有很多芯片的输出引脚是推挽输出结构(Output Push-Pull),如下图所示(还有一种反相输出的结构,本质也是一样的):

推挽输出结构引脚的特点是:无论引脚输出高电平“H”还是低电平“L”,都有比较强的驱动能力(输入或输出电流能力)!


当推挽输出结构的控制信号为低电平“L”时,Q1截止Q2导通,电流I1由电源VCC经负载RL与三极管Q2流向公共地,我们称此电流为灌电流(Sink Current),也就是外部电流灌入芯片内部,如下图所示:

相应的,当推挽输出结构的控制信号为高电平“H”时,Q1导通Q2截止,电流I1由电源VCC经三极管Q1与负载RL流向公共地,我们称此电流为拉电流(Source Current),也就是芯片内部可以向外提供的电流(所以称之为“源电源”),从另一个角度讲,也就是外电路可以从芯片中拉走多少电流,如下图所示:

灌电流能力与拉电流能力也称为芯片引脚的驱动能力。对于任何给定的芯片,引脚的驱动能力都是有限的,如下图所示为STM32单片机的IO引脚电流驱动能力(来自ST数据手册):

由上表可知,STM32的IO引脚的驱动能力为25mA,负号“-”表示电流的方向,灌与拉的电流方向是相反的(表中SUNK为SINK的过去分词)

由于芯片引脚的驱动能力都是有限的,如果引脚驱动的负载比较重,将可能导致输出电平不正确(无法输出预定的电平),如下图所示:



假定芯片的供电电压为3.3V(忽略晶体管饱和压降),则输出最大电流25mA时,负载RL的值约为132欧姆(3.3V/25mA),如果负载值小于132欧姆,则相应输出电流会更大(超过25mA),但是芯片引脚只能提供最大25mA的电流,因此,输出电平将会下降(老板你只给我2500月薪,我就只能干2500的活,你要我干更多的活得开更多的工资,一个道理)


一般情况下,这种驱动重负载(小电阻)的电路连接是不会烧毁内部晶体管的,因为内部也是有限流电阻的,换句话讲,就算输出引脚对地短路,输出电流也不会超过最大的驱动能力(除非是不正规的芯片),当然,在实际应用过程中尽量不要超出引脚的驱动能力。



而OC(OD)的引脚输出结构有所不同(OC结构存在于三极管,而OD结构存在于场效管,下面以OC输出结构为例,OD输出结构的原理是一致的),如下图所示:

当三极管Q1的驱动控制信号为高电平“H”时,Q1饱和导通,将对应输出引脚拉为低电平“L”,如下图所示:

但是当控制驱动信号为低电平“L”时,三极管Q1截止,如果没有外部上拉电阻的话,该引脚相当于悬空(高阻态),无法输出高电平,也就是说,OC/OD结构输出的引脚没有拉电流(向外部电路提供电流)能力。因此,我们通常都会将OC/OD引脚通过外接电阻上拉到电源电压VCC,这样引脚输出高电平时的拉电流就直接由电源VCC提供,如下图所示:


大多数比较器芯片的输出都是OD/OC输出结构,如下图所示(来自TI比较器LM393数据手册):

很多芯片或模块向外反馈系统状态的信号引脚也是这种结构,这样用户就可以根据电路系统实际需要将电平上拉到对应的电源电压VCC,就可以省略电平转换了,如下图所示(来自东芝步进电机控制芯片TB6560数据手册):



I2C(Inter Integrated Circuit,内部集成电路)总线也是典型的OD输出结构的应用,如下图所示:


其中,SCL与SDA都是OD输出结构输出,这样的好处是可以作为双向数据总线(也称“线或Wire-OR”功能)。


如果芯片引脚使用之前描述的推挽结构,则两个或多个芯片的引脚连接时将如下图所示:

假设如上图所示芯片的输出分别为0与1,则两者直接相互连接后,会有非常大的电流自电源VCC经Q1与Q4到公共地,虽然大多数情况下不至于烧芯片,但也会引起很大的功率消耗,同时也会导致数据冲突(芯片1总会试图将数据线拉高,而芯片2则会试图将数据线拉低,我们称之为数据冲突或总线冲突,表示双方都在抢占总线)



如果使用OC/OD输出结构,则相应的电路如下图所示:

此时,无论两个芯片的引脚输出什么状态,都不会引起数据冲突,配合各自芯片内部的数据识别电路及仲裁系统,双方都可以主动给另一方发送信息,也就是说,任何一方都可以将信号线拉高或拉低,而不会影响起数据冲突。


我们所熟悉的51单片机P0口也是OD结构,如下图所示(来自ATMEL单片机AT89C51数据手册):


这样我们可以使用同一个P0口,再配合多个片选信号即可访问多个外挂的存储芯片。


前面所述上拉电阻的阻值对输入引脚引起的功耗同样适用于输出拉电阻,因此拉电阻不宜太小,但在输出信号速度比较快的电路下,拉电阻也不宜太大,如下图所示为I2C总线上拉电阻的参考最大值(来自ST存储芯片 AT24C02数据手册)。



在总线上总会有些杂散电容CBUS,这些电容与上拉电阻RL形成了一个RC充放电电路,上拉电阻越大则充放电常数越大,这样会把原先比较陡峭的数据边沿变得平缓,如下图所示:

严重的情况下将导致数据无法正常识别,这样我们只能进一步优化电路参路,或降低通讯的速率。



作者:惊蛰同学
链接:https://www.jianshu.com/p/10f260818d2b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


关键字:上拉  下拉电阻  STM32 引用地址:上拉、下拉电阻的原理和作用

上一篇:最小GUI库GuiLite源码分析--Apple的学习笔记
下一篇:GPIO8种模式的原理

推荐阅读最新更新时间:2026-03-23 22:57

STM32下拉电阻
STM32F10X I/O可以通过配置寄存器使能弱上拉或下拉电阻,根据datasheet,这个电阻为:min=20K, typ=30K, max=40K。 STM32F10X I/O的输入可以配置为floating/pull up/pull down三种方式。 对STM32F10X来说,系统reset后I/O的状态为Floating input。所以如果有电路的输入依赖于I/O的电平,必须设置合适的上拉或下拉电阻,否则会出现不定态或者毛刺。 STM32F10X JTAG 输入管脚上电复位后的上拉/下拉状态: ● NJTRST: Internal pull-up ● JTDI: Internal pull-up ● JTMS/SWD
[单片机]
单片机中的下拉电阻
大学的时候接触过单片机,当时纯粹是为了应付考试,发现学完之后对单片机还是一窍不通。一直以来以为单片机是个神秘的东西,要弄明白需要花费不少的时间和精力,几次想研究单片机都被这种想法阻扰。而本人博士生实践的项目却恰好是单片机编程,真实怕什么来什么。没办法,只能硬着头皮上了,潜心专研了一个月,终于不再是门外汉了。费话就不说了,下面写一点自己对单片机上拉、下拉电阻的理解,供有缘人看。 一 、关于拉电流与灌电流 拉即泄,主动输出电流,是从输出口输出电流。 灌即充,被动输入电流,是从输出端口流入。吸则是主动吸入电流,是从输入端口流入 拉电流和灌电流是衡量电路输出驱动能力(注意:拉、灌都是对输出端而言的,所以是驱动能力)的参数,这种说法
[单片机]
stm32启动方式+(下)电阻 二合一
最近做stm32项目,纠结过其启动方式。 看到篇不错的文章,转载一下。原文格式不太好,内容也有很多奇怪的地方(尤其是第二篇,就先认为原文是原创,只是作者的思路我不懂吧),都一一删改。想看原文的朋友链接如下: http://www.ithao123.cn/content-3065243.html Duanxx的STM32学习: 启动模式,BOOT0和BOOT1详解 http://bluefish.blog.51cto.com/214870/1239098 上拉电阻与下拉电阻的作用 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的
[单片机]
常用的推挽输出、开漏输出、输入
一、推挽输出: 可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。    当一个三级管开通的时候另一个关断,根据B端来确定, 这是一个比较器 当a b时B 输出为0;当a b时B输出为1 当B为1时上边三极管导通,下边关闭; 当B为0时下边三极管导通,上边关闭
[单片机]
常用的推挽输出、开漏输出、<font color='red'>上</font><font color='red'>拉</font>输入
I2C的 SCL和SDA为什么要
因为允许把多个I2C总线器件连接到总线上,连接到I2C总线上的器件是漏极开路或集电极开路的,可以实现线与功能。同时,因为接了上拉电阻,在总线空闲期间,SDA和SCL都是高电平,可以防止外部干扰造成误启动I2C总线。 按照I2C的规范来讲,SDA和SCL都是需要上拉电阻的。当然如果你主控芯片的两个管脚具有内部上拉并且满足你的速率要求,也是可以省略外部上拉的。 “如果加上拉电阻,阻值根据什么来确定” 根据主控的管脚驱动能力、负载数量、走线长度、传输速率等因素共同决定。对于产品设计而言可以先选取经验参数、而后通过小批量实测波形来确定的。
[单片机]
如何将单片机的引脚配置为输入
1.什么是上拉电阻 在学习单片机的时候,我们经常遇到一组名词:上拉电阻和下拉电阻,通过学习我们知道上下拉电阻不仅能使当前电平稳定避免受到干扰,同时上拉电阻还能提高单片机的驱动能力。 阅读扩展:什么是单片机的上拉电阻?点击阅读。 2. 上拉电阻的几个典型应用 在使用中,用到上拉电阻的场合有这么几个典型: 按键输入检测; IIC通讯; 通常,我们都习惯这样设计按键:按键按下时单片机检测到低电平,按键松开时检测到高电平,这个高电平就是通过上拉电阻实现的: IIC是一种通讯方式,只需要通过SCL和SDA即可实现数据的传输,在典型的IIC器件手册上都会发现SCL和SDA引脚上,都会推荐接上拉电阻: 3. 如
[单片机]
如何将单片机的引脚配置为<font color='red'>上</font><font color='red'>拉</font>输入
51单片机之上下拉电阻
1 基础知识 1.1 三极管 三极管的类型有两种:PNP与NPN 三极管的简化理解: 基极(B)是一个开关, 当开关打开时,集电极(C)与发射极(E)就导通了; 当开关闭合时,集电极(C)与发射极(E)就断开了。 导通方向的判定: (NPN管)箭头是C指向E,电流就从C流向E; (PNP管)箭头是E指向C,电流就从E流向C,要注意控制端电流的方向。 1.2 场效应晶体管 场效应管的电流方向: N型沟道场效应管漏极电流是从D流向S的; P型沟道场效应管漏极电流是从S流向D的; G上没有电流,场效应管是通过电压控制导通与关断的。 2 输出模式 2.1 开集输出 单片机 在输出模式下,集电极直
[单片机]
51单片机之上<font color='red'>拉</font>与<font color='red'>下拉电阻</font>
单片机上拉电阻、下拉电阻详解
  是不是经常听别人讲,加个上拉电阻试试看,加个下拉电阻试试看,是不是还在疑惑上下拉电阻是什么,该怎么用,什么时候用,有什么用途?   1.什么是上下拉电阻   上拉电阻:把一个不确定的信号通过电阻连接到高电平,使该信号初始为高电平;   下拉电阻:把一个不确定的信号通过电阻连接到低电平,使该信号初始为低电平;   2.上下拉电阻的接线方法   上拉电阻如下图所示:      电阻R12将KEY1网络标识上拉到高电平,在按键S2没有按下的情况下KEY1将被钳制在高电平,从而避免了引脚悬空而引起的误动作;   下拉电阻如下图所示:      电阻R29将DIR网络标识下拉到低电平,在光耦没有导通的情况下DIR将被钳制
[单片机]
单片机上拉电阻、<font color='red'>下拉电阻</font>详解
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved