上拉和下拉电阻主要用于正确偏置数字电路门电路的输入,以防止它们在没有输入条件时的状态是随机浮动的。
数字逻辑门可用于连接外部电路或设备,但必须注意确保其输入或输出正常工作并提供预期的开关条件。
一:为什么要用上下拉电阻?
现代数字逻辑门、IC 和微控制器包含许多输入(称为“引脚”)以及一个或多个输出,这些输入和输出需要正确设置,无论是高电平还是低电平,数字电路才能正常工作。
我们知道逻辑门是任何数字逻辑电路最基本的组成部分,通过使用与门、或门和非门这三个基本门的组合,我们可以构建相当复杂的组合电路。但是作为数字电路,这些电路只能具有两种逻辑状态之一,称为逻辑“0”状态或逻辑“1”状态。
这些逻辑状态由两个不同的电压电平表示,低于一个电平的任何电压被视为逻辑“0”,高于另一个电平的任何电压被视为逻辑“1”。例如,如果两个电压电平是 0V 和 +5V,那么 0V 代表逻辑“0”,+5V 代表逻辑“1”。
如果数字逻辑门或电路的输入不在可以被检测为逻辑“0”或逻辑“1”输入的范围内,则数字电路可能会误触发,因为门或电路没有识别正确的输入值,因为 HIGH 可能不够高或 LOW 可能不够低。
如上面的数字电路。两个开关“a”和“b”代表通用逻辑门的输入。当开关“a”闭合(ON)时,输入“A”接地,输入A的电平是0v或逻辑电平“0”(LOW)。同样,当开关“b”闭合(ON)时,输入“B” 也接地,输入B的逻辑电平“0”(低),这是我们需要的正确条件。
但是,当开关“a”打开(OFF)时,施加到输入“A”的电压值是 HIGH 还是 LOW呢?因为输入“A”没有对地短路,所以我们可以假设它为 +5V(高电平)。
但情况可能不是这样的。由于输入现在与定义的 HIGH 或 LOW都是断开的,它有可能“浮动”大约在 0V 和 +5V (Vcc) 之间,所以针对输入A信号,并不知道它是高电平还是低电平条件。
这种浮动的情况可能会导致“A”处的数字输入在开关打开时是逻辑电平“0”(LOW),而我们实需要的一个逻辑“1”(HIGH)。这样就导致信号的判断错误。
就算这种浮动的情况下,输入“A”被识别为了逻辑“1”(HIGH),但是这个浮动和微弱的输入信号很容易受到其他相邻信号最轻微干扰或噪声下改变值,甚至可能导致它进入振荡状态,从而使门电路几乎无法使用。 同样的情况也适用于输入“B”的切换。
为了防止数字电路的意外切换,任何称为“浮动输入”的未连接输入都应连接到适合电路的逻辑“1”或逻辑“0”。我们可以通过使用通常所说的上拉电阻和下拉电阻轻松地做到这一点,为输入引脚提供定义的默认状态。
定义:将输入信号使用高阻值电阻连接到 Vcc 电压,称为上拉;通过低阻值电阻连接到 0V (GND),称为下拉。
干货:在我们设计电路的时候,并不是一个芯片的所有信号都会被用到,这些未使用的输入信号也应该连接在一起或分别连接对应的上/下拉电阻,这些未使用的输入不应该只是浮动。
二:上拉电阻
01
上拉电阻的应用
针对上面的电路,为了确保输入信号有一个固定的电压,不是浮动状态,最常用方法是将的引脚直接连接到地 (0V) 以获得恒定的逻辑“0”输入,(OR 和 NOR 门 ) 或直接连接到 Vcc (+5V) 以获得恒定的逻辑“1”输入(AND 和 NAND 门)。 这一次,当相应的开关“a”和“b”打开(OFF)时,两个输入 A 和 B都不是“浮动”,两个输入连接到 +5V 电源。
若针对新手小白,可能会出现上面电路的设计,因为当开关“a”打开(OFF)时,输入连接到 Vcc(+5V),当开关关闭(ON)时,输入像以前一样接地,然后无论开关的位置如何,输入“A”或“B”始终具有默认状态。
但是,这其实是一个非常错误的电路,因为当任一开关闭合 (ON) 时,+5V 电源和接地之间将直接短路,从而导致电流过大,会烧坏保险丝或损坏未连接的电路。
解决此问题的一种方法是使用连接在输入引脚和 +5V 电源轨之间的上拉电阻,下图所示。
通过使用这两个上拉电阻,当开关“A”或“B”打开(OFF)时,输入信号通过上拉电阻有效地连接到 +5V 电源上。结果是,由于逻辑门输入的输入电流非常小,上拉电阻上的电压下降非常小,因此几乎所有 +5V 电源电压都施加到输入引脚,从而产生高电平,逻辑“ 1”条件。
当开关“A”或“B”闭合时,(ON) 输入短路到接地 (LOW),在输入端产生逻辑“0”条件。但这个时候,其实没有将电源与地直接短路,因为上拉电阻仅通过闭合开关将小电流(由欧姆定律确定)传递到地。
通过这种方式使用上拉电阻,输入始终具有默认逻辑状态,“1”或“0”,高或低,取决于开关的位置,从而实现信号的正确输入。
虽然 Vcc 和输入之间的连接是使用上拉电阻的,但是,这个上拉电阻也不是随便选取的,我们如何进行合理的计算,确保输入使用正确的电阻值。
02
上拉电阻阻值的计算
所有数字逻辑门、电路和MCU不仅受其工作电压的限制,而且还受每个输入引脚的灌电流和拉电流能力的限制。
数字逻辑电路使用通常由两个不同电压(0V或者5V)来表示的两种开关状态:逻辑“1”的高电压 VH 和逻辑“0”的低电压 VL。这两种电压都有一个电压范围来定义上限或下限电压。通俗来讲就是:电压具体高到多少V会被判断为HIGH,电压具体低到多少V会被判断为LOW。
以TTL TTL 74LSxxx 系列数字逻辑门举例,
VIH(min) = 2.0V 是保证被识别为逻辑“1”(高)输入的最小输入电压,
VIL(max) = 0.8V 是保证被识别为逻辑“0”的最大输入电压输入。
通俗一点说:
电压在0~0.8V会被识别为低电平;
电压在2.0V~5V会被识别为高电平。
为了计算电阻值,有了电压,我们还需要知道电流。
当逻辑门的输入为高电平时,电流流入到芯片,因为输入基本上充当直接接地的路径。该输入电流 IIH(max) 在“流入”栅极时为正值,对于大多数 TTL 74LSxxx 输入,其值为 20µA。
同样,当逻辑门的输入为低电平时,电流从 TTL 输入流出,因为输入基本上充当直接连接到 Vcc 的路径。此输入电流 IIL(max) 为负值,因为它“流出”栅极,对于大多数 TTL 74LSxxx 输入,其值为 -400μA (-0.4mA)。
请注意,TTL 逻辑系列之间的 HIGH 和 LOW 电压和电流值不同,对于 CMOS 逻辑系列来说也低得多。此外,微控制器、PIC、Arduino、Raspberry Pie 等的输入电压和电流要求也会有所不同,因此请先查阅他们的数据表。
通过了解,我们可以计算出单个 TTL 74LS 系列逻辑门所需的最大上拉电阻值为:
有上面的公式可知,单个 TTL 74LS 系列逻辑门下降 3V所需的最大上拉电阻为 150kΩ。虽然这个计算值可以工作,但它没有留下任何误差空间,因为这个时候电阻上的压降最大,而输入电流最小。
理想情况下,我们希望逻辑“1”尽可能接近 Vcc,以保证 100% 的栅极通过上拉电阻看到 HIGH(逻辑1)输入。如果电阻器的容差或电源电压未按计算值计算,则减小该上拉电阻器的电阻值将为我们提供更大的误差范围。但是,我们不希望电阻值太低,因为这会增加流入栅极的电流,从而增加功耗。
因此,如果我们假设电阻上的电压降仅为 1 伏(1.0V),在 4 伏时输入电压是输入电压的两倍,那么可以快速计算将得出一个50kΩ 的上拉电阻值。进一步降低电阻值,会产生更小的电压降,但会增加电流。然后我们可以看到,虽然可能存在最大允许电阻值,但上拉电阻器的电阻值通常不是那么关键,电阻值范围在 10k 到 100k 欧姆之间是可以接受的。
上面这个简单的例子为我们提供了偏置单个 TTL 门所需的上拉电阻的最大值。但我们也可以使用相同的电阻器将多个输入偏置为逻辑“1”值。例如,假设我们已经构建了一个数字电路,并且有十个未使用的逻辑门输入。作为单个标准 TTL 74LS 门,输入电流 IIH(max) 为 20μA(也称为扇入 1),那么十个 TTL 逻辑门需要的总电流为:10 x 20μA = 200μA 代表一个风扇- 10个。
因此,提供 10 个未使用输入所需的上拉电阻的最大电阻值将计算如下:
按照同样的方式,若将压降调整为1V,测试的电阻值为5KΩ。
三:下拉电阻
下拉电阻的工作方式与上面讲的上拉电阻相同,只是这次逻辑门输入接地,逻辑电平“0”(低)或通过机械开关的操作变为高。这种下拉电阻器配置对于锁存器、计数器和触发器等数字电路特别有用,这些电路在开关瞬间闭合以引起状态变化时需要正向单次触发。
虽然它们的工作方式似乎与上拉电阻器相同,但无源下拉电阻的电阻值对于 TTL 逻辑门比类似的 CMOS 门更为关键。这是因为 TTL 输入在其 LOW 状态下从其输入中提供更多电流。
从上面我们看到,对于 TTL 74LSxxx 系列逻辑门,代表逻辑“0”(低)的最大电压电平在 0 到 0.8 伏之间,(VIL(MAX) = 0.8V)。此外,当为低电平时,栅极源电流为 400μA,(IIL = 400μA)。因此,单个 TTL 逻辑门的最大下拉电阻值计算如下:
然后最大下拉电阻值计算为2kΩ。同样,与上拉电阻计算一样,这个 2kΩ 电阻值不会留下任何误差,因为电压降最大。因此,如果电阻过大,下拉电阻两端的电压降可能会导致栅极输入电压超出正常的 LOW 电压范围,因此为确保正确切换,输入电压最好为 0.5 V或更低。
因此,如果我们假设电阻两端的电压降仅为 0.4 伏,快速计算将得出一个 1kΩ 的下拉电阻值。进一步降低电阻值,将产生更小的电压降,将输入进一步接地(低)。该数据表中的 400μA 或 0.4mA (IIL) 值是最低 LOW 电流值,但可能更高。
可能有人会问:当直接接地 (0V) 会产生所需的低电平时,为什么还要使用下拉电阻?
在大多数情况下,没有下拉电阻的直接接地肯定会起作用,但由于栅极输入永久接地,使用电阻器会限制流出输入的电流,从而降低功率损耗,同时仍保持逻辑“0”条件。
四:OC门输出
01
OC门
到目前为止,我们知道,可以使用上拉电阻或下拉电阻来控制逻辑门输入引脚的电压电平。但是我们也可以在门的输出上使用上拉电阻,来允许不同电压的电路接入,例如 TTL 到 CMOS 或用于需要更高电流和电压的传输线驱动应用。
为了克服这个问题,OC门应运而生,OC门内部输出电路的集电极保持开路,这意味着逻辑门实际上并不驱动输出高电平,只有低电平。通过外部上拉电阻的工作来做到输出高电平 。 一个例子是 TTL 74LS01,四路 2 输入 NAND 门,它具有开路集电极输出,与标准 TTL 74LS00,四路 2 输入 NAND 门相反。
具有开路集电极输出的逻辑门、微控制器和其他此类数字电路无法将其输出拉高,因为没有内部路径到电源电压 (Vcc)。这种情况意味着它们的输出要么在低电平时接地,要么在高电平时悬空,因此需要将一个外部上拉电阻 (Rp) 从下拉晶体管的集电极开路端子连接到 Vcc 电源。如上图所示。
对OC门连接上拉电阻后,输出仍以与普通逻辑门相同的方式工作,即当输出晶体管关闭(打开)时,输出为高电平,当晶体管打开(关闭)时,输出低。
上拉电阻的大小取决于连接的负载和晶体管关闭时电阻两端的电压降。当输出为低电平时,晶体管必须能够通过上拉电阻吸收负载电流。同样,当输出为高电平时,通过上拉电阻器的电流必须足够高,以便连接到它的任何东西。
正如我们之前在输入中看到的那样,数字逻辑门的输出使用两个二进制状态运行,这两个状态由两个不同的电压表示:逻辑“1”的高电压 VH 和逻辑“0”的低电压 VL。在这两种电压状态的每一种中,都有一个电压范围来定义它们的上限和下限电压。
VOH(min) 是保证被识别为逻辑“1”(高)输出的最小输出电压,对于 TTL,这是在 2.7 伏时给出的。VOL(max) 是保证被识别为逻辑“0” (LOW) 输出的最大输出电压,对于 TTL,此电压为 0.5 伏。换言之,TTL 74LSxxx 输出电压在 0 和 0.5V 之间被认为是“低”,而在 2.7 和 5.0V 之间的输出电压被认为是“高”。
因此,当使用集电极开路逻辑门时,所需的上拉电阻值由以下等式确定:
其中 7401 集电极开路 NAND 的值如下所示:Vcc = 5V,VOL = 0.5V,IOL(max) = 8mA。请注意,计算合适的上拉电阻 Rp 很重要,因为通过电阻的电流不得超过 IOL(max)。
我们之前说过,集电极开路逻辑门非常适合驱动需要更高电压和电流水平的负载,例如 LED 指示灯。TTL 74LS06 Hex Inverter Buffer/Driver 的 IOL(max) 额定值为 40 mA(而不是 74LS01 的 8mA)和 VOH(max) 额定值为 30 伏而不是通常的 5 伏(但 IC 本身必须使用 5V 电源)。然后 74LS06 将允许我们驱动高达 40mA 电流的负载。
02
OC门的应用
需要一个 74LS06 六角逆变器驱动器来控制来自 12 伏电源的单个红色 LED 指示灯。如果 LED 在 1.7V 压降时需要 15mA,而 HEX 逆变器在完全开启时的 VOL 为 0.1 伏,则计算驱动 LED 所需的限流电阻值。
我们可以以类似的方式使用集电极开路驱动器来驱动小型机电继电器、灯或直流电机,因为这些设备通常需要 5V 或 12V 或更高电压,电流约为 10 到 20 mA 才能正常工作。
TTL 门的两个或多个集电极开路输出可以直接连接在一起,并通过单个外部上拉电阻连接。结果是输出被有效地“与”在一起,因为组合的行为就像门连接到与门一样。这种类型的配置称为“线与逻辑”。
审核编辑 :李倩
-
微控制器
+关注
关注
48文章
7542浏览量
151306 -
电阻
+关注
关注
86文章
5507浏览量
171891 -
集电极
+关注
关注
4文章
214浏览量
22174
原文标题:最常见的电阻上下拉,你真的搞懂了吗?
文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论