历史上的今天
今天是:2024年08月24日(星期六)
2019年08月24日 | RCC—使用 HSE HSI 配置时钟树梳理(在STM32平台下)
2019-08-24 来源:eefocus
解剖RCC框图——时钟树(参考了火哥的使用手册和网上的一些资料,加上自己的理解)
下面是STM32F429的时钟树:

理解STM32的时钟是我们应用定时器等等的基础,首先 ,从系统时钟说起。
1.首先注意图中打蓝色圈的两个地方,HSE和HSI分别是外部时钟和内部时钟,其中HSE是高速的外部时钟信号,可接石英/陶瓷谐振器,或者接外部时钟源,HSE也可以直接做为系统时钟或者 PLL 输入(从蓝圈9处可以看出),频率范围为 4MHz~26MHz。HSE 我们使用的25M 的无源晶振。所以移植时一定要格外注意。
2.注意看图中蓝圈7的部分,这里是主锁相环倍频输出,用于产生系统需要的高速时钟信号,如图绿色箭头所示(STM32还有一个副锁相环,如蓝圈8)图中②锁相环 PLL 的主要作用是对时钟进行倍频.
一般而言,我们都是使用HSE经过PLL 倍频之后作为系统时钟,F429系统时钟最高为 180M,这个是官方推荐的最高的稳定时钟,如果你想铤而走险,也可以超频,超频最高能到 216M。至于怎么算出来的,下面请看分析.
主 PLL 时钟的时钟源要先经过一个分频系数为 M 的分频器,然后经过倍频系数为 N 的倍频器出来之后的时候还需要经过一个分频系数为 P(第一个输出 PLLP)或者 Q(第二个输出 PLLQ)的分频器分频之后,最后才生成最终的主 PLL 时钟。例如我们的外部晶振选择 8MHz。同时我们设置相应的分频器 M=8,倍频器倍频系数 N=360,分频器分频系数 P=2,那么主 PLL 生成的第一个输出高速时钟 PLLP 为:PLL=8MHz * N/ (M*P)=8MHz* 360/(8*2) = 180MHz,第一个输出时钟 PLLCLK 用于系统时钟, 故F429 里面最稳定的时钟最高是180M.
3.注意图中③系统时钟 SYSCLK,它的来源可以是HSI、 PLLCLK、 HSE,我们一般选择是设置系统时钟: SYSCLK = PLLCLK = 180M。上面也有提到。而我们下面需要用到AHB 总线时钟 HCLK,即图④位置。这里设置为 1 分频,即 HCLK=SYSCLK=180M。
4.注意图中⑤⑥的位置,STM32F4 很多外设的时钟来源,即两个总线桥: APB1 和 APB2,其中 APB1是低速总线(最高 45Mhz,设置为 4 分频,即 PCLK1 = HCLK/4 = 45M),APB2 是高速总线(最高 90Mhz,设置为 2 分频,即 PCLK2 =HCLK /2= 90M)
另外定时器部分,如果所在总线( APB1/APB2)的分频系数为 1,那么就不倍频,如果不为 1(比如 2/4/8/16),那么就会 2 倍频( Fabpx*2)后,作为定时器时钟输入。
简单点说,举个APB1的例子,系统时钟是180Mhz,APB1分频系数为4(system_stm32f4xx.c配置),则APB1速度为45Mhz,但是挂靠在在该总线上的定时器,由于分频系数4而不是1,因此定时器输入频率为45Mhz x 2 =90 Mhz
这里,我们可以在STM32F4的自带库文件时钟的设置为方向分析
1.启动代码:
文件:startup_stm32f429_439xx.s

可以看出,在进入main函数之前,系统就调用了SystemInit函数.
那么,我们找到SystemInit函数,位于system_stm32f4xx.c

可以看出,对于我们的F429来说,PLL_N默认为360.其他几个宏定义也一目了然。
如果我们使用的是官方库提供的配置,且外部无源晶振25MHz,系统时钟配置为180MHz
我们找到晶振频率在文件stm32f4xx.h中进行设置的


综上,如果使用外部晶振25MHz,则可以得出默认配置中:
锁相环压腔振荡器时钟PLL_VCO =(HSE_VALUE/PLL_M)* PLL_N=25/ 25* 360 =360MHz
系统时钟SYSCLK = PLL_VCO / PLL_P=360 / 2 = 180MHz .
而对于USB时钟 = PLL_VCO / PLLQ=360 / 7 = 51.7MHz.
在SetSysClock函数中,配置了系统时钟,PLL倍频以及分频系数:

如果外部时钟启动失败,系统会使用默认的内部系统时钟
默认配置:
HCLK = SYSCLK / 1 = 180MHz ,AHB总线时钟
PCLK2 = HCLK / 2 =90MHz
PCLK1 = HCLK / 4 = 45MHz
史海拾趣
|
无线多媒体通信和计算市场的迅猛发展既对电源提出了越来越高的要求,同时也为电源以及电源管理IC市场的发展注入了一股强劲的增长动力。近几年来电源管理IC的市场规模和潜力一直处在急速膨胀之中。据美国风险发展公司(VDC)估计,2004年电源管理IC的 ...… 查看全部问答> |
|
请问声卡设置中的均衡器设置,环境设置, DSP模式设置是怎么实现的? Windows, VC2008 现在的声卡安装了驱动后, 都会附带一个声卡设置程序。 这个声卡设置程序里,有各种音量设置,这个可以通过混音器来实现。 但是,它还有均衡器设置,环境设置, DSP模式设置,这些又是怎么实现的? 我知道播放器可以设置均衡器, ...… 查看全部问答> |
|
我把CY7C68013设置为Slave FIFO模式的话Firmware是否只是需要初始化相应的一些寄存器的值,不需要做别的操作。用EP2_OUT,EP6_IN,上位机是否通过端点传输数据给EP2_OUT端点呢?怎么传?我每次传的数据长度都不同,比方有10个字节的,那我传了10个 ...… 查看全部问答> |
|
【急】xpe无法启动,提示“lsass.exe 当试图更新密码时本返回状态表示所提供的当前密码不正确” 一台升腾的8600,所用系统为Windows XP Embedded,就用了C盘一个分区,加过一层保护。那天装某个软件 ,安装驱动时提示更新几个系统文件,没怎么注意就更新掉了。结果重启后就进不去系统了, 在XP启动画面滚动 条之后用户名密码登录提示框出来前 ...… 查看全部问答> |
|
我用的西门子mc35i gprs modem 与pc机连接上之后 通过串口调试助手 发送at指令给它 当发送 atd*99***1#时 先返回 connect 然后持续不断出现大概四排乱码!@¥#!%……%……&~!~#¥¥#%@#@%%之类的 然后再显示:no carrier 我不知道是怎么回 ...… 查看全部问答> |
|
十一届全国人大四次会议新闻中心3月8日上午9时在梅地亚中心多功能厅举行记者会,人力资源和社会保障部部长尹蔚民、副部长胡晓义就“就业和社会保障体系建设”的相关问题回答中外记者的提问。[尹蔚民]第二个问题,关于你讲到的大学毕业生就业 ...… 查看全部问答> |




