5V到3.3V 逻辑电平转换

很多时候我们必须将 5V 设备连接到 3.3V 设备。这种情况在 Arduino 上非常常见,但其他应用程序也可能需要 5V 到 3.3V IC 或系统进行通信。在许多情况下,可能需要某种逻辑电平转换器/转换/转换电路。

例如,假设您要将工作电压为 5V 的 Arduino Uno 连接到 3.3V 设备,例如我们在指南“如何在 Arduino Uno 上播放视频 (2/6) ”中使用的显示器。同样,有许多 5V 设备或屏蔽不能与工作电压为 3.3 V 的 Arduino 2 或 Zero 一起使用。

在本文中,我们将讨论 5V 到 3.3V 逻辑电平接口。有关相反的任务,即 3.3V 到 5V 的转换,请参阅本文。

有很多方法可以将 5V 输出连接到 3.3V 输入。最常见的是:

  • 直接连接(警告:仅限 5V 容限输入!)
  • 串联电阻。
  • 串联电阻与外部肖特基二极管钳位至 3.3V 线路。
  • 带上拉电阻的串联二极管。
  • 带有有源钳位的串联电阻。
  • 电阻器和齐纳二极管。
  • 电阻分压器。
  • BJT/MOSFET 作为逆变器。
  • 两个级联的 BJT/MOSFET 作为缓冲器。
  • 开漏/集电极输出上的上拉电阻。
  • 添加具有开漏/集电极输出的 5V 供电逻辑 IC(缓冲器、门等)。
  • 添加具有 5 V 容限输入的 3.3V 供电逻辑电路(缓冲器、门等)。
  • 串联 MOSFET(共栅极配置)。
  • 串联 BJT(共基极配置)。
  • 电平转换器。
  • 光耦合器。

注意!在下图中,所有电阻器符号内都有“R”标签。这并不意味着电阻器的值都相同!

直接连接(警告:仅限 5V 容限输入!)

最简单的方法是直接连接。这是 Arduino 以太网扩展板的情况:Wiznet W5500 以太网芯片工作在 3.3V,但具有 5V 容差输入(参见数据表)。而 Arduino 2 没有 5V 容差输入,因此您永远不应将 5V 输出直接连接到其任何输入引脚

图 1. 如果 3.3V 设备具有 5V 容限输入,则可以直接连接。

优点:

  • 无需额外费用或空间。
  • 最快的解决方案。

缺点:

  • 它仅适用于可耐受 5V 电压的设备。

串联电阻

将 5V 连接至 3.3V 系统的第二种最简单的方法是使用串联电阻。

图 2. 用于将 5V 输出连接至 3.3V 输入的串联电阻。输入必须有保护二极管!

工作原理:

3.3V(非 5V 耐受 IC)的输入通常由二极管保护:一个朝向 V DD,另一个朝向 GND ,如下图所示。这些二极管通常处于关闭状态,因为它们都是反向偏置的。但是,如果您尝试施加大于 V DD,3.3V 的电压,它们会将输入电压钳位到 V DD,3.3V (加上正向二极管电压,通常为 0.7V)。由于开关设备的电容耦合或振铃,即使在仅 3.3V 的系统中也会出现大于 V DD,3.3V 的瞬态尖峰。

图 3. CMOS IC 上输入保护电路的简化示意图。

当 5V 电压通过电阻馈送到输入端时,二极管将导通:电阻限制流入引脚的电流,从而保护输入端。数据表中有时会标明流入引脚的最大电流,出于两个原因,应将其保持在较低水平:

  • 通常,除了漏电流外,没有电流会流入引脚。由于闩锁现象,可能会造成损坏。
  • 流入输入引脚的电流将从 V DD引脚流出!如果这种电流太大,可能会增加整个系统的 V DD电压,从而损坏 IC。如果系统的电流消耗大于流入引脚的电流,则应该没有问题。否则,建议在 V DD、3.3V和 GND 之间放置一个假负载。负载的值应至少吸收流入所有输入的电流。

