重新插拔USB连接线通讯又正常

[复制链接]
1182|18
 楼主| pangb 发表于 2019-12-15 19:12 | 显示全部楼层 |阅读模式
有一个USB设备,采用的是Cypress公司的EZUSB芯片,驱动采用的是他自带的EzUsb.sys。一般情况下我的设备通讯良好,但是如果电气上有干扰,如开关某些电气设备,经常发生通讯中断的情况。我的应用程序再也不能从EzUsb.sys取得数据,我发送ResetPipe、AbortPipe等都无法使通讯正常(我不能确认有没发送成功)。但是只要我重新插拔USB连接线,通讯又正常了。
chenjunt 发表于 2019-12-15 19:15 | 显示全部楼层
电气上、驱动程序或者应用程序去解决
zyf部长 发表于 2019-12-15 19:19 | 显示全部楼层
通讯怎么传输的?
 楼主| pangb 发表于 2019-12-15 19:22 | 显示全部楼层

通讯时,采用的是批量传输,64字节的包。出现这种情况时,USB设备并没有死机,仍然在运行的,只不过无法通讯了。
kangzj 发表于 2019-12-15 19:24 | 显示全部楼层

换成高质量经认证的USB电缆(至少是移动硬盘用的)从供电电源上想辙,如果是开关电源,换成模拟电源试试(变压器调压那种)供电电源插座上带滤波电路;直流供电线上用抑制噪声的器件
zwll 发表于 2019-12-16 21:30 | 显示全部楼层
电路板的电源线上加EMC器件;电路板布线用四层,按照CYPRESS USB板的要求布线,机箱屏蔽,换成经EMC测试的机箱;公共端接地
juventus9554 发表于 2019-12-16 21:37 | 显示全部楼层

嗯,你用的全速通讯,与评估板相比,是否在电路上省略了器件,比如USB线上的EMC器件;
再多的,就是EMC,参看村田等公司的设计要求。
stly 发表于 2019-12-16 21:40 | 显示全部楼层

可以在程序中加入保护啊。。。当通讯失败,从新启动   就可以了。。
软件reset。
 楼主| pangb 发表于 2019-12-16 21:43 | 显示全部楼层

我的软件不允许重新启动,只能通过驱动程序或者应用程序后台恢复通讯。
不知怎么样实现软件reset呢?
dingy 发表于 2019-12-16 21:45 | 显示全部楼层

硬件可靠性必须得到保证
renyaq 发表于 2019-12-16 21:48 | 显示全部楼层

查线路,对应芯片datasheet增加保护电路。
最好拿分析仪器抓到问题点分析。
supernan 发表于 2019-12-16 21:49 | 显示全部楼层

如果不是high   speed,d+,d-上应该是有电容滤波保护的。
xxrs 发表于 2019-12-16 21:52 | 显示全部楼层
换个非USB的产品,USB产品在这块上是绝对弱项,没有跟治办法。
chenjunt 发表于 2019-12-16 21:54 | 显示全部楼层

也可考虑解决硬件上的干扰问题
供电电源抗干扰性差,在开关其它设备时被冲击,给你的设备提供一个好的电源
morrisk 发表于 2019-12-16 21:58 | 显示全部楼层

换个屏蔽好的USB连接
zyf部长 发表于 2019-12-16 22:02 | 显示全部楼层

有些USB设备,断开后,即使关机重启都不管用。
kangzj 发表于 2019-12-16 22:05 | 显示全部楼层
USB就4条线,现在又通信不上了,用什么办法可以恢复呢?
 楼主| pangb 发表于 2019-12-16 22:09 | 显示全部楼层
其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先
powerantone 发表于 2024-1-12 11:13 | 显示全部楼层
检查USB连接
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

7643

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部