开漏微控制器端口

电器工程 场效应管 8051 开漏
2022-01-24 20:50:41

我想了解开漏端口的概念,例如 8051 微控制器的端口 P0。为什么我们需要将上拉电阻连接到端口 P0?

我对 MOSFET 和其他电子设备有基本的了解。

4个回答

忽略 MOSFET 工作原理的来龙去脉。输出就像一个接地开关。它本身不能产生高(+5V)信号。使用上拉电阻,以便在开关打开时输出为高电平。当开关闭合时,输出将为低电平(0V)

在此处输入图像描述

开漏(或集电极开路,在 BJT 的情况下)有两种常见应用:

1) 将多个输出连接到同一条线路。这称为有线或。例如,您的设备上可能有一个通常为高电平的复位引脚,该引脚从微控制器引脚和另一个源(例如按钮)复位。复位引脚用一个上拉电阻连接到高电平。微控制器配置为开漏输出。按下按钮时,按钮接地。如果微控制器将其输出拉至 0,或按下按钮,则设备将复位。

请注意,当微控制器将其输出引脚设置为 1 时,该引脚实际上与线路断开。它不会以任何电压驱动线路(“源”),因此当按钮将线路拉到地时,没有短路。

因为线或配置非常有用,这就是为什么微控制器上的复位、中断线、触发器等设备上的清除和启用线等引脚都是“低电平有效” - 这意味着它们通常被绑在高电平(再次,通过上拉电阻),并且配置为漏极开路的多个设备中的任何一个都可以将它们拉低。这样的输入通常被指定为低电平有效,信号名称顶部有一个条形,或者一个前导!(!CLR) 或结尾的 # 符号 (CLR#)。

2) 控制连接到不同电源电压的设备。假设您有一个需要 20 毫安但电压为 5 伏的继电器。但是您的微控制器输出只能将引脚驱动到其电源 (VCC) 电压 3.3v。使用开漏输出,您可以将继电器的一侧连接到 5 V,另一侧连接到微控制器的输出引脚。当微控制器的输出为 1 时,什么也没有发生(再次,就像引脚断开一样)。当它设置为 0 时,这会将继电器的底部接地,从而完成电路并操作继电器。在这样的应用中,重要的是在继电器线圈上放置一个“反激”二极管,以防止在设备断电时损坏微控制器。

对于像 ULN2803(达林顿晶体管阵列)这样的输出驱动器,您可以驱动连接到高达 50 v 电压的负载,并使用逻辑兼容输入对其进行控制。

开漏输出只是连接到 0V 的开路开关。要使电流通过它,您需要将电流馈入其中,这可以通过上拉电阻来完成。如果您不将电流传递到引脚,您将无法看到电压:-

在此处输入图像描述

这里有两个设备共享相同的开漏输出 - 注意上拉电阻到 +5V。事实上,该电路使用“开漏”来执行逻辑 - 如果任一 NAND 门被 1,1 “激活”,它们会将 BUS 下拉至 0V。因此传递给 BUS 的逻辑是

BUS 的倒数 = AB + CD

MOSFET 通常用作开漏器件,尽管常规 BJT 也可以执行此功能。漏极开路输出是常规 CMOS 输出的简化版——它可以快速地打开到地,但由于寄生电容器通过上拉电阻器的充电时间,它在返回 +Logic 的过程中会更慢。

wiki 上的开放式收集器是一本很好的读物 - 它与开漏式相同,并且在文章中提到,就像上面显示的小图一样。

1)为了简化 tcrosley 答案中的第一点,不在输出内部提供上拉电阻的优势在于能够在许多输出之间共享该上拉电阻。然后将输出并联并全部连接到共享电阻器和地。

2)电阻“下方”的点(在原理图中)是组合输出被电路的其他部分收集的地方。(当然,就地面和电源而言,这一切都可能是相反的。)

3)如果您不想从许多输出中收集组合输出(并且电路在任何地方都使用相同的电压源),那么您不想使用没有上拉部件的输出。否则,您将获得“不完整”的输出(以某种方式),您可以根据自己的需要进行定制。