要计算该值,只需将输入电流视为 I=(5V-3.3V)/R S。然后在 V DD、3.3V和 GND 之间放置一个电阻,使其吸收相同的电流 I。换句话说:R LOAD = R S 3.3V (5V-3.3V) 或约 2 R S。如果您有多个输入,则必须相应减少 R LOAD。如果您的系统已经从 3.3V 吸收“I”(例如由于 IC 电流消耗或存在常亮 LED),那么您可以省略或增加 R LOAD

这种解决方案还有另一个缺点:它严重限制了带宽,除非使用低值电阻。事实上,输入引脚和走线将具有一定的寄生电容 C parasitic

系统带宽为 f C =1/(2πR S C parasitic )。这并不意味着您可以希望 af C数字时钟信号通过时不会严重失真。这里我们绘制了一个经过滤波器后的 500kHz 方波,其 f C为 1MHz 。

图 4. 500 kHz 时钟馈入图 2 的电路(红线)。蓝线是实际获得的波形。

为了提高带宽,应使用低值电阻。但是,不建议使用低值电阻,原因如下:

  • 已经提到的电流进入引脚。
  • 當前消耗。
  • 输出的过载。
  • 当输入切换时,它会在 V DD、3.3V线路上产生额外的噪声。

实际值在1-10kOhm之间。

优点:

  • 简单的解决方案:每个输入引脚只需一个电阻。

缺点:

  • 功耗高(使用低值电阻)或带宽较差(使用高值电阻)。
  • 输出过载(使用低值电阻)
  • 进入输入端的电流可能会引起闩锁。
  • 如果 3.3V 系统的最小电流消耗非常低,则需要在 3.3V 电源上添加外部负载电阻。
  • 由于电流注入,3.3V 电源上可能产生噪声。
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

串联电阻与外部肖特基二极管钳位至 3.3V 线路。

该电路与之前的解决方案类似,但是可以实现更快的速度,因为大部分电流将由肖特基二极管而不是保护二极管承载。

这仍然有缺点,即电流被馈送到 VDD ,3.3V线路。因此,这种电流必须被系统“消耗”,如前一种情况所示。

图 5. 添加肖特基二极管,允许使用更小的电阻,从而提高带宽。

优点:

  • 可实现更大的带宽。
  • 注入输入引脚的电流可忽略不计。

缺点:

  • 每个输入需要两个组件(电阻器和肖特基二极管)。
  • 功耗高(使用低值电阻)或带宽较差(使用高值电阻)。
  • 输出过载(使用低值电阻)
  • 如果 3.3V 系统的最小电流消耗非常低,则需要在 3.3V 电源上添加外部负载电阻。
  • 由于电流注入,3.3V 电源上可能产生噪声。
  • 仍然必须考虑二极管的电容。
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

带有源钳位的串联电阻。

最好不要将输入电流重新导向 V DD,3.3V ,而是将其耗散至地,这样就不会发生 V DD,3.3V电平变化。

图 6. PNP BJT 可用作有源钳位,通过将过量电流短路至地(而不是 3.3V)。

当输入电压大于 3.9V 时,PNP BJT 将一直导通。此解决方案允许使用较小的电阻器(更高的带宽)。

值得注意的是,仍有电流注入 V DD,3.3V,但该电流将比流入 R S 的电流小hFE倍。因此,在大多数情况下,不需要 R LOAD

另一个问题是,在某些 IC 上,当输入值低于 3.3V 水平 0.35V 时,保护二极管开始导通。在这种情况下,BJT 基极不应连接到 3.3V,而应连接到稍小的电压(如果系统可用)。

优点:

  • 可实现更大的带宽。
  • 非常小的电流注入3.3V电源线。
  • 小电流注入输入引脚。

缺点:

  • 每个输入需要两个组件(电阻器和 BJT)。
  • 功耗高(使用低值电阻)或带宽较差(使用高值电阻)。
  • 输出过载(使用低值电阻)
  • 如果 3.3V 系统的最小电流消耗极低,则可能仍需要在 3.3V 电源上添加外部负载电阻。
  • 由于注入电流,3.3V 电源上仍然可能产生噪声。
  • 在某些情况下,可能需要另一个电源(低于 3.3V)将电压钳位到输入保护二极管的导通电压以下。
  • 仍然必须考虑 BJT 的电容。
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。
  • 钳位电压可能太高(约 3.9V)。可能需要另一个电压源(小于 3.3V)。

