USB转串口 漏电给MCU,如何处理
参考资料:
http://bbs.21ic.com/icview-331251-1-1.html
http://bbs.21ic.com/icview-1262058-1-1.html
https://zhidao.baidu.com/question/1446506599856343620.html
问题:
PL2303(USB转串口)与MCU的串口连接,当掐断MCU电源后,MCU居然还在工作
原因:
(1) PL2303串口闲置时,TXD和RXD均是高电平(3.3V或5V),某些模块可能只有TXD是高电平
(2) 现代CMOS芯片,端口上基本都有保护二极管,串口TXD一端静态输出是高电平,通过上面的二极管串到目标板的电源系统上为其供电
(3) 有些低功耗MCU本身运行就非常省电,微弱的漏电也能使MCU正常运行
解决办法:
1、利用光耦隔离,但较慢光耦可能会影响通信,当波特率较高时,可能通信异常或失败。
2、利用二极管隔离USB转串口的TXD和MCU的RXD
(此法无法隔离PL2303的RXD与单片机的TXD)
分析:
A、PL2303 TXD高电平时,二极管截止,由于MCU RXD有上拉电阻(内部或外部),所以MCU RXD端也是高电平;
B、PL2303 TXD低电平时,由于MCU RXD有上拉电阻(内部或外部),所以二极管导通,导通后,由于拉电流的存在,RXD被拉低成低电平;
STC的datasheet里也有这个电路
3、利用三极管做隔离
简单的说,就是两级NPN三极管反相。这样的话PL2303的电绝对无法反灌给MCU。
这个方法可以防止USB转串口PL2303的TXD,RXD的反灌,而不仅仅是TXD。
缺点:整套电路电流会变大,因为三极管导通时,会有电流流向地。