关于“通过HSI(8MHz)得到108MHzSysClk的配置过程”

[复制链接]
1785|6
手机看帖
扫描二维码
随时随地手机跟帖
mybao|  楼主 | 2014-1-10 15:16 | 显示全部楼层 |阅读模式
hz, rc, PLL, ui, LLC
本帖最后由 mybao 于 2014-1-10 16:11 编辑

https://bbs.21ic.com/icview-570529-1-1.html

官方的配置过程

   /*  PLL configuration: PLLCLK = HSI/2* (15+12) = 108 MHz */
     RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL));
     RCC->CFGR |= (uint32_t)(0x08000000 | RCC_CFGR_PLLSRC_HSI_Div2  | RCC_CFGR_PLLMULL12);


(15+12)

这个15从哪来的? 很迷惑

zkcaptain| | 2014-1-13 09:58 | 显示全部楼层
本帖最后由 zkcaptain 于 2014-1-13 10:13 编辑

15是0x0800000
12是RCC_CFGR_PLLMULL12
用这两个进行27倍频
2到16倍频不需要加0x0800000
16以上(不包含16)的倍频需要加0x0800000

使用特权

评论回复
mybao|  楼主 | 2014-1-13 11:42 | 显示全部楼层
0x0800000 是配置MCO( microcontroller clock out)的,

PLL稳定后,再配置MCO,选择microcontroller clock out输出,不会改变PLL时钟,实验结果确实这样

使用特权

评论回复
zkcaptain| | 2014-1-13 12:37 | 显示全部楼层
本帖最后由 zkcaptain 于 2014-1-13 12:40 编辑
mybao 发表于 2014-1-13 11:42
0x0800000 是配置MCO( microcontroller clock out)的,

PLL稳定后,再配置MCO,选择microcontroller clock ...

你看下GD的用户手册,寄存器RCC_GCFGR配置倍频用的是5个bit,其中一个bit是第27位PLLMF[4],剩下4个bit是第21、20、19、18位PLLMF[3:0],这5个bit决定了倍频系数,其中0x08000000指的就是PLLMF[4]=1,RCC_CFGR_PLLMULL12指的就是PLLMF[3:0]。

“0x08000000是配置MCO”,怎么配?

使用特权

评论回复
mybao|  楼主 | 2014-1-13 17:12 | 显示全部楼层
Thanks, 我一直看ST的ref, 误导了

使用特权

评论回复
zhengxingzu| | 2014-1-19 19:40 | 显示全部楼层
以前没在意这些都是直接copy的,学习了

使用特权

评论回复
fangxingyi| | 2014-2-23 20:17 | 显示全部楼层
学习一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

759

帖子

3

粉丝