本文主要是介绍接口电路设计——电流倒灌和电平转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
引言
接口电路的设计在电单片机应用场合中还是很重要的,因为如果接口电路没有设计好,严重就会烧芯片,或者烧芯片IO口,轻者就会导致工作紊乱,工作不正常。有时候这种问题自己在设计调试的时候根本发现不了,在批量生产或者用户在使用的时候才出现芯片被烧掉,或者IO口被烧掉。如果我们在设计的时候能考虑到接口的一些问题就可以减少,提高产品的可靠性。下面我们就从电流倒灌问题和电平匹配问题进行叙述。
电流倒灌
一、概念
倒灌就是电流流进IC内部,电流总是流入电势低的地方。比如说电压源,一般都是输出电流,但是如果有另一个电源同时存在,并且电势高于这个电源,电流就会流入这个电源,称为倒灌。
二、危害
1. 电流太大会将使IO口上的钳位二极管迅速过载并使其损坏。
2. 会使单片机复位不成功。
3. 会使可编程器件程序紊乱。
4.会出现闩锁效应。
三、原因
STM32的IO口框图
当两个单片机进行串口通信,如果其中一个单片机断电,另一个单片机继续供电,正常运行。那么没有断电的单片机的IO口给断电的单片机的IO口供电,并同通过上拉保护二极管向断电的单片机进行供电。或者说两个单片机供电电压不一样,电流就会从供电高的一方流向供电低的一方。
四、解决办法
串联限流电阻
如图2加一个小电阻,可以防止过流损坏二极管D1。还可以进行阻抗匹配,因为信号源的阻抗很低,跟信号线之间阻抗不匹配,串上一个电阻后,可改善匹配情况,以减少反射,避免振荡等。也可以减少信号边沿的陡峭程度,从而减少高频噪声以及过冲等。但不能解决灌流在Vcc上建立电压。一般情况下就会选择串电阻,取值范围是几欧到1K欧,根据实际情况而定,小编我喜欢取330欧。
串联反向二极管
在信号线上加二极管D3及上拉电阻R1,D3用于阻断灌流通路,R1解决前级输出高电平时使G1的输入保持高电平。此方法既可解决灌流损坏二极管D1的问题,又可解决灌流在Vcc上建立电压。缺点只适用于速率不快的电路上。如果单片机IO口比较脆弱,或者两边电压不也一样需要低成本进行电平转换,且是但一方向,速率比较低(比如串口)的时候就可以选择该方案。二极管要选择肖特基二极管才比较好
电平转换
在电路设计过程中,会碰到处理器MCU的I/O电平与模块的I/O电平不相同的问题,为了保证两者的正常通信,需要进行电平转换。如果两边的电平不一样就直接连接进行通信,像TTL电平就会出现上一节将的那样电流倒灌现象。
设计电平转换电路需要几个问题:
(1)VOH>VIH;VOL<vil
各种电平的电压范围
(2)对于多电源系统,某些器件不允许输入电平超过电源电压,针对有类似要求的器件,电路上应适当做些保护。
(3)电平转换电路会影响通信速度,所以使用时应当注意通信速率上的要求。
1.NPN三极管电平转换
三极管电平转换电路
这个电平转换就是两级三极管电路组成。三极管只能单向进行转换,而且元器件比较多。
2.NMOS电平转换
NMOS电平转换电路
该电路可实现双向传输,使用条件是VCC2>VCC1+0.7V,这个电路也是小编我常用的电路。其工作过程是:
Port1向Port2传输
(1)Port1高电平时,NMOS的Ugs=0V截止,Port2端的电压为VCC2高电平。
(2)Port1低电平时,NMOS的Ugs=3.3V导通,Port2端的电压为Port1端的电压低电平。
Port2向Port1传输
(1)Port2高电平时,NMOS的Ugs=0V截止,Port1端的电压为VCC1--高电平。
(2)Port2低电平时,NMOS的体二极管导通,使得Vs的电压为0.7V左右,那么Ugs=VCC1-0.7V,只要选择的开启电压小于Ugs电压就可以让MOS管导通,Port1端的电压为Port2端的电压--低电平。
3. 使用专用电平芯片转换电平
使用专用的电平转换芯片,分别给输入和输出信号提供不同的电压,转换由芯片内部完成,例如PCA9306DCTR等电平转换芯片。专用芯片是最可靠的电平转换方案。
专用电平转换芯片
优势:
1) 驱动能力强:专用芯片的输出一般都使用了CMOS工艺,输出驱动10mA不在话下。
2) 漏电流几乎为0:内部是一些列的放大、比较器,输入阻抗非常高,一般都达到数百K。漏电流基本都是nA级别的。
3) 路数较多:专用芯片针对不同的应用,从2路到数十路都有,十分适合对面积要求高的场合。
4) 速率高:专用芯片由于集成度较高,工艺较高,,速率从数百K到数百M的频率都可以做。
劣势:
1) 成本:专用芯片集众多优势于一身,就是成本是最大的劣势,一个普通的数百K速率的4通道电平转换芯片,价格至少要1元人民币以上,如果使用三极管做,成本2毛钱都不到。
这篇关于接口电路设计——电流倒灌和电平转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!