这个电路是怎么实现串口的电平转换的呢?

核心提示这个电路是可以实现单片机串口引脚电平与接口电路电平的转换。上面的电路,输入为TXD的发送电平,当TXD为高电平时,Q1截止,则单片机的接收脚MCU_URXD脚电压为VCC_IO。当TXD为低电平,接近于0V,Q1饱和导通,则MCU_URXD

这个电路是可以实现单片机串口引脚电平与接口电路电平的转换。上面的电路,输入为TXD的发送电平,当TXD为高电平时,Q1截止,则单片机的接收脚MCU_URXD脚电压为VCC_IO。当TXD为低电平,接近于0V,Q1饱和导通,则MCU_URXD也为低电平,0V。下图,原理与上图相同。只是由单片机转换成接口电平。当单片机发送脚MCU_UTXD为高电平时,Q2截止,输出端RXD电压为VIO28。当MCU_UTXD为低电平0V,Q2饱和导通,输出端RXD电压为VIO28。故实现了双向转换。

5V和3.3V电平转换

在通用的电子器件设备中,TTL和CMOS电路的应用非常广泛。但是面对现在系统日益复杂,传输的数据量越来越大,实时性要求越来越高,传输距离越来越长的发展趋势,掌握高速数据传输的逻辑电平知识和设计能力就显得更加迫切了。

1 几种常用高速逻辑电平

1.1LVDS电平

LVDS(Low Voltage Differential Signal)即低电压差分信号,LVDS接口又称RS644总线接口,是20世纪90年代才出现的一种数据传输和接口技术。

LVDS的典型工作原理如图1所示。最基本的LVDS器件就是LVDS驱动器和接收器。LVDS的驱动器由驱动差分线对的电流源组成,电流通常为3.5 mA。LVDS接收器具有很高的输入阻抗,因此驱动器输出的大部分电流都流过100 Ω的匹配电阻,并在接收器的输入端产生大约350 mV的电压。当驱动器翻转时,它改变流经电阻的电流方向,因此产生有效的逻辑“1”和逻辑“0”状态。

LVDS技术在两个标准中被定义:ANSI/TIA/EIA644 (1995年11月通过)和IEEE P1596.3 (1996年3月通过)。这两个标准中都着重定义了LVDS的电特性,包括:

① 低摆幅(约为350 mV)。低电流驱动模式意味着可实现高速传输。ANSI/TIA/EIA644建议了655 Mb/s的最大速率和1.923 Gb/s的无失真通道上的理论极限速率。

② 低压摆幅。恒流源电流驱动,把输出电流限制到约为3.5 mA左右,使跳变期间的尖峰干扰最小,因而产生的功耗非常小。这允许集成电路密度的进一步提高,即提高了PCB板的效能,减少了成本。

③ 具有相对较慢的边缘速率(dV/dt约为0.300 V/0.3 ns,即为1 V/ns),同时采用差分传输形式,使其信号噪声和EMI都大为减少,同时也具有较强的抗干扰能力。

所以,LVDS具有高速、超低功耗、低噪声和低成本的优良特性。

LVDS的应用模式可以有四种形式:

① 单向点对点(point?to?point),这是典型的应用模式。

② 双向点对点(point?to?point),能通过一对双绞线实现双向的半双工通信。可以由标准的LVDS的驱动器和接收器构成;但更好的办法是采用总线LVDS驱动器,即BLVDS,这是为总线两端都接负载而设计的。

③ 多分支形式(multidrop),即一个驱动器连接多个接收器。当有相同的数据要传给多个负载时,可以采用这种应用形式。 ④ 多点结构(multipoint)。此时多点总线支持多个驱动器,也可以采用BLVDS驱动器。它可以提供双向的半双工通信,但是在任一时刻,只能有一个驱动器工作。因而发送的优先权和总线的仲裁协议都需要依据不同的应用场合,选用不同的软件协议和硬件方案。

为了支持LVDS的多点应用,即多分支结构和多点结构,2001年新推出的多点低压差分信号(MLVDS)国际标准ANSI/TIA/EIA 8992001,规定了用于多分支结构和多点结构的MLVDS器件的标准,目前已有一些MLVDS器件面世。

LVDS技术的应用领域也日渐普遍。在高速系统内部、系统背板互连和电缆传输应用中,驱动器、接收器、收发器、并串转换器/串并转换器以及其他LVDS器件的应用正日益广泛。接口芯片供应商正推进LVDS作为下一代基础设施的基本构造模块,以支持手机基站、中心局交换设备以及网络主机和计算机、工作站之间的互连。

1.2ECL电平

ECL(EmitterCoupled Logic)即射极耦合逻辑,是带有射随输出结构的典型输入输出接口电路,如图2所示。

ECL电路的最大特点是其基本门电路工作在非饱和状态,因此ECL又称为非饱和性逻辑。也正因为如此,ECL电路的最大优点是具有相当高的速度。这种电路的平均延迟时间可达几个ns数量级甚至更少。传统的ECL以VCC为零电压,VEE为-5.2 V电源,VOH=VCC-0.9 V=-0.9 V,VOL=VCC-1.7 V=-1.7 V,所以ECL电路的逻辑摆幅较小(仅约0.8 V)。当电路从一种状态过渡到另一种状态时,对寄生电容的充放电时间将减少,这也是ECL电路具有高开关速度的重要原因。另外,ECL电路是由一个差分对管和一对射随器组成的,所以输入阻抗大,输出阻抗小,驱动能力强,信号检测能力高,差分输出,抗共模干扰能力强;但是由于单元门的开关管对是轮流导通的,对整个电路来讲没有“截止”状态,所以电路的功耗较大。

