RuiKwok 发表于 2022-9-2 09:32

GD32USB移植时钟问题

在GD32F450Z官方例程中USB键盘例程中,工程在system_gd32f4xx.c设置为系统时钟为168MHz_25MHz,在对USB延时上使用TIMER2进行实现,预分频为(6+1),微秒级延时计数值为(11+1),毫秒级计数值(11999+1)。我对这个没有疑问。但是问题在于当我将system_gd32f4xx.c中的系统时钟改为200MHz_25MHz后,将TIMER2的预分频值改为(9+1),微秒级延时计数值为(9+1),毫秒级计数值(9999+1),却无法实现功能。我单独在200MHz测试定时器功能,正常延时,有哪位老哥知道原因。

cainiao518 发表于 2022-9-2 10:47

可以找GD的技术支持

pq113_6 发表于 2022-9-2 13:31

CK_PLLVCOSRC = 1M,CK_PLLVCO = 400M,CK_PLLP = 200M,PLLQ = 400 / 9 = 44.4444M, 和48M有误差。要想200M的PLLP和48M的PLLQ同时成立,则PLLVCO最小要设置到1200M,而PLLVCO的范围是100MHz 到 500MHz 之间,所以当200M频率需求时,无法使用PLL48M模式

RuiKwok 发表于 2022-9-2 15:53

pq113_6 发表于 2022-9-2 13:31
CK_PLLVCOSRC = 1M,CK_PLLVCO = 400M,CK_PLLP = 200M,PLLQ = 400 / 9 = 44.4444M, 和48M有误差。要想200 ...

您好,感谢您之前的解答,确是我之前未了解的知识点。按照您说的,我有查看了官方例程,确实使用的PLL48模式。
按照这个思路,我在200MHz_25MHz的前提下,改为使用内部IRC48MHz,但是仍无法使用,请问是什么原因?望您不吝赐教

pq113_6 发表于 2022-9-2 15:58

RuiKwok 发表于 2022-9-2 15:53
您好,感谢您之前的解答,确是我之前未了解的知识点。按照您说的,我有查看了官方例程,确实使用的PLL48 ...

设置选择IRC48M后还需要CTC校准

Peter6699 发表于 2022-9-2 16:16

USB时钟必须是48M,200M怎么分频到48M,无法实现呀

sagade 发表于 2022-9-3 11:46

RuiKwok 发表于 2022-9-2 15:53
您好,感谢您之前的解答,确是我之前未了解的知识点。按照您说的,我有查看了官方例程,确实使用的PLL48 ...

按照官方例程使用IRC48M,没有进行CTC校准,我这边是可以正常使用。
请问您是在CTC校准后才正常的,还是改了别的地方正常的?

RuiKwok 发表于 2022-9-8 15:06

sagade 发表于 2022-9-3 11:46
按照官方例程使用IRC48M,没有进行CTC校准,我这边是可以正常使用。
请问您是在CTC校准后才正常的,还是 ...

我是忘开时钟了
页: [1]
查看完整版本: GD32USB移植时钟问题