何时使用下拉电阻与上拉电阻

电器工程 微控制器 电阻器 开关 拉起 拉下
2022-01-08 02:59:04

在学习和试验了微控制器之后,我理解了上拉和下拉电阻的概念。我现在了解何时以及如何使用它们,以及它们是如何工作的。我主要使用引体向上,因为我被教导要这样做,但在我看来它总是有点倒退,因为关闭开关会将 MCU 输入设置为低电平。我认为使用下拉电阻会更有意义,这样当开关打开时输入为低电平,但这只是我的思维方式。

我应该向上还是向下拉我的单掷输入?什么时候下拉优先于上拉,反之亦然?

4个回答

答案取决于您希望“默认”配置是什么。例如,假设您有一个下游 N 沟道 MOSFET,并且您希望它默认关闭。然后,如果输入变为高阻抗,您将使用下拉电阻来确保这种行为。

示意图

模拟此电路- 使用CircuitLab创建的原理图

另一方面,假设您有一个上游 P 沟道 MOSFET,并希望它默认关闭。这次需要一个上拉电阻来产生这种行为。

示意图

模拟这个电路

还有另一种情况,您希望设备默认开启,在这种情况下,上述两种情况将相反(N 沟道 MOSFET 上拉,P 沟道 MOSFET 下拉)。

其他一些考虑:

  1. I2C 线路指定了上拉电阻,因为“预计”设备具有对地开漏,因此需要某种方式来提高线路电位。

  2. 模拟比较器通常配置为开漏器件,因此还需要上拉电阻来获得高电位输出。

  3. 您可以使用上拉/下拉电阻吸收更多电流,具体取决于连接到输入/输出的内容。

  4. 任何一种配置都可以在您的应用程序中同样有效(即,无论哪种方式都没有显着优势)。

... 以及为什么一种配置可能是首选的任何数量的非常特定于应用程序的原因。

如果信号还没有规范,请使用对您最有意义的那个。您可以选择输入高电平有效或低电平有效

如果是按钮,请确保使用去抖电路(或在软件中进行)。

示意图

模拟此电路- 使用CircuitLab创建的原理图

如果您的电路设计是您可以选择的 - 换句话说,电路的其余部分不需要您使用上拉或下拉 - 那么您应该考虑故障情况下的安全性。

如果您的微控制器出现故障,或者只是该输出出现故障,则上拉或下拉将生效。这将如何改变您设备的操作?它是否会使用户处于危险之中——例如通过强行打开加热元件?它会影响安全,例如禁用门锁吗?

上拉/下拉电阻确定电线的默认状态。决定默认状态应该是什么取决于安全性,安全性,最后是电路所需的功能。

如果您使用的是 Arduino/ATmega328,您可以使用内置的上拉电阻

Atmega 芯片中内置了 20K 上拉电阻,可以通过软件进行访问。通过将 pinMode() 设置为 INPUT_PULLUP 可以访问这些内置上拉电阻。这有效地反转了 INPUT 模式的行为,其中 HIGH 表示传感器关闭,LOW 表示传感器打开。

这个上拉的值取决于使用的微控制器。在大多数基于 AVR 的电路板上,该值保证在 20kΩ 和 50kΩ 之间。在 Arduino Due 上,它介于 50kΩ 和 150kΩ 之间。有关确切值,请查阅板上微控制器的数据表。

将传感器连接到配置了 INPUT_PULLUP 的引脚时,另一端应接地。在简单开关的情况下,这会导致引脚在开关打开时读取 HIGH,而在按下开关时读取 LOW。

树莓派也有它们