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


27

是否有可将任何3.3V输入/输出连接到5V输出/输入的IC?我主要在Arduino Due上需要它,但是如果有像这样的双向IC会很好。

有人建议我使用SN74AHC125和CD4050 IC,但我不了解它们的工作方式或接口。


2
预期的频率范围是多少?
alexan_e 2014年

1
例如,假设我想将5V设备连接到3.3V arduino。我不知道在哪里连接5V输出和3.3V输入。那么从arduino输出3.3V到5V设备呢?您所说的频率范围是什么意思?
3bdalla 2014年

1
我不确定我是否明白你的意思,我以前没有处理过频率,我的目的是用于简单的电子设备:|
3bdalla 2014年

3
sparkfun有一块板,称为“电平转换器”
geometrikal

1
通常,我使用得克萨斯仪器的IC。TXS和TXB系列具有双向电压转换器(例如TXS0102具有两个通道)
frarugi87

Answers:


44

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

在此处输入图片说明

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

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

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

当L1为高电平(3v3)或悬空R1时,MOSFET保持截止状态,因此R2将漏极侧拉高(至5v)。

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

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

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

在此处输入图片说明

替代晶体管解决方案 在此处输入图片说明


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


11

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

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

高达10 MHz的开关速度可靠地工作。理论上的最大速度可能更高-根据我的判断,数据表对此并不明确。

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

为了进行试验,Adafruit提供了一个包含TXB0108预构建模块,从而节省了焊接SMD零件的麻烦。0102和0104可能有其他类似的选项。

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

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

I2C电平转换器

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


+1很高兴找到!...您到TXB0102的链接实际上是TXS0102的链接。我尚未确定差异,但是TXS0102的数据表中指出了这一点:“它的主要目标应用程序是用于与I2C或1-wire等数据I / O上的漏极开路驱动器接口。 TXS0102是双向的,没有可用的控制信号。TXS0102还可以用于将推挽驱动器连接到数据I / O的应用中,但TXB0102对于此类推挽应用可能是一个更好的选择。” 下面是实际的链接TXB0102

@Tut糟糕,滑倒,谢谢。TXB0108满足了我自己的需求,因此其他人对我来说更像是一个“不错的了解”。:-)
Anindo Ghosh 2014年

10

您应该考虑的另一件事是,您是否真的需要电平转换。即使在较低的电压(例如3.3)下运行,许多芯片也具有5V耐压输入引脚。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总线,否则真的不能为齐纳管多花2美分。我之所以只提它,是因为您会在原理图上看到它,因为它是在ebay上买到的便宜便宜的分线板,可能会想要复制它,只是不要让它越过面包板进入生产设计。:)

编辑只是注意到您正在使用更新的3.3V arduino,所以只要反转我上面所说的,尽管显然某些I / O线路可能耐受5v电压,但齐纳电阻技巧仍然可以使用,似乎有些分歧在论坛上。Teensy 3.1还是一个不错的小型ARM板,具有所有5V耐压引脚,不到适当设计更好的恕我直言的成本的一半,http: //www.pjrc.com/store/teensy31.html


3

从便宜的解决方案部门,可以像在Silicon Labs AN883中那样,用BJT和肖特基二极管代替FET(根据基于恩智浦应用笔记的公认答案)。他们的原理图与其他事物有些复杂,因此我在这里提取了必要的部分,并对其进行了重新定向,因此看起来像在接受的答案中,可以轻松比较两个原理图:

在此处输入图片说明

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还是Schottky + BJT ...,但是这肯定需要更多的零件...除非您使用确实存在的那些二极管+晶体管封装之一,例如PZMT1101。但您还需要3个电阻。


与基于FET的方法相比,此方法的预期电流消耗/功耗是多少?
KyranF

@KyranF:我没有将它们进行比较,但是如果您担心由于引体向上而使其中任何一个都不乐观。低功耗CMOS版本看起来像m.eet.com/media/1103155/Fig2.gif这是来自eetimes.com/document.asp?doc_id=1231111,这是比较各种方法的好文章。
Fizz

感谢您的链接。我猜想,在基础饱和的时候,BJT方法的功率会很高。对于任何设计,尤其是电池供电的设计,上拉电阻的恒定负载确实令人担忧。
KyranF

@KyranF:我已经在仿真中对其进行了研究:晶体管和二极管的功耗为uW,而电阻器的功耗为mW。实际上,BJT的功耗约为100uW,二极管的功耗为1uW。FET或BJT在这里无关紧要...重要的是要接地的电阻以实现静态耗散。输入阻抗为1Meg。
Fizz

@KyranF:我尝试使用ON的BSS138LT1模型,但是这给LTspice(-63uW)带来了平均负功率耗散...所以我认为他们的模型可能有问题。垃圾进垃圾出。当从高端驱动时,它也开始振荡(频率远高于信号)。它是一个subckt模型,而不是简单的MOS模型,因此很难弄清楚发生了什么。[续]
Fizz,2015年

2

好吧,有很多。您需要指定最大频率是多少,需要多少位,等等。总之,您可以使用任何电压电平转换器IC。德州仪器(TI)具有用于同一目的的简洁选择工具:http ://www.ti.com/logic/docs/translationresults.tsp?sectionId=458&voltageIn=5.0&searchDirection=2&voltageOut=3.3# voltintf


2

另外,如果您正在寻找良好的电气隔离以及双向电平转换功能,则建议使用ISO1541。它相当便宜,并且通过隔离提供了良好的保护。



1

最简单的解决方案是在3.3V电压下运行所有​​电路。HC芯片将很高兴在该级别上运行。

如果无法做到这一点,当您将自己局限于一个方向时,可以使事情变得简单得多。电压为5V的HCT芯片可以接受3.3V的电压,而简单的两电阻分压器可以将5V降低至3.3V。一些uC的引脚可以承受5V的电压,因此您不需要分压器。如果在引脚上放置5V上拉电阻,并在接地和开路(=输入)之间切换,那么您将获得0-5V的可通过输出。

对于耦合集电极开路总线(I2C,达拉斯1线制),BS138技巧是一个可行的方法。有一些用于I2C的小芯片,可将两个FET放在一个外壳中。(PCA9306等)

但是,如果您真的想进行双向电平转换:确实存在此类芯片,请检查TXB0108。


-4

一个简单的解决方案是使用SN74LVC244AN。可以用3V3供电,输入端的容差为5V。


5
那不是双向的。
马特·杨

不可以,但74LVC4245可以。
Bregalad
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.