如果省掉ECL电路中的负电源,采用正电源的系统(+5 V),可将VCC接到正电源而VEE接到零点。这样的电平通常被称为PECL(Positive Emitter Coupled Logic)。如果采用+3.3 V供电,则称为LVPECL。当然,此时高低电平的定义也是不同的。它的电路如图3、4所示。其中,输出射随器工作在正电源范围内,其电流始终存在。这样有利于提高开关速度,而且标准的输出负载是接50Ω至VCC-2 V的电平上。

在使用PECL 电路时要注意加电源去耦电路,以免受噪声的干扰。输出采用交流耦合还是直流耦合,对负载网络的形式将会提出不同的需求。直流耦合的接口电路有两种工作模式:其一,对应于近距离传送的情况,采用发送端加到地偏置电阻,接收端加端接电阻模式;其二,对应于较远距离传送的情况,采用接收端通过电阻对提供截止电平VTT 和50 Ω的匹配负载的模式。以上都有标准的工作模式可供参考,不必赘述。对于交流耦合的接口电路,也有一种标准工作模式,即发送端加到地偏置电阻,耦合电容靠近发送端放置,接收端通过电阻对提供共模电平VBB 和50 Ω的匹配负载的模式。

(P)ECL是高速领域内一种十分重要的逻辑电路,它的优良特性使它广泛应用于高速计算机、高速计数器、数字通信系统、雷达、测量仪器和频率合成器等方面。 1.3CML电平

CML电平是所有高速数据接口中最简单的一种。其输入和输出是匹配好的,减少了外围器件,适合于更高频段工作。它的输出结构如图5所示。

CML 接口典型的输出电路是一个差分对形式。该差分对的集电极电阻为50 Ω,输出信号的高低电平切换是靠共发射极差分对的开关控制的。差分对的发射极到地的恒流源典型值为16 mA。假定CML的输出负载为一个50 Ω上拉电阻,则单端CML输出信号的摆幅为VCC~VCC-0.4 V。在这种情况下,差分输出信号摆幅为800 mV。信号摆幅较小,所以功耗很低,CML接口电平功耗低于ECL的1/2,而且它的差分信号接口和 ECL、LVDS电平具有类似的特点。

CML到CML之间的连接分两种情况:当收发两端的器件使用相同的电源时,CML到CML可以采用直流耦合方式,不用加任何器件;当收发两端器件采用不同电源时,一般要考虑交流耦合, 中间加耦合电容(注意这时选用的耦合电容要足够大,以避免在较长连0 或连1 情况出现时,接收端差分电压变小)。

最近对ESP32的开发板玩的比较多,相对于Arduino UNO,它原生支持wifi和蓝牙,并且有更多特性。但是最大的问题是ESP32的GPIO使用的是3.3V电压,而我手头上大部分配件都是Arduino的5V标准。

对于一些模拟设备,直接用3.3V驱动5V最多也就是亮度不够,功率低一些而已。但是对于数字设备就可能造成电平不匹配,导致有时候能工作,有时候不行,或者工作的不正常。这就需要5V和3.3V的电平转换模块来实现。

网上搜索到一些DIY的电平转换电路,基于MOSFET来实现的,由于我只是业余爱好者,对于MOSFET这种设备并不熟悉,MOSFET的型号众多,电压、切换频率等等都会影响到最终的效果。因此,我不打算自己DIY这样的模块,于是打开了万能的淘宝,下单了两个转换芯片:一个两路的TXS0102和一个8路的SN74LVC4245A。

这两个模块使用起来非常简单,每个模块都分成左右两个部分,分别代表两个电平的输入和输出端,一边接5V电源和设备,另一边接ESP32的3.3V电源和GPIO引脚。正常工作时,A1到An与B1到Bn相当于一一对应连接在一起的一根导线,只是它们高电平采用的电压不同。

OE这个引脚用于控制芯片的工作状态,两个IC的定义不同,TXS0102是高电平表示工作,接VCA端的高电平;而SN74LVC4245A是低电平表示工作,接地即可。

还有一个要注意的是,TXS0102左侧VCA应该连接3.3V的低电压,右侧VCB连接5V的高电压;而SN74LVC4245A又是正好相反,左侧VCA连接5V高电压,右侧VCB连接3.3V低电压。

另外,8路的SN74LVC4245A还有一个DIR引脚,用于控制电流的方向,接地表示从VCB到VCA,接高电平(VCA)表示从VCA到VCB。

现阶段仅仅试着驱动了一个WS2812的灯条,工作正常 LOL

PS:发过来的芯片排针是分开没有焊接的,由于没焊接经验,自己随便焊的。在焊接那个小板子的时候,温度过高导致排针上的塑料融化了,排针从上面被焊锡带出来一部分,失败了。幸好8路的模块没问题,以后有机会还是要练习一下焊接技能。。。

发布于 Medium

 
友情链接
鄂ICP备19019357号-22