本人设计了USB转串口电路,其硬件连接为:底层目标板(A板)---------UART-------usb转串口板(使用STM32芯片,B板)----------USB线---------PC机。
A板使用220V供电;B板使用PC机的USB供电;A、B板的连接为三线(Tx、Rx、GND,未隔离); A、B板、pc机三者共地;在PC机上使用了ST官方提供的驱动;
调试过程:用串口调试助手打开虚拟串口,PC机向A板发送数据,并能接收到A板发送的数据。保持虚拟串口打开,对A板进行断电处理,理论上来说,应该是能够继续收发数据。
问题产生:尝试多次后,串口调试助手会提示:串口打开失败,然后,虚拟串口就一直无法打开。观察设备管理器,发现虚拟串口还能识别(设为com2),可以确定STM32芯片没有重启,或者跑飞。
重新插拔USB之后,串口可以打开,与A板通信正常,再将A板断电多次后,会再次出现串口打开失败。
问题分析:可能是地线对PC机产生干扰信号,导致电脑虚拟串口断开(不知道是否分析正确),曾经做过实验,发现在A、B板之间加光耦隔离后效果会好很多
请教:有没有方法在PC机软件上操作,使得USB断开后重新连接(对驱动程序或者操作系统?)。或者硬件上解决这个干扰?我的USB硬件设计部分见附件
USB.rar (54.54 KB)