解决多次插拔后 USB 无法再工作的问题

时间:2024-04-01来源:

客户使用的MCU 是STM32F446,反馈在做压力测试时发现多次插拔后,产品意外无法再工作。分析了几天仍然无进展,只有MCU 复位后才能恢复正常。

1 问题描述
客户使用的 MCU 是 STM32F446,反馈在做压力测试时发现多次插拔后,产品意外无法再工作。分析了几天仍然无进展,只有 MCU 复位后才能恢复正常。
2 问题分析
由于此问题以属于偶发现象,一时半刻无法重现。首先能想到的是可能客户使用到了动态内存。通过与客户沟通,发现客户在一个比较老的 HAL 库版本上的基础上进行了改造,将原来的动态内存方式改成了静态内存,因此,不应该是内存分析失败导致。

好在之前客户有通过 USB 分析仪采集通信过程,如下图所示:

1711939600556152.png

从上图可以看出,当出现问题时,有一堆异常数据,显示为 1044 个字节,展开内容却发现大部分字节值为 0Xff,如下图所示:

1711939656176687.png

这部分数据没有合法格式,姑且认为是 USB 总线上的干扰数据,由插拔操作导致。接下来要客户尝试在调试模式下重现问题,然后再截取异常出现时 USB 各寄存器的值,检查是否有异常。

更多内容请下载阅读

关键词: 多次插拔 USB STM32

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章


用户评论

请文明上网,做现代文明人
验证码:
查看电脑版