单片机串口通信电平不匹配的解决电路

今天无意中,在网上看到这个电平匹配的电路,个人觉得有问题,说出来大家讨论下,另外我也做出来自己的解决电路,大家也看看有什么问题。
虽然也见了有人说直接连接或者中间加一个22Ω的电阻,隔一下就可以了,也不没见出什么事的。因为电平不同的原因,多少还是会缩短IC的使用寿命的。

如下图,这是在网上看到的电路图。

很显然,右边的是使用3.3V供电的IC,左边的是使用5.0V供电的IC。分析下这个电路:重点在使用了NMOS管这里。因为NMOS管的G极直接连接3.3V,所以,NMOS管肯定是导通的,再因为NOMS管的内阻非常低,且MOS管的有双向导通的特性,所以可以近似的认为上图等效为下图:


这个电路是不是很眼熟?这不就是相当于加了一个上拉电阻嘛!现在问可以看出问题了,相对于3.3V的IC,在串口上加的5.0V的上拉,这样是不是可以灌电流进去呢。
在看到这个问题后,想了想改善的方法,如下图:

只需在3.3V的TXD端加一个电阻和肖特基隔开即可。3.3V的IC发送端TXD发送高低电平,5.0V的IC接收端肯定是可以识别到的,大家可以看一下TTL和CMOS单片机的电平差别。重点说一下电阻和二极管的电路。因为3.3V的IC是接收端,5.0V是发送端。当发送的是“1”时,因为二极管的缘故,电流不能通过,3.3V有上拉电阻,所以接受到的肯定是“1”,当发送的是“0”,又因为使用的是肖特基二极管,压降0.2~0.3V的原因,所以,3.3V的IC接受到的电平就是在0.2~0.3V区间,参考一些3.3V供电的单片机,低电平都是这样描述的:VIL=0.4VDD,所以,就是表示当引脚处的电平低于0.4*3.3=1.3V的时候就认为是“0”,这样0.2~0.3V的电平那也肯定就是“0”了。所以这个电路还是可行的,也不会产生什么其他的问题。
以上是我个人的想法,欢迎拍砖。



猜你喜欢

转载自blog.csdn.net/cyb519/article/details/76263697