我注意到,到目前为止,在我所有的评估板上,我都有。LED 都以低电平有效连接到微控制器端口。我知道从安全的角度来看,最好有活动的低 RESET 线等。但为什么是 LED?
为什么大多数嵌入式设计中的 LED 都是倒置的?
MCU I/O 引脚的驱动源电流通常比吸收电流弱,这仍然是这种情况。
在典型的 CMOS MCU 输出中,当它们驱动为低电平时,它们会打开 N 沟道 MOSFET;当它们驱动为高电平时,它们会打开一个 P 沟道 MOSFET。(它们永远不会同时打开它们!)由于适用于 N 通道和 P 通道的迁移率差异(大约是 2 到 3 倍的差异),因此需要额外的努力才能使 P-通道设备表现出与开关类似的“质量”。有些人会付出额外的努力。有些没有。否则,吸收(N 通道)或提供(P 通道)电流的能力将不同。
其中一些几乎是对称的,因为它们几乎可以吸收尽可能多的资源。(这只是意味着它们作为接地开关与电源轨开关一样好。)但即使尝试额外的麻烦,还有其他问题使得这两个设备不太可能完全相似,并且通常情况下,采购方至少仍然较弱。
但归根结底,去看数据表本身总是一个好主意。这是 PIC12F519 的一个示例(Microchip 最便宜的部件之一,它仍然包括一些内部的、可写的非易失性数据存储。)
时的 LOW 输出电压(垂直轴)与 LOW 灌电流(水平轴):
此图表显示了高输出电压(垂直轴)与高源电流(水平轴),当 CPU 使用时:
您可以很容易地看到,他们甚至不费心去展示相同的灌电流和拉电流能力。
要读取它们,请在两个图表上选择一个大小相似的电流(非常困难,不是吗?)让我们在第一个图表上选择,在第一个图表上选择第二个。(尽可能接近。)您可以看到 PIC12F519 通常会在第一个上下降约,这表明内部电阻约为。同样,您可以在第二张图表上看到 PICF519 通常会下降约,这表明内部电阻约为. 不是很相似。的曲线中提取了数据。)
因此,如果您将这个特定的 MCU 设计到一个电路中,您想在大约 LED,您会采用哪种方式接线?很明显,您必须将 LOW 视为 ON,因为这是数据表表明您可能成功的唯一方法,根本不需要外部晶体管来提高输出的电流合规性。
[您可能还注意到,在附近的灌电流和拉电流的上述计算似乎显示了两个电阻值,它们彼此之间大约是三倍(大约与)。这可能是与我一开始提到的迁移率差异(即 P 沟道和 N 沟道 MOSFET 之间的迁移率差异)并非巧合。]
历史记录
在 1970 年代初变得更广泛使用的 TTL 系列 IC 建立在 NPN BJT 之上,并且只能吸收大量电流。他们只能提供相对较小的电流。这是来自 TTL 的示例表:
请注意并且足以驱动 LED,但并不够(在大多数情况下。)
在那些日子里,没有太多的选择。因此,您经常会发现使用反相输出的 TTL 系列 IC 比具有同相输出的等效封装更适合早期版本。
一个经典的例子我记得很清楚,因为我在 1974 年对自己的 7400 计算机进行了接线,那就是 7489。这是一个 64 位 16x4 RAM,具有互补的、开集电极输出,大约在 1973 年前一年发布。它补充了输出时存储的数据。我利用这个事实直接显示数据,使用 LED,同时还能够根据 RAM 数据输出值驱动其他逻辑。我很确定我不是唯一一个喜欢这一事实的人,我怀疑它为早期 RAM 部件的设计选择提供了依据。
当时,我们都在广泛使用带有上拉电阻的集电极开路输出。这些提供了一种“穷人”版本的三态,它是支持具有多个输出的总线的唯一便捷方式。
更好、更省电的三态输出最终出现在现场,以支持公共汽车上的多个“说话者”。他们到达时非常有吸引力,我开始和他们一起玩。但我从来没有真正使用它们创建过一个大型项目。当他们出现时,我正在做其他事情。
所以很久以后我们才看到 74189。这也是具有互补输出的 64 位 16x4 RAM,但它提供了具有三态能力的输出,而不是集电极开路。在这里,他们选择将 ID 号与之前的 7489 匹配,因此输出也是存储值的补充版本。但不再是开放式收集器。我想这被称为“替代”,在从开放收集器项目过渡到三态并且剩余逻辑仍然期望看到互补输出并且项目所有者只想专注于总线方法,并且不想在设计中添加逆变器。
74219 使用另一个版本的 64 位 16x4 RAM 来解决这个问题,同样具有三态输出,但现在具有未补充的输出。这是为新设计而存在的,它不必与前几年的互补输出风格保持一致。
微控制器输出引脚在低电平状态下吸收的电流比在高电平状态下提供的电流多,这是相当普遍的(尽管不像以前那样普遍)。因此,设计人员习惯于在电源和引脚之间而不是在接地和引脚之间放置 LED 或其他任何需要高(对于微控制器引脚)电流的东西。当 micro 具有对称的源/汇能力时,这不是必需的,但也没有害处。
例如,下面是 PIC 16F1459(一个相当新的并且肯定是主流的生产部件)数据表的片段:
请注意,在相同电源电压下,输出低电压情况下的电流如何高于输出高电压情况下的电流。并且,灌电流规定为上升 600 mV,而源电流规定下降 700 mV。总而言之,这款微控制器在其常规 I/O 引脚上具有显着更强的低侧驱动器。
许多较新的微控制器是对称的,尤其是那些一开始就没有太多源/接收器能力的微控制器。
当 LED 需要的电流超过数字输出的处理能力时,或者至少超过您想要处理的电流时,您需要使用外部晶体管。低边开关是自然而简单的选择。然后将 LED 连接在电源和该晶体管之间。
通过使用下拉设计,可以使用 1.8V但可耐受 5V的微控制器来切换具有 5V 电源的设备(例如 LED),而无需任何外部组件。
当(开漏配置)引脚未下拉时,它处于浮动状态,因为没有电流消耗,电压将浮动到 LED 的电源电压,因此达到 5V。这对一些但不是所有的低压微控制器都是可以的。
通过这种方式,您可以直接从电源线上运行 LED,并为微控制器使用较低电流的电压转换器。这是使用例如的唯一方法。1.8v micro 上的蓝色 LED,无需添加更多组件。
例如,NXP LPC81xM 系列的引脚在 micro 通电时可承受 5v,即使在 1.8v 时也是如此
因为开漏MOSFET 通常比推挽吸收更多的电流,有时甚至可以承受更宽的电压范围。使用漏极开路的 LED 仅适用于低电平有效配置。虽然取决于微观,但有些只是推拉。