百度百科上的解释:
上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下拉同理,也是将不确定的信号通过一个电阻钳位在低电平。
上拉是对器件输入电流,下拉是输出电流;强弱只是上拉电阻的阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)提供电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
乍一看不是通俗易懂啊,下面是我简单的理解。
一、上拉电阻
上拉就是将不确定的信号通过一个电阻钳位在高电平 ,电阻同时起限流作用。上拉电阻可以提高电路驱动能力。
1.1 上拉电阻提高电路驱动能力
MCU使用5V供电,当IO口输出高电平,其内部电路为接5V的mos管导通,接地的mos管截止看做无穷大电阻,因此IO引脚上的电压就是MCU供电的5V电压。
当MCU的IO引脚接负载(这里用100R电阻代替)时,引脚上的电压只有3.8V,电压为什么变了:
这就要看MCU内部构造了,因为MCU内部电源是有内阻的,再加上接5V的mos管导通也有一定的阻值,电路等效一下就是5V电源串联两个电阻接地,电压自然就被拉低了。
接上拉电阻后该点的电压情况:(提高了电路的驱动能力)
再从MCU内部构造分析,MCU引脚上接上拉电阻以后,等效电路图如下,其相当于再MCU的内阻上并联了一个电阻,从而减小了内阻上的电流,因此引脚的驱动能力被提高了。
1.2 上拉电阻将不确定的信号钳位高电平
为什么会有不确定的信号呢?比如当引脚处于开漏输出时,想让引脚输出高电平,则需要将上面的mos断开,下面的mos截止,这样就相当于这个引脚连接着两个无穷大的电阻,这两个电阻就相当于断开,所以此时IO的引脚状态是不确定的****。
当接了10K上拉电阻后,电路上面的一个无穷大的电阻与10k电阻并联后,总阻值越为10k左右,此时5V电压几乎全加在了下面的无穷大电阻上,因此引脚上输出了高电平。
二、下拉电阻
下拉电阻可以将不确定的信号通过一个电阻钳位在低电平****。
当MCU的IO引脚处于数字输入模式时,内部实际是一个触发器,这里用电阻+三极管代替,方便理解。
IO引脚输入之所以是不确定的,是因为P型三极管的的集电极 与基级 的两块半导体之间的阻值太大,类似断开,因此P型半导体上的电压是飘忽不定的,对应IO引脚上的电压也一个不确定的信号。
接下拉电阻后,IO引脚上为确定的低电平,因为下拉电阻与三极管是串联关系,三极管认为是无穷大电阻,5V电压全部加在了三极管上,所以下拉电阻上几乎没有电压,IO引脚输入也是一个确定的低电平信号。
当再引脚上输入高电平时,下拉电阻有巧妙的将点位设置为高电平。
总结:对于MCU来说,
上拉电阻 用在MCU的IO输出情况下,
下拉电阻 用在MCU的IO输入情况下。