一、应用场景
当两个不同供电电压的模块进行通信时,通信引脚会由于电平不匹配,从而通信传输错误,甚至产生电流倒灌,损坏芯片。例如5V或3.3V供电的MCU与蓝牙、4G模块进行通信时就需要进行电平转换。
二、典型电路
1.分压电阻构成的电平转换电路
工作原理:
如图8所示R2和R3构成分压,图中RXD端口电压=5V*2K/(1K+2K)≈ 3.3V。单片机的的TXD直接和终端设备的RXD之间没有分压,只是加一个电阻限流。
注意事项: 终端设备的高电压最小阈值应该小于等于3.3V。
优势:
(1)便宜:便宜是最大的优点,2个电阻一分钱不到;
(2)容易实现:电阻采购容易,占用面积小。
缺点:
(1)速度:分压法为了降低功耗,使用K级别以上的电阻,加上电路和器件的分布和寄生电容,会对信号的上升和下降时间产生不利影响,速率很难上去,一般只能应用于100K以内的频率。
(2)驱动能力:由于使用了大阻值的电阻,驱动能力被严格控制,并不适合需要高驱动能力的场合,例如LED灯等。
(3)电源依赖性: 分压电阻电路对电源电压的稳定性有一定的依赖性,如果电源电压波动较大,可能影响电平转换的准确性。
(4)对输入输出阻抗敏感: 由于分压电阻电路的输入阻抗会影响整个电路的性能,对输入和输出设备的阻抗匹配要求较高。
2.限流电阻构成的电平转换电路
工作原理:
如图9使用一个电阻限流的办法,实现两个不同电平之间的转换。具体的现实原理就是利用芯片的输入电流不超过某个值,例如使用的终端设备输入电流值不能超过20mA,即可认为是安全的,如果是5V转3.3V,需要电阻R1>(5-3.3V)/20mA=85Ω,选择一个1K的电阻,则认为是安全的。因为芯片内部是可以等效一个负载电阻RL,与R1构成分压的关系。
优点:
(1)便宜:便宜是最大的优点,只需要一个电阻就可以解决。
(2)容易实现:电阻采购容易,占用面积小。
缺点:
使用电阻限流法需要十分熟悉芯片内部的构成,而且还要考虑限流后的电压范围。
3.二极管构成的单向电平转换电路
工作原理:
当输入端 3.3V_IN 为低电平时,D1导通,输出端 1.8V_OUT 为低电平,实现两端都为低电平。
当输入端 3.3V_IN 为高电平时,D1截止,输出端 被 R1 上拉至 1.8V ,为高电平,实现两端都为高电平。
优点:
(1)漏电流小:由于二极管的漏电流非常小(uA级),可以防止电源倒灌。
(2)容易实现:二极管、电阻采购容易,占用面积小。
缺点:
(1)电平误差大:主要是二极管的正向压降较大,容易超出芯片的工作电压范围,低电平为二极管压降,所以尽量选择肖特基二极管。
(2) 不适用于高速信号:二极管的导通和截止时间可能引起信号失真。
(3) 非双向:只能将一个方向的信号进行转换。如果需要双向转换,可能需要使用更复杂的电平转换电路或其他器件。
(4)不适用于长距离通信:二极管电平转换更适用于短距离通信,对于长距离的信号传输来说,信号衰减和失真可能变得更为显著。
应用:
工作原理:
如图6中单片机的RXD为3.3V, 终端设备的TXD为5V。当终端设备输出为5V信号时,二极管D1不通,RXD通过上拉电阻R1被拉到单片机可接受的3.3V电平;当终端设备输出为低时,二极管D1导通,RXD通过二极管被拉至低电平,不过此时的低电平为二极管的正向导通压降,这个值一定要在单片机所能识别的低电平范围之内。
注意事项:
(1)终端设备RXD和单片机TXD直接连接的,所以终端设备能识别的高电平的最小阈值应该小于等于3.3V。
(2)单片机所能识别的低电平最大阈值应该大于等于二极管的管压降。
(3)考虑通信速率与低电平电压幅值,二极管选用高速肖特基二极管,并且VF尽量小。
4.三极管构成的单向电平转换电路
电路一:
工作原理:
当输入端为 低电平 0V的时候,三极管导通,输出端 与输入端导通,输出端被拉低到接近0V,实现两端都为低电平。
当输入端为 高电平的时候,三极管截止, 输出端 靠着上拉电阻(上图中的 R17、R19),变成高电平,实现两端都为高电平。
注意事项:
上图基区电压给 VDD_MCU 或者 VDD_EXT 都是可以的。但是下面部分的电路三极管基区的电压必须是 VDD_EXT 。
基极电阻:2kΩ~10kΩ。串口工作速率越大,电阻值越小
集电极电阻:4.7kΩ~10kΩ。串口工作速率越大,电阻值值越小。
电路二:
速率高时给基极加加速电容
工作原理:
当输入 S_IN 为低电平时,三极管 Q1关断,三极管 Q2 基极为高电平,导致 Q2 导通,输出端 S_OUT被拉低,实现两端都为低电平。
当输入 S_IN 为高电平 (VDD_EXT) 时,三极管 Q1 导通,三极管Q2关断,输出端 S_OUT 被 R4 拉高到 VDD_MCU,实现两端都为高电平。
优点:(1)便宜:三极管常见并且容易采购,价格低廉。
(2)驱动能力强:驱动能力取决于三极管,可以做到数十mA;
(3)漏电流低:IN 和OUT两者之间的漏电流较小(uA级别),几乎可以忽略不计。
缺点:(1)速度:两级三极管属于电流驱动型,加上电路和寄生电容,转换后的波形不是十分理想。一般只能用于100K以内的信号转换。
(2)器件多:同相转换需要2个三极管以及配套的电阻,多路转换时占用空间较多。
5.MOS管构成的双向电平转换电路
工作原理:
从左向右看
当 S1A 为高电平 (VCC_S1) 时候,MOS管 VGS = 0, NM1 不导通,S2A 处电平被 R11 上拉为高电平(VCC_S2),S2A也为高电平。两端都为高电平。
当 S1A 为低电平 时候,MOS管 VGS = VCC_S1, NM1 导通,S2A 的电平与 S1A相等,为低电平。两端都为低电平。
从右向左看
这里说明一下开漏输出,由于有上拉电阻,所以没有外部影响的正常情况下,S1A 和 S2A 默认都会是高电平。
当 S2A 为高电平 (VCC_S2) 时候:
假设左侧 S1A 为高电平(因为是开漏输出,所以左侧一般来说被 R10 上拉至高电平 (VCC_S1),除非线上有低电平拉低,这里我们仍然分两种情况讨论),MOS管 VGS = 0, NM1 不导通,左侧依然被R10 上拉至高电平 (VCC_S1)。两端都为高电平。
假设左侧 S1A 为低电平(正常不会发生,原因就是开漏输出),MOS管 VGS = VCC_S1, NM1 导通,S2A 为高电平,所以会导致 S1A 电压上升,等 S1A 上升到 VCC_S1 的时候,NM1 截止,两端都变成高电平(除非开始使得 S1A 为低电平的外界因数一直存在,这是外部的问题不做过多讨论)。
当 S2A 为低电平时候:
正常情况下左侧 S1A 为高电平(VCC_S1),MOS管 VGS = 0, NM1 不导通,但是由于 MOS 管的寄生二极管,会把 S1A 下拉至低电平(这个低电平不是0V,是比 S2A 高一个二极管压降,比如 0.7V),那么VGS =(VCC_S1 – 0.7V),使得 NM1导通,导通以后,那么 S1A 和 S1B 基本相等,两端都为低电平。
如果 S1A 开始就为低电平(正常不会发生),MOS管 VGS = VCC_S1, NM1 导通,S2A 的电平与 S1A相等,为低电平。两端都为低电平。
优点:(1)适用于低频信号电平转换,价格低廉。
(2)导通后,压降比三极管小。
(3)正反向双向导通,相当于机械开关。
注意事项:
1.该电路只能用于收发双方都是开集(Open Collector, OC)或开漏(Open Drain, OD)结构输出的双向信号线。比如常见的*I2C通讯*。
2.MOS管的S极要接到低电源那边,不能接反,VCC_S1 <= VCC_S2。
3.MOS管导通电压门限(Vth(GS)里面的最大值)需要小于低电源电压。
如图是2N7002的NMOS管的部分参数表,1V<Vgs<2.5V。如果5V和3.3V之间的互转,可以用这个MOS管。但如果是3.3V和1.8V之间的互转,就不能使用这个管子。因为导通门限电压是1~2.5V。因为可能会用到导通电压大于1.8V的器件,这样MOS管可能永远无法导通了。
4.低电平指等于或接近0V;高电平指等于或接近电源电压。所以3.3V电压域的器件,其高电平为等于或接近3.3V;5V电压域的器件,其高电平为等于或接近5V。具体要求看芯片的数据手册是怎么说明这个限定范围的,常见的比如说0.3倍的“芯片供电电压”以下为低电平,0.7倍的“芯片供电电压”以上为高电平。也就是说“芯片供电电压”为5V的时候,5 x 0.3 = 1.5V 以下为低电平,5 x 0.7 = 3.5V 以上为高电平。
6.电平转换芯片构成的双向电平转换电路
工作原理:
如图7使用专用的电平转换芯片进行电平转换,电平转换芯片为不同电压域之间的数据通讯及控制提供了方便。例如芯片TXB0102,作为一款双电源供电的双向电平转换芯片,通过检测外部端口的驱动电流来判别转换方向,因此不需要外部的方向控制管脚来选择控制器件转换的方向。因此在使用它时非常省事,软件上也无需考虑去更改它的转换方向。
优点:
(1) 驱动能力强:专用芯片的输出一般都使用了CMOS工艺,输出电流可以达到几十mA。
(2)漏电流几乎为0:内部是一些放大、比较器,输入阻抗非常高,一般都达到数百K;漏电流基本都是nA级别的。
(3) 路数较多:专用芯片针对不同的应用,从2路到数十路都有,十分适合对面积要求高的场合。
(4)速率高:专用芯片由于集成度较高,工艺较高,速率从数百K到数百M的频率都可以做。
缺点:
成本:专用芯片集众多优势于一身,但成本是最大的劣势,一个普通的数百K速率的4通道电平转换芯片,价格至少要1元人民币以上,如果使用三极管做,成本2毛钱都不到。
三、总结
上述几种电平转换方法是比较常见的方法,电平转换主要考虑以下几个方面:
(1)电平匹配:这个是前提,转换后的电平需要在对方可承受的范围之内。
(2)漏电流:两者之间不但电平要匹配,漏电流还不能互相影响。使用二极管电平转换做RS485输出,可能会出现外部设备的漏电流过来影响内部设备的开机,而且内部的设备启动时输出一堆乱码,影响对方正常工作。
(3)驱动能力:电平转换以后还要考虑驱动能力,例如I2C电平转换后,挂载多个I2C设备就需要考虑驱动能力的问题。
(4)速度:理论上,所有的电平转换都是有速度牺牲的,速度最优的方案是专用电平转换芯片,其次是三极管方案,最差的就是电阻分压方案。
(5)成本:在电路设计中除了考虑功能的要求外,还要兼顾下成本。
(6)路数:太复杂的转换方案不适合多路数的情况,会占据太多的面积。