55337575 发表于 2024-5-21 08:56:11

CDC不知如何侦测到主机重启然后重新初始化,请老师赐教|已解决

本帖最后由 STCAI-32位8051 于 2024-5-23 14:27 编辑

最近发现我的CDC转换模块的一个问题,在USB连接线同主机USB口连接状态下机器重新启动,此时主机设备管理器能看到CDC串口,串口助手也能看到但不能工作,
打开关闭串口照旧操作,发送数据时出现串口问题然后进行“修复”。我怀疑是下位我的CDC模块没有反应,需要重新初始化。然后我拔下USB线(CDC模块断电)

再插入,恢复正常。我希望的USB线缆长期连接USB口,机器重启能够直接使用CDC模块,如何解决请诸位大神、大佬、老师帮忙

神农鼎 发表于 2024-5-21 09:09:31

MCU 型号,原理图的 PDF 发上来,
用的哪个USB库,
再来个实际的视频,大家帮分析

55337575 发表于 2024-5-21 09:25:15

本帖最后由 55337575 于 2024-5-21 09:35 编辑

型号是32G12K128,这个应该同原理无关吧。主机开机(win10)系统运行后,模块插USB线缆上电,CDC串口正常。USB线缆不拔,重启主机,然后运行串口助手,打开/关闭串口正常,点发送出现:

串口号故障!自动修复中...
关闭串口...
打开串口...

串口号故障!自动修复中...
关闭串口...
打开串口...


观察系统的设备管理,确实有相应的cdc串口,而串口助手也能看到这个串口。然后直接重现插拔一下USB线缆,也就是重新给模块上电(初始化cdc),所有运行正常

乘风飞扬 发表于 2024-5-21 09:38:06

在USB初始化前清除一下USB寄存器,可以避免异常复位导致USB通信不正常,可以参考这个帖子:
加入CDC串口后执行“IAP_CONTR = 0x20 ”语句就死机了 |已解决
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2459
(出处: 国芯技术交流网站)

55337575 发表于 2024-5-21 10:12:57

本帖最后由 55337575 于 2024-5-21 10:14 编辑

乘风飞扬 发表于 2024-5-21 09:38
在USB初始化前清除一下USB寄存器,可以避免异常复位导致USB通信不正常,可以参考这个帖子:
加入CDC串口后 ...
这个帖子我看了,这个操作不适合我的模块。我现在需要能看到主机重新启动了,而后我再像该贴说的执行IAP_CONTR = 0x20,现在是我的模块怎么知道主机启动,检测到cdc串口。

乘风飞扬 发表于 2024-5-21 10:24:39

本帖最后由 乘风飞扬 于 2024-5-21 10:27 编辑

55337575 发表于 2024-5-21 10:12
这个帖子我看了,这个操作不适合我的模块。我现在需要能看到主机重新启动了,而后我再像该贴说的执行IAP_C ...执行IAP_CONTR = 0x20进行手动重启时需要增加USB配置清除代码,被动重启也需要增加USB配置清除代码。
你要参考的是如何处理重启导致的USB通信不正常问题。如果重启能触发芯片复位的话就会执行初始化代码,在初始化配置里面增加USB配置清除代码就可以测试是否有效果。
如果主机重启不会导致MCU复位的话可以参考下面这个帖子:

关于STC8H8K64U的USB主动挂起
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=5031
(出处: 国芯技术交流网站)


55337575 发表于 2024-5-21 10:37:52

本帖最后由 55337575 于 2024-5-21 11:19 编辑

乘风飞扬 发表于 2024-5-21 10:24
执行IAP_CONTR = 0x20进行手动重启时需要增加USB配置清除代码,被动重启也需要增加USB配置清除代码。
你要 ...


谢谢你的这个链接,应该是被挂起了,正在学习中。。。

55337575 发表于 2024-5-23 11:10:59

找到原因了,但不知道怎么利用消息解决。
主要原因是:我的程序启动后-初始化-完成后就不断向cdc口送数据,这样在正常插拔时,上位机USB已经准备好,插入线缆,模块上电运行后经过初始化-送数据,上位机正常接收。
而带线缆开机或重新启动上位机,此时模块上电快,送数据时cdc还没有准备好,出现端口阻塞。我增加了一个开关,模块上电不送数据,等待cdc指令打开开关再送就没问题。现在不知道有没有更好的办法,请各位大侠指导{:4_196:}

55337575 发表于 2024-5-23 13:29:05

本帖最后由 55337575 于 2024-5-23 13:33 编辑

该问题已经解决。感谢乘风***解决办法我另开新帖
页: [1]
查看完整版本: CDC不知如何侦测到主机重启然后重新初始化,请老师赐教|已解决