当前位置: 首页 > news >正文

上拉电阻和下拉电阻

上拉电阻

  上拉电阻(Pull-up Resistor) 是数字电路中非常重要的一个概念,它的作用是将一个信号引脚的电平“拉”向高电平(通常是 Vcc),以确保在没有其他信号驱动时,该引脚不会悬空(floating),从而有一个稳定可靠的逻辑“1”

1、为什么需要上拉电阻

  有些引脚(如开漏输出、输入引脚、复位引脚等)本身不能主动输出高电平,或者在某些时刻没有明确驱动电平。如果没有外部辅助,它们的电压会浮在一个不确定的状态。这会导致:

  • 引脚电平不稳定,受干扰影响严重

  • 电路逻辑异常,比如 MCU 误判中断、电平错乱

  • 功耗增加(由于输入级高频翻转)

为什么某些引脚(比如输入、开漏输出、复位引脚)如果没有上拉电阻,而是悬空或直接接 VCC,会导致问题。

①为什么“悬空”会导致电压不确定?

因为输入引脚本质上是一个高阻抗(High-Z)节点

  • 它内部没有强驱动力

  • 如果没有外部电压源或者电阻拉电平,它不会自己稳定在高或低

  • 就像空着的金属探针一样,一点点干扰、静电、手接近、PCB 泄露电流,都会让电压上下乱跳

举个比喻:你把输入脚比作一个“耳朵”,但没人跟它说话,它就胡思乱想——所以你得让上拉电阻当“默认声音”告诉它:现在是高电平。

②为什么不能直接把输入或开漏输出接 VCC?

对于输入引脚:

  • 不能“直接接 VCC”是片面的说法,要看是否你允许它被拉低

  • 如果你直接接 VCC,你就失去了改变它电平的能力

  • 比如你希望接一个按键,按下后变低,那你就不能直接接 VCC 否则永远是 1

正确做法是加个上拉电阻到 VCC,这样它默认是 1,但可以被拉低。

③那为什么不能靠芯片内部自己搞定?

很多芯片确实提供了内部上拉电阻选项,但是:

  • 不是所有引脚都有

  • 有的芯片默认不上拉,需要你在程序中配置

  • 内部电阻值较大(20kΩ~50kΩ),不适合高速通信(比如 I²C)

所以,硬件上加上拉电阻更稳定可靠,特别是在:

  • 开漏输出

  • 按钮输入

  • 复位引脚

  • 多路驱动总线

  • I²C、1-Wire 等通信协议

2、上拉电阻是怎么工作的

   +Vcc (比如 3.3V 或 5V)│R(上拉电阻)│
信号点 ──────► 接到芯片 IO 或总线│└──── 其他驱动电路(如按键、开漏输出)

3、上拉电阻作用总结

作用说明
提供默认高电平 没有主动驱动时,维持逻辑“1”
防止输入悬空 避免干扰、误动作
用于开漏输出 提供输出高电平能力
与按钮配合使用 松开按钮时自动回到高电平
通信总线保持空闲高电平 如 I²C、1-Wire 等协议

4、上拉电阻阻值怎么选

典型选值范围是:1kΩ ~ 100kΩ,根据电路需求选择:

阻值范围应用场合
1kΩ ~ 4.7kΩ 较强拉力、用于高速通信(I²C、开漏信号)
10kΩ ~ 20kΩ 一般 GPIO 输入、按键
>50kΩ 低功耗、慢速响应,不推荐用于通信

 下拉电阻

  下拉电阻(Pull-down Resistor)就是一个连接在信号引脚和 GND 之间的电阻,用来保证该引脚在没有被主动拉高时保持在稳定的低电平(逻辑 0)

1、结构图示

MCU 输入引脚 ─────┬────────► 信号输入│[R]   ← 下拉电阻(如10kΩ)│GND

2、常用电阻值范围

电阻值适用情况
1kΩ ~ 10kΩ 通用下拉(推荐)
>10kΩ 电流更小,但抗干扰差
<1kΩ 更强拉力,但增加功耗(不常用)

3、下拉电阻的常见应用场景

①MCU 输入引脚需要默认低电平

比如你接了一个信号线,但在大多数时候这个线是“空闲”的,你希望 MCU 默认读到逻辑 0:

if (GPIO_ReadInput() == 0)
{// 默认认为空闲状态
}

这时就需要加一个下拉电阻。

②某些控制引脚(如复位、使能)

例如一些芯片的 ENRST 引脚,要求默认是低电平,只有在某条件下拉高才有效,这时可以加下拉电阻。

4、注意事项

错误做法为什么错误
直接接 GND 代替下拉电阻 会导致外部驱动器输出高电平时短路
阻值太大(>100kΩ) 抗干扰能力差,逻辑不稳定
不加下拉 芯片引脚悬空可能导致误触发、功耗增加
http://www.sczhlp.com/news/681.html

相关文章:

  • 蓝桥杯2024省赛A组题解
  • 春训#2题解
  • 国内AI编码工具哪家强CodeBuddy+通义灵码+Trae
  • js基础第二天
  • [PaperReading] Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets
  • 蓝桥杯2025省赛A组游记题解
  • 7.28 闲话
  • FM2023利兹联崛起之路#1
  • 暑训#1补题
  • 07.08 论文精读 人像线稿生成模型
  • 7/28
  • 【LeetCode 141】算法:环形链表
  • 暑训#3补题
  • 关于跨域的一点新理解
  • js基础第三天
  • 龙哥量化:股票期货- 精华资料目录
  • 2025省选组合数学笔记
  • 字符串
  • js基础第四天
  • 同时点亮LED、数码管以及点阵
  • 今日总结
  • docker安装
  • 二进制简史:从理论到芯片
  • Qcom dcvs_epss.c 驱动解析.
  • AirSim+PX4+QGC实现无人机自动避障
  • js基础第五天
  • 简单了解高阻抗(High-Z)
  • 中台建设为什么需要领域驱动设计
  • 不同Linux发行版Node安装指南
  • 虚化引擎游戏解包工具