有没有双向 5v-3.3v 电平转换器?

电器工程 集成电路 界面 逻辑级
2022-01-29 13:25:50

是否有任何 IC 可将任何 3.3V 输入/输出接口连接到 5V 输出/输入?我主要需要它用于 Arduino Due,但如果有任何双向 IC 可以这样工作,那就太好了。

有人建议我使用 SN74AHC125 和 CD4050 IC,但我不明白它们是如何工作的或如何与它们交互。

4个回答

一个非常简单的双向电平转换器可以用一个 N-mosfet 制成:

在此处输入图像描述

使用的mosfet应该是具有低Vgs阈值的模型,以便它可以在预期的输入电压电平(本例中为3.3v)下具有相对较低的Rds-ON(导通电阻)。
在一个这样的示例中, BSS138的 Vgs-th 最大值为 1.5v,并且被指定具有低漏源电阻,Vgs 电压低至 2.5v(也可能略低)。

所示示例使用 3.3v <-> 5v 转换,但它也可以使用 2.5v <-> 3.3v 或 2.5v <-> 5v,甚至在 2.5v <-> 12v 之间。该范围仅受所用 MOSFET 特性的限制。

所示电路基于 NXP
AN97055 用于 I2C 总线和其他系统的双向电平转换器的应用说明
新的较短版本:AN10441 I2C 总线设计中的电平转换技术

当 L1 为高电平(3v3)或浮动时,R1 使 mosfet 保持关闭,因此 R2 将漏极侧拉高(至 5v)。

当 L1 被拉低时,mosfet 导通,漏极变低。

当向 H1 施加低电平 (0) 时,该电压通过衬底二极管传输到源极侧 (L1)

请注意电阻大小会影响速度(图片来源

在此处输入图像描述

替代晶体管解决方案 在此处输入图像描述


您可能会发现有用的相关文章:

由于问题似乎针对提供双向电平转换的 IC,因此请考虑德州仪器 TXB010x 系列器件:TXB0102有 2 个通道,TXB0104有 4 个通道,TXB0108有 8 个通道。

该系列 IC 的突出特点是自动检测信号方向,因此不需要单独的方向设置引脚。

高达 10 MHz 的开关速度可靠地工作。理论上的最大速度可能会更高——据我所知,数据表并没有明确说明这一点。

我有一个 TXB0108 在 3.6 伏 MSP430 Launchpad 和 5 伏 Arduino Nano 之间工作,因此涵盖了问题的用例。

出于试用目的,Adafruit 提供了一个包含 TXB0108 的预构建模块,它为您省去了焊接 SMD 部件的麻烦。他们或其他人可能有类似的 0102 和 0104 选项。

8通道双向逻辑电平转换器 - TXB0108

如果目的是对I2C 信号进行电平转换,这不适合 TXB 系列 IC,那么专门解决 I2C 的上拉电阻和集电极开路拓扑的选项是这样的模块,再次由 Adafruit 出售和其他供应商。

I2C 电平转换器

该模块以alexan_e 的答案中描述的方式使用BSS138 MOSFET虽然它不是问题所要求的单个 IC,但它可能实现了预期目的。或者,使用 MOSFET 自己构建这个电路也很简单。

您应该考虑的另一件事是您是否真的需要电平转换。许多芯片具有 5V 耐受输入引脚,即使在 3.3 等较低电压下运行时也是如此。atmega CPU 还将 arduino 的任何高于 0.6*Vcc 或 3V 的值解释为逻辑高电平,因此 3.3V 信号可以直接驱动 arduino 引脚而无需电平转换。

假设您使用的是 5V arduino 并且需要与 3.3V 部件通话,如果该部件具有 5V 容错输入(现在很多都可以),只需将它们连接起来就可以了。如果您的双向线路是集电极开路设计,例如 i2c,其中设备仅将线路拉低,则只需将上拉电阻连接到 3.3V 而不是 5V,一切都会正常工作。

否则,您需要做的就是确保线路不超过 3.3V,您可以使用电阻器和齐纳二极管来做到这一点,在 arduino 线路上放置一个电阻器,然后使用一个齐纳二极管将电压钳位到 3.3V。(来源:repetae.net齐纳电阻钳

您可能会想要过上危险的生活,只使用 10k 电阻,别无其他。这(有时!)起作用的原因是接收芯片内部有一个钳位二极管,可以将多余的电压分流到 vcc 或 3.3V。如果您尝试将整个 3.3V 线路拉至 5V,该二极管将烧坏(除了将该线路拉至 5V 造成的任何损坏),但是如果您使用 3.3V 线路,则电阻不会有太多电流流动有一个不平凡的负载它不会显着改变你的电源线的水平,但有很多警告。所以,一般来说,除非你有一个本地的、隔离的 3.3V 总线并且真的不能为齐纳二极管节省额外的两美分,否则不要这样做。我之所以提到它,是因为您会在 ebay 上获得的廉价分线板的原理图中看到它,并且可能会想复制它,只是不要让它溜过面包板进入生产设计。:)

编辑刚刚注意到您使用的是较新的 3.3V arduino,所以只需颠倒我上面所说的,齐纳电阻技巧仍然有效,尽管显然某些 i/o 线可能是 5v 耐受的,似乎存在一些分歧在论坛上。teensy 3.1 也是一个不错的小型 ARM 板,它具有所有 5V 容错引脚,并且成本不到应有的和设计更好的恕我直言http://www.pjrc.com/store/teensy31.html的一半

来自廉价[er?] 解决方案部门的 FET(来自基于 NXP appnote 的公认答案)可以替换为Silicon Labs AN883中的 BJT 和肖特基二极管。他们的原理图与其他东西有点复杂,所以我在这里提取了基本部分并重新调整了它的方向,使其看起来像接受的答案,以便于比较两个原理图:

在此处输入图像描述

BJT 仅在低-> 高方向上进行平移...与单晶体管电平上移器中讨论的完全一样。肖特基替代 FET 的体二极管进行高-> 低转换。

下面是他们对 3.3<->1.8V 转换器的放大范围测量;他们还提出了用于 5<->1.8V 转换等的原理图。在进行 3.3<->1.8V 转换时,MMBT3904 只有 150mV(饱和度)下降。BAS40 二极管在相反方向上有 350mV 的压降。这些偏移(显然)会影响转换器低端和高端的逻辑低电平输出。

在此处输入图像描述

他们的两面都有很好的 CMOS 器件,所以输入阻抗不是什么大问题。他们的 1V/div 迹线中的逻辑高边距没有明显的退化/偏移,所以我没有费心把它包括在这里。根据我从模拟中可以看出,他们设备的输入阻抗至少为 1Mohm。逻辑高裕量开始降低到低于 100K 输入阻抗左右。

此外,他们推荐这款基于 BJT 的转换器最高只能达到 300KHz 左右。

我不确定这些解决方案中的哪一个在实践中更便宜,FET 或肖特基 + BJT……但这个肯定需要更多的部件……除非您使用其中一种确实存在的二极管 + 晶体管封装,例如PZMT1101但是你还需要 3 个电阻。