发新帖本帖赏金 5.00元(功能说明)我要提问
返回列表
打印

GD32USB移植时钟问题

[复制链接]
3717|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RuiKwok|  楼主 | 2022-9-2 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在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的技术支持

使用特权

评论回复
评论
RuiKwok 2022-9-2 16:43 回复TA
@pq113_6 这位老哥说的很清楚,你也可以学习一下,感谢回复 
板凳
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 打赏了 5.00 元 2022-09-02
理由:感谢您的赐教

地板
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,但是仍无法使用,请问是什么原因?望您不吝赐教

使用特权

评论回复
5
pq113_6| | 2022-9-2 15:58 | 只看该作者
RuiKwok 发表于 2022-9-2 15:53
您好,感谢您之前的解答,确是我之前未了解的知识点。按照您说的,我有查看了官方例程,确实使用的PLL48 ...

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

使用特权

评论回复
评论
RuiKwok 2022-9-2 16:41 回复TA
问题已经解决,感谢您的分享,谢谢☺ 
6
Peter6699| | 2022-9-2 16:16 | 只看该作者
USB时钟必须是48M,200M怎么分频到48M,无法实现呀

使用特权

评论回复
评论
RuiKwok 2022-9-2 16:42 回复TA
是的,我之前不了解,楼上已经说的很清楚了。感谢您的回复 
7
sagade| | 2022-9-3 11:46 | 只看该作者
RuiKwok 发表于 2022-9-2 15:53
您好,感谢您之前的解答,确是我之前未了解的知识点。按照您说的,我有查看了官方例程,确实使用的PLL48 ...

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

使用特权

评论回复
8
RuiKwok|  楼主 | 2022-9-8 15:06 | 只看该作者
sagade 发表于 2022-9-3 11:46
按照官方例程使用IRC48M,没有进行CTC校准,我这边是可以正常使用。
请问您是在CTC校准后才正常的,还是 ...

我是忘开时钟了

使用特权

评论回复
发新帖 本帖赏金 5.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

0

粉丝