GD32F417VET6时钟初始化设置

       GD32F417VET6是属于GD32F4xx系列基于ARM Cortex-M4处理器的32位通用微控制器,性价比较高。

      1.使用该芯片设计可以基于现有的F4系列的固件库,启动文件选用startup_gd32f407_427.s稍做修改,因为417主频是180M,需要在system_gd32f4xx.c文件中添加系统时钟初始化180M,硬件选择GD32F427R-START来测试。

      2.复制粘贴system_clock_200m_25m_hxtal()这个函数,修改成180M。

      3.参考芯片时钟树和用户手册设置PLL寄存器的PLLPSC,PLLN,PLLP,PLLQ参数值,注意PLLSC,PLLN,PLLP,PLLQ参数的取值范围。VCO时钟源频率要求在1M到2M之间,外部晶振25M,分频系数PLLPSC(时钟树PSC)通常取值为25。

 4. 修改system_clock_180m_25m_hxtal()函数中RCU_PLL寄存器参数,使主频为180M.

     取PSC=25,PLL_N=360,PLL_P=2,PLL_Q=8 计算公式:((25M/PSC)*PLL_N)/PLL_P=180M

        5. 主频180M设置好了之后,如何满足USB时钟48M呢,((25M/PSC)*PLL_N)/PLL_Q=45M,显然不行。由于PLLSC,PLLN,PLLP,PLLQ参数的取值范围都有限制,是凑不出来既满足主频180M,又满足USB 48M的。查看时钟树,USB有三种时钟配置方式,接下来看PLLSAI。

       6. 根据PLLSAI寄存器的设置说明,取PLLSAIN=96,PLLSAIP=2,USB时钟:((25M/PSC)*PLLSAIN)/PLLSAIP=48M,理论上是可行的,下面写程序测试一下。

       7. 测试选GD官方的cdc_acm例程,前面已经将启动文件改成startup_gd32f407_427.s,配置好主频180M,修改函数usb_rcu_config(),配置USB时钟为48M。

     8. 编译下载到GD32F427R-START开发板,打开电脑设备管理器,显示COM9已被识别。

       9. 现在来测试USB时钟的第三种配置方式,内部时钟,程序如下,经测试结果正常。不论连接电脑的哪个USB口,均被识为同一串口,这里是com9。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值