问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

上拉电阻和下拉电阻的作用及在通信电路中的应用全解析

创作时间:
作者:
@小白创作中心

上拉电阻和下拉电阻的作用及在通信电路中的应用全解析

引用
CSDN
1.
https://m.blog.csdn.net/weixin_54742551/article/details/143786137

什么是上/下拉电阻

上拉、下拉电阻统一称为拉电阻,作用是将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉)。

在数字电路中,通常有三种状态:0(低电平)、1(高电平)、浮空(不确定、随机)。

开启上拉电阻或下拉电阻的作用

  1. 确定默认电平状态:
  • 上拉电阻:当开启上拉电阻时,GPIO引脚的默认电压为高电平。STM32内部的上拉电阻是一个弱上拉,即通过此上拉电阻输出的电流很小。如果需要输出较大的电流,则需要外接上拉电阻,以增加导线的输出电流。
  • 下拉电阻:开启下拉电阻时,引脚的默认电压为低电平。下拉电阻的作用是降低导线的输出电流,确保在特定条件下输出低电平。
  1. 防止引脚悬空:
  • 当上拉和下拉电阻都不开启时,GPIO引脚处于浮空模式,此时引脚的电压是不确定的,可能会随时间改变。为了避免这种情况,通常会将引脚设置成上拉或下拉模式,以确保引脚有一个确定的默认电平状态。这有助于防止引脚悬空,避免产生积累电荷或静电荷,从而造成电路不稳定。
  1. 电路设计和保护:
  • 在电路设计中,根据具体的应用需求选择上拉或下拉模式。例如,在检测信号时,如果被检测信号接到电源的低电位(如通过按键接到VSS),则应配置为上拉模式;反之,如果接到高电位(如通过按键接到VDD),则应配置为下拉模式。
  • 内部的上拉和下拉电阻阻值典型值为40K欧姆,最大为50K欧姆。如果需要提高信号波形的爬升或下降速率,可以在IO口外部增加强拉电阻,以减小时间常数,加快波形变化。但需要注意的是,强拉电阻由于电流较大,可能会增加系统的功耗并引起发热问题。

什么是弱上下拉和强上下拉?

那么上下拉电阻阻值该取多大?

  • 阻值不能太小:太小的电阻值会导致开关闭合时产生较大的电流,增加功耗并可能引起发热问题。
  • 阻值不能太大:太大的电阻值会导致上拉或下拉作用变弱,引脚接近于浮空状态,容易受干扰。
  • 典型值:一般选择几K到几十K的电阻值,兼顾功耗和上下拉作用。

具体的值可以参考数据手册或者官方电路原理图。

所以这个电阻既不太大,也不太小,一般是几K到几十K大小,兼顾了功耗和上下拉作用。这里就引入了强弱的概念,弱就是阻值大,强就是阻值小。

通讯中的上拉电阻

在通讯电路中,上拉电阻(Pull-up Resistor)是一种常用的电路元件,它在电路中起到以下作用:

  • 维持信号电平:在数字通讯中,上拉电阻通常用于维持信号线在未激活状态时的电平。例如,在开漏(Open-Drain)或开集(Open-Collector)输出电路中,输出端无法主动驱动信号到高电平,只能将信号拉低。上拉电阻可以将信号线拉到高电平(通常是电源电压),确保在没有信号驱动时,线路保持一个已知的状态。

  • 定义逻辑高电平:上拉电阻帮助定义了电路中的逻辑高电平。当信号线未被驱动到低电平时,上拉电阻将线路电压拉到电源电压,从而定义了逻辑“1”。

  • 限制电流:当信号线被拉低时,上拉电阻限制了流过线路和驱动器的电流,从而保护了电路不受过流的损害。

  • 防止信号线浮动:在信号线未被明确驱动到高或低电平时,上拉电阻可以防止信号线处于不确定的浮动状态,这有助于减少电磁干扰(EMI)和提高信号稳定性。

  • 提供灵活性:上拉电阻的使用为电路设计提供了灵活性,因为它允许使用开漏或开集输出,这些输出可以很容易地与多个信号线进行“线与”(Wired-OR)连接。

以下是一些具体的应用场景:

  • I2C 总线:在I2C通讯协议中,上拉电阻用于SCL(时钟线)和SDA(数据线)上,以维持线路在未被驱动时的逻辑高状态。
  • SPI 总线:在SPI通讯中,上拉电阻有时用于SS(从选择)线上,以确保在没有主设备选择从设备时,从设备不会被误激活。
  • TTL 逻辑:在TTL(Transistor-Transistor Logic)电路中,上拉电阻用于确保逻辑门输出在未被激活时保持高电平。
  • 开关去抖动:在机械开关的输入电路中,上拉电阻可以与电容配合使用,以实现去抖动功能,减少开关接触时产生的噪声。

选择合适的上拉电阻值很重要,因为它会影响到信号的速度、功耗和抗干扰能力。通常,上拉电阻的值需要在驱动能力和功耗之间做出权衡。

举例

1.串口-uart的上拉电阻

在串口通信中,上拉电阻可以用于确保信号线在未被驱动时保持高电平,避免信号线浮动。例如,当使用开漏输出时,上拉电阻可以确保信号线在未被驱动时保持高电平。

2.I2C的上拉电阻

在I2C通讯协议中,上拉电阻用于SCL(时钟线)和SDA(数据线)上,以维持线路在未被驱动时的逻辑高状态。

I2C总线是一种用于芯片之间进行通信的串行总线,它由两条线组成:串行时钟线(SCL)和串行数据线(SDA)。这种总线允许多个设备在同一条总线上进行通信。

首先为什么I2C是开漏输出?

  1. 防止短路
    I2C协议支持多个主设备与多个从设备在一条总线上,如果不用开漏输出,而用推挽输出,会出现主设备之间短路的情况。所以总线一般会使用开漏输出。

  1. 可以实现“线与”逻辑:开漏输出可以实现“线与”逻辑,减少一个与门的使用,简化电路。

为什么要接上拉电阻?

连接上拉电阻后,才可以输出高电位。

  • 漏极开路是为了防止I2C上连接多个主设备与多个从设备时出现短路;
  • 上拉电阻的存在是为了在使用漏极开路之后,可以输出高电平;
  • “线与”是为了在多个主设备同时占用总线时,具有仲裁的能力。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号