gpio 上拉电阻 下拉电阻 上拉 下拉只的是gpio电平
电阻越小,分压越小,gpio上拉,下拉能力越强
1. 上拉电阻
把 GPIO 通过一个电阻连接到VCC/高电平。
作用:让引脚默认是高电平
当外部电路把它拉低时,它才变低
电阻一般较大,比如 10kΩ,所以叫“弱上拉”
示意图:
text
VCC | R(上拉电阻) | GPIO
2. 下拉电阻
把 GPIO 通过一个电阻连接到GND/低电平。
作用:让引脚默认是低电平
当外部电路把它拉高时,它才变高
同样电阻较大,叫“弱下拉”
示意图:
text
GPIO | R(下拉电阻) | GND
3. “上拉/下拉”指的是啥?
指的是:把 GPIO 默认电平往高电平拉,还是往低电平拉。
上拉 = 默认拉高
下拉 = 默认拉低
4. 为什么需要?
GPIO 配置为输入时,如果外面什么都没接,引脚是“悬空”的,电压不确定,可能读到乱跳的 0/1。加上拉或下拉后,它就有确定默认状态。
5. 常见例子:按键
上拉接法:
text
VCC | 上拉电阻 | GPIO ---- 按键 ---- GND
按键没按:GPIO 读到高电平
按键按下:GPIO 被接到 GND,读到低电平
下拉接法:
text
GPIO ---- 按键 ---- VCC | 下拉电阻 | GND
按键没按:GPIO 读到低电平
按键按下:GPIO 读到高电平
6. 内部上拉/下拉
很多单片机 GPIO 内部自带可配置上拉/下拉电阻,软件里设置:
GPIO_PULLUP:内部上拉GPIO_PULLDOWN:内部下拉GPIO_NOPULL:浮空
也可以外接电阻,叫外部上拉/下拉。
7. 注意
上拉不是直接把 GPIO 短接到 VCC,而是通过电阻接过去。
下拉也不是直接把 GPIO 短接到 GND,而是通过电阻接过去。
电阻的作用是限制电流,避免按键按下等情况下直接短路。
输出模式下一般用推挽输出;开漏输出才常需要外部上拉。
一句话总结:
上拉电阻就是把 GPIO 默认“拉高”,下拉电阻就是把 GPIO 默认“拉低”;它们让输入引脚不悬空、电平确定。
下拉电阻,如何实现下拉。并且为啥要下拉的原因。
下拉电阻一端连接信号线,另一端接地(GND)。它的作用主要体现在以下几个方面:
定义确定的默认状态(防止悬空):数字电路的输入引脚通常具有高阻抗。当没有信号驱动时,如果引脚悬空,其电压极易受环境电磁噪声影响而在高低电平间随机波动,导致电路逻辑混乱。下拉电阻为引脚提供了一条到地的“确定性”路径,强制其在空闲时保持稳定的低电平(逻辑0)。
提供电流泄放通路:当信号线受到静电(ESD)或其它瞬时干扰产生电荷积累时,下拉电阻可以将这些多余电荷泄放到地,避免电压异常升高,起到一定的保护作用。
设定晶体管的默认关断状态:对于MOS管的栅极(Gate)或三极管的基极(Base),下拉电阻可以确保在没有驱动信号时,控制端被可靠地拉低至0V,防止因悬空感应电压而导致的意外导通。
辅助信号完整性(特定场景):在长线传输中,下拉电阻有时可用于阻抗匹配,减少信号反射。
作为输入端电路,输入端阻抗高不是某个电阻决定的,而是由cmos输入级的绝缘栅极结构决定的,输入引脚通常接到 MOS 管的栅极(Gate),而栅极与沟道之间有绝缘层,直流下几乎没有电流通路。
芯片外部引脚 │ ├── ESD 保护二极管到 VDD ├── ESD 保护二极管到 VSS │ └── CMOS 反相器/缓冲器输入 │ ├── PMOS 栅极 └── NMOS 栅极
PMOS 和 NMOS 的栅极连在一起作为输入。MOS 栅极是绝缘栅:
栅极与源极/漏极/衬底之间有二氧化硅或高 k 介质隔离;
正常工作时,栅极几乎不流过直流电流;
输入信号只对栅极电容充放电。
因此从直流角度看,输入阻抗可以非常高,常见达到MΩ 到 GΩ 量级甚至更高。输入电流主要是很小的漏电流,规格书中通常写成:
IIHIIH:输入为高时的输入漏电流;
IILIIL:输入为低时的输入漏电流;
CiCi:输入电容,通常几 pF。
2. 为什么不是“无限大阻抗”
实际输入引脚并不是理想开路,主要有这些非理想因素:
栅极漏电
绝缘层不是绝对绝缘,尤其在先进工艺、高温下会有极小漏电。ESD 保护电路漏电
输入引脚通常有到 VDD 和 VSS 的 ESD 二极管。正常电压范围内它们反偏,只有 nA 级反向漏电;当输入电压超过 VDD+Vf 或低于 VSS−Vf 时二极管导通,起钳位保护作用。输入电容
ZC=1jωCZC=jωC1
栅极电容、焊盘电容、ESD 器件电容、封装引脚电容等形成几 pF 的输入电容。低频时阻抗很高,但高频时阻抗为:所以高频下输入阻抗会下降,输入电流主要用于给电容充放电。
可配置上拉/下拉电阻
很多 MCU 的 GPIO 内部有可开关的弱上拉或弱下拉,典型几十 kΩ。关闭时输入高阻;开启时就变成有确定弱偏置的输入。总线保持或弱保持电路
某些芯片输入内部有弱保持器,防止悬空,但这不是普通高阻输入的必要部分。模拟开关/复用器导通路径
如果输入经过传输门或模拟开关,关断时高阻,导通时会接入较低阻抗路径。
3. 关键点:输入接的是“栅极”,不是“漏极/源极”
高阻抗实现的核心是:
数字输入第一级通常把外部信号接到 CMOS 反相器或缓冲器的 MOS 栅极,而不是直接接到 MOS 的漏极或源极。
栅极在直流下不吸电流,所以输入引脚呈现高阻。第一级反相器之后再驱动内部较大的逻辑负载,外部引脚本身不需要提供大电流。
4. 和 TTL 输入的区别
不是所有数字输入都天然高阻。例如传统双极型 TTL 输入级,输入通常是一个发射极,输入为低时会有电流流出/流入,输入阻抗较低。CMOS 输入才是典型高阻输入。
5. 高阻输入为什么还需要上下拉
正因为输入高阻,悬空时电压容易被噪声、漏电和电荷积累影响,可能停在不确定电平,导致输入级 PMOS/NMOS 同时微导通、功耗增大或逻辑误判。所以:
按键输入常加上拉或下拉;
未用输入不能悬空,要接固定电平或使能内部上下拉;
长线、高噪声环境需要外部上下拉或 RC 滤波。
一句话总结:数字输入的高阻抗主要靠 CMOS 输入级把信号接到 MOS 绝缘栅极来实现,直流下几乎无电流;实际引脚还受 ESD 保护漏电、输入电容和可配置上下拉影响,所以是“很高阻抗”而非无限大阻抗。
典型应用范围
下拉电阻的应用非常广泛,主要集中在需要“默认低电平”的场合:
数字输入引脚(如MCU的GPIO):这是最经典的应用。连接按键、开关或外部传感器时,下拉电阻确保在按键未按下或传感器无信号输出时,MCU读取到的是稳定的低电平,而不是随机值。
按钮与开关电路:配合上拉电阻或单独使用,用于消除机械触点抖动带来的不确定性,确保每次操作产生干净的电平跳变。
晶体管驱动电路:在MOSFET或BJT的栅极/基极到地之间连接下拉电阻,确保驱动信号消失后,器件能迅速、可靠地关断。
通信接口:在某些差分或单端通信总线(如UART的RX线)的空闲状态定义中,可能会使用下拉电阻来设定默认电平。不过需要注意,像I²C总线的SDA和SCL线,其标准默认状态是高电平,因此使用的是上拉电阻,而非下拉。
逻辑门电路输入端:确保未使用的逻辑门输入端不会被悬空,而是被固定在一个已知的逻辑电平(通常是低电平)。