公羊子丹 发表于 2025-10-20 07:45

调试USB CDC时偶发掉线,感觉像时钟同步没跟上

最近在用F411做CDC虚拟串口,偶尔在传输数据时就掉线,PC端直接提示设备断开。感觉像是某个中断没及时响应,也可能是PLL没锁住。我试过调低系统时钟,掉线频率确实降低了,但不彻底。有没有人碰到过类似的情况?

Clyde011 发表于 2025-10-20 07:51

之前我用F405也遇过,最后在驱动里加了reconnect逻辑才稳。

公羊子丹 发表于 2025-10-20 07:52

我之前遇到过,结果是USB供电电流不稳,换根线就好了。

周半梅 发表于 2025-10-20 07:53

试过加一点传输延时吗?有时候主机端太快会丢包。

帛灿灿 发表于 2025-10-20 07:54

F4系列的PLL确实挺挑的,可以看看是否启用了HSE Bypass。

童雨竹 发表于 2025-10-20 07:55

我感觉是电磁干扰,USB线太长或者布线不规范也会掉。

万图 发表于 2025-10-20 07:55

你检查一下VDDUSB那脚有没有稳压好,有一次我就是因为没滤波。

Wordsworth 发表于 2025-10-20 07:57

是不是用了FreeRTOS?有时候任务切换卡一下USB就断。

Bblythe 发表于 2025-10-20 07:57

建议开一下USB中断的log看看,是不是有error flag。

Pulitzer 发表于 2025-10-20 07:58

掉线时灯闪烁情况能帮忙判断,尤其是OTG_FS_VBUS检测。

Uriah 发表于 2025-10-20 07:59

我觉得可能是时钟源问题,HSE晶振稳定性要查一下。

进入猫次元 发表于 2025-10-20 11:04

用示波器检查外部晶振的输出波形幅值是否稳定且有无谐波干扰。

classroom 发表于 2025-10-20 12:04

若使用内部HSI时钟,需通过软件校准,但建议优先使用外部晶振。

cr315 发表于 2025-10-20 13:05

检查VCO输出频率是否在100-432MHz范围内,避免超出锁相范围。

duo点 发表于 2025-10-20 15:05

在PLL供电引脚附近添加10μF钽电容+0.1μF陶瓷电容组合,抑制电源噪声。

elephant00 发表于 2025-10-20 11:06

试试用LDO替代开关电源,降低纹波至<50mV。

elephant00 发表于 2025-10-20 11:07

精简中断服务函数,在USB中断中避免复杂操作,仅处理必要标志位和缓冲区切换。

flycamelaaa 发表于 2025-10-20 20:08

切换至内部时钟测试,若掉线问题消失,那就是外部晶振或PLL配置问题。
页: [1]
查看完整版本: 调试USB CDC时偶发掉线,感觉像时钟同步没跟上