STC32G144K246中USB模块和系统时钟的关系
测试发现在系统时钟60MHz及以下时,USB功能正常。80MHz时,USB设备能枚举,但是通信一次。
100MHz时,USB设备枚举异常。
同一个固件程序,只是改了系统时钟。
系统时钟时通过PLL1分频出来的240MHz再分频所得。
USB模块的稳定性和系统运行的速度有关系吗,
在哪里可以修正上述问题?
裴工:
USB-CDC/HID,CPU 可以 120MHz
没有设置匹配的WTST?
可以使用AiCube生成测试。
设置了WTST = 3;
测试有这种现象。 templeton 发表于 2026-1-14 20:39
设置了WTST = 3;
测试有这种现象。
打包上传工程看看
ercircle 发表于 2026-1-15 08:58
打包上传工程看看
附件是使用69-HID(Human Interface Device)协议范例例程改写的。
增加了void SysClk_Init(void)函数设置系统时钟。
78行设置具体时钟: CLKDIV = 0x04; //0x02:120MHz; 0x03:80MHz;0x04:60MHz;0x05:48MHz
当时钟为60MHz和48MHz时,USB通信正常,当时钟为80MHz时,通信异常。
等待锁频时间不够,上传工程里固定用48M的延时1ms,主频到120M就变短了
替换下就可以了:
ercircle 发表于 2026-1-15 12:07
等待锁频时间不够,上传工程里固定用48M的延时1ms,主频到120M就变短了
这样改完,您那里测试可以正常通信吗?我这里还是和之前一样的现象。 楼上的附件测到74MHz附近就不稳定工作了。
使用USB-HID 中断传输类型还是尽可能降低主频工作吧。
CDC-BULK传输倒是可以工作在100M左右。
希望官方能出个在高频率下稳定工作的USB例程。
降低工作频率,芯片的优势就少了一大块。
STC32G144K246, 时钟频率可以动态调整:
1,USB通信时降低速度;
2,非USB通信时,提高速度
先 暂时 这么 弯道绕过去
尝试下,UCap = 10uF / 22uF
Core-Vcc = 22uF
页:
[1]
2