电阻器和齐纳二极管

我们可以使用齐纳二极管来代替 BJT,它将电压限制在 Vz 值。问题是低值齐纳二极管具有相当大的动态电阻,并且必须有大电流流入齐纳二极管,才能实际显示 Vz 值(几 mA)。

图 7. 3.3V 齐纳二极管可以钳位电压。

优点:

  • 由于可以使用低值电阻,因此带宽类似于肖特基或有源钳位解决方案。
  • 没有电流注入3.3V电源线。
  • 没有电流注入输入引脚。
  • 成本比 BJT 或肖特基更低。
  • 钳位电压可以低于BJT。

缺点:

  • 每个输入需要两个组件(电阻器和齐纳二极管)。
  • 功耗高(使用低值电阻)或带宽较差(使用高值电阻)。
  • 输出过载(使用低值电阻)
  • 仍然必须考虑二极管的电容。
  • 输出电压不精确,因为一些低值齐纳二极管的动态电阻非常差。
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

带上拉电阻的串联二极管。

如果您的 3.3V 系统接受高达 0.7V 的低电平输入电压,则可以使用普通的 1N4148 二极管,如下所示。如果您想要更高的噪声容限(或者如果 0.7V 太高),请使用肖特基二极管。

工作原理很简单:当 5V 系统输出 5V 时,二极管反向极化,因此是开路的。3.3V 系统的输入通过 R1 上拉到 3.3V。然后 5V 系统输出 0V,二极管正向偏置,因此 3.3V 输入处的电压将是二极管的正向压降:对于硅二极管,约为 0.6-0.7V,对于肖特基二极管,约为 0.35V。请记住使用快速信号二极管!(即不要使用 1N4007!)。

图 8. 串联开关二极管(例如 1N4148)阻断高电平电压。串联电阻上拉输出。

优点:

  • 由于可以使用低值上拉电阻,因此带宽与肖特基钳位解决方案相似。
  • 没有电流注入3.3V电源线。
  • 没有电流注入输入引脚。

缺点:

  • 每个输入需要两个组件(电阻器和二极管)。
  • 功耗高(使用低值电阻)或带宽较差(使用高值电阻)。
  • 输出过载(使用低值电阻)
  • 仍然必须考虑二极管的电容。
  • 低电平输出电压为二极管的正向压降。
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

电阻分压器

降低 5V 电压的一个简单方法是通过电阻分压器!

图 9. 电阻分压器。

相对于单个电阻,电阻分压器表现更好。给定相同的带宽,它相对于已经检查过的其他解决方案(直接连接除外!)消耗更少。

实际上,所有解决方案中的带宽均由时间常数 R S C寄生决定(还请注意,BJT 或二极管会增加 C寄生!!!)。电流为 (5V-3.3V)/R S。在电阻分压器上,电流为 (5V-3.3V)/R 1。但是,分压器的带宽由时间常数 (R 1 //R 2 C寄生) 决定。换句话说,如果 R S =R 1,则分压器上的带宽将更高。相反,如果带宽相同,电流将更小。

R2的寄生电容仍然会影响带宽,但与二极管或 BJT 相比,影响要小得多。

优点:

  • 在相同消耗的情况下比其他系统(直接连接除外)具有更好的带宽(或在相同带宽下具有更小的消耗)。
  • 没有电流注入3.3V电源线。
  • 没有电流注入输入引脚。
  • 成本比 BJT、肖特基或齐纳二极管更低。
  • 对称上升/下降时间。

缺点:

  • 每个输入需要两个组件(两个电阻器)。
  • 功耗高(使用低值电阻)或带宽较差(使用高值电阻)。
  • 输出过载(使用低值电阻)
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

BJT/MOSFET 作为逆变器

如果您可以接受反向信号,则可以使用 BJT 或 MOSFET。

图 10. BJT/MOSFET 作为逆变器可用作电平转换器。

带宽主要由上拉电阻和寄生电容(必须包括BJT/MOSFET的电容!)决定。

优点:

  • 没有电流注入3.3V电源线。
  • 无输出过载。
  • 没有电流注入输入引脚。

缺点:

  • 每个输入需要两个或三个组件(BJT/MOSFET 和一个或两个电阻器)。
  • 高功耗(使用低值上拉电阻)
  • 反相输出!
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

两个级联的 BJT/MOSFET 作为缓冲器。

你可以级联两个之前的 BJT/MOSFET 电阻反相器。这样输出就不会反相。

图 11. 您可以级联两个用 BJT 或 MOSFET 制成的逆变器并实现电平转换器。

优点:

  • 没有电流注入3.3V电源线。
  • 无输出过载。
  • 没有电流注入输入引脚。
  • 逻辑电平未反转。

缺点:

  • 需要很多组件!
  • 高功耗(使用低值上拉电阻)
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。
  • 由于两个阶段的级联,带宽相对于前一种情况来说较小。

开漏极/集电极开路输出上的上拉电阻。

这仅当输出为开路集电极/漏极时才有效

图 12. 如果输出是开漏/集电极,则可以使用上拉电阻。

这与“BJT/MOSFET 作为逆变器”非常相似。由于输出是开漏,因此必须插入上拉电阻。

优点:

  • 需要单个电阻。
  • 没有电流注入引脚。
  • 没有电流注入3.3V线路。

缺点:

  • 功耗高(使用低值电阻)或带宽较差(使用高值电阻)。
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

具有开路漏极/集电极输出的逻辑集成电路(缓冲器、门等)。

您可以连接开漏/集电极缓冲器/门 IC,以及上拉电阻,如下所示。缓冲器/门由 5V 供电,因此它将接受 5V。

图 13. 您可以添加一个以 5V 供电的门(例如 74HC09)或缓冲器(例如 74LS07),并带有开漏输出。

优点:

  • 没有电流注入引脚。
  • 没有电流注入3.3V线路。

缺点:

  • 功耗高(使用低值电阻)或带宽较差(使用高值电阻)。
  • 该解决方案需要一个缓冲器和一个电阻器。
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

添加具有 5 V 容限输入的 3.3V 供电逻辑 IC(缓冲器、门等)。

您可以连接一个可承受 5V 电压、供电电压为 3.3V 的 IC,例如 SN74LV1T34。

图 14. 您可以添加一个 5 V 容限缓冲器(供电电压为 3.3V)。

优点:

  • 没有电流注入引脚。
  • 没有电流注入3.3V线路。
  • 功率低。
  • 快速地。
  • 高噪声裕度。

缺点:

  • 成本和空间

系列 MOSFET(共栅极配置)

我们可以使用共栅极配置,而不是使用共源配置的 MOSFET。MOSFET 实际上是串联的。MOSFET 必须是 2.5V 逻辑电平 MOSFET,否则它将无法工作。

图 15. 串联 MOSFET 可用作转换器。

该电路的工作原理如下。

当 V IN为 5V 时,MOSFET 将关闭,因为 VGS = 0V(由 R2 约束)。当 V IN为 0V 时,由于 MOSFET 的漏极寄生二极管,输出最初将变为 0.7V。因此,VGS 将变为 3.3V-0.7V = 2.6V。由于这是一个 2.5 V 逻辑电平 MOSFET,因此 MOSFET 将打开,实际上现在充当短路。输出将为 0V。

正如我们在“连接 3.3V 至 5V 系统”中展示的那样,该电路也可以双向工作,即将 3.3V 信号转换为 5V 信号!

优点:

  • 没有电流注入3.3V电源线。
  • 没有电流注入输入引脚。
  • 同相输出。
  • 可以双向。

缺点:

  • 每个输入需要两个组件(MOSFET 和一个电阻器)。
  • 高功耗(使用低值上拉电阻)
  • 输出过载(使用低值上拉电阻)
  • 仍必须考虑 MOSFET 的电容。
  • 需要 2.5V 逻辑电平 MOSFET。
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

系列 BJT(共基极配置)

也可以使用 BJT,但是发射极必须位于 5V 侧(MOSFET 的源极位于 3.3V 侧!)。

图 16. BJT 也可以用作串联转换器!

其工作原理如下:当输入为 5V 时,V BE =-1.7,因此 BJT 为 OFF。3.3V 侧被上拉。当 V IN为 0V 时,基极-发射极结将正向极化,BJT 将打开,将“0”逻辑电平传输到 3.3V 侧。

优点:

  • 没有电流注入3.3V电源线。
  • 没有电流注入输入引脚。
  • 非反相输出。

缺点:

  • 每个输入需要三个组件(BJT 和两个电阻器)。
  • 高功耗(使用低值上拉电阻)
  • 输出过载(使用低值上拉电阻)
  • 仍然必须考虑 BJT 的电容。
  • CE,sat被添加到低值输出。
  • 3.3V输入必须具有高阻抗(小输入泄漏,例如CMOS)。

电平转换器

为了实现最快的速度、最低功耗和更好的信号电平,您可以使用电平转换器 IC,例如 74LVC8T245(8 位)或 74LVC1T45(1 位)。但它们成本高、占用空间,并且需要另外两个去耦电容器(原理图中未显示)。

通常电平转换器具有不同数量的输入/输出,它们也可以是双向的(由数据方向控制或自动)。

图 17. 电平转换器可提供最干净的信号,并具有最佳性能。但是,它会增加空间和成本。

优点:

  • 没有电流注入3.3V电源线。
  • 没有电流注入输入引脚。
  • 非反相输出(也有反相转换器)。
  • 无输出过载。
  • 非常高的带宽。
  • 信号水平良好。
  • 收发器的输出也可以被加载。
  • 静态功耗可忽略不计。

缺点:

  • 成本(电平转换器比一对电阻器或一个 MOSFET/二极管贵得多)。
  • 所需空间(特别是需要少量输入时)。

光耦合器/隔离器

当您需要连接两个独立的系统,或者需要在同一电路/系统的两个部分之间进行电气绝缘时,此技术尤其有用,推荐使用。处理远高于 5V(例如 24V)的电压时,它也非常有用。

请注意,这两个系统也可能共享同一接地,但是在这种情况下,您将失去它们之间的电气绝缘。

考虑到反相或非反相配置,共有 4 种变体。

在下面的示意图中,我们展示了一个带有晶体管输出的标准光耦合器。有些光耦合器已经提供了数字信号,在某些情况下,使用它们时不需要 Rpu(检查输出是否为开路集电极)。

最近,其他类型的隔离器也已面世。这些隔离器不是基于光学的,而是基于电容、巨磁阻或磁耦合。这些隔离器通常速度更快,但价格更昂贵。

在所有这些具有直接数字输出的光耦合器/隔离器中,只能使用反相和非反相配置的第一个版本(即,光耦合器连接在 3.3V 系统的输入和地之间)。

图 18. 使用光耦合器的两种非反相配置。请注意,如果光耦合器具有数字输出,例如 TLP2710(而不是原理图中所示的光电晶体管输出),则正确的非反相配置是第一个。在这种情况下,您还必须连接 VDD,并且不需要 Rpu。如果光耦合器具有数字输出但它是开路集电极(例如 TLP2719),则需要 Rpu。

图 19. 使用光耦合器的两种反相配置。请注意,如果光耦合器具有数字输出,例如 TLP2710(而不是原理图中所示的光电晶体管输出),则正确的反相配置是第一个。在这种情况下,您还必须连接 VDD,并且不需要 Rpu。如果光耦合器具有数字输出但它是集电极开路(例如 TLP2719),则需要 Rpu。

优点:

  • 两个系统之间的电气绝缘。它不仅提供了更好的噪声性能,而且还增加了系统的安全性。
  • 允许将任何电压水平转换为“任何”电压水平。
  • 通过正确选择地或电源(取决于配置),可以实现其他类型的电压转换(例如-12V...+12V到0...3.3V的转换)。

缺点:

  • 它需要一个光耦合器。
  • 标准光耦合器通常速度较慢。对于高数据速率,需要特殊的“高速”光耦合器。
  • 由于内部 LED,因此电流消耗相对较高。
  • 如果需要高带宽,则功耗会更高,因为如果需要较小的上升/下降时间,则 Rpu/Rpd 需要相当小。

结论

这些只是众多可能性中的一部分。

一旦想到,我们就会立即添加它们:)。

如果您需要将 3.3V 输出连接至 5V 输入,


打印