学习内容:
这个图说明了STM32的时钟走向,从图的左边开始,从时钟源一步步分配到外设时钟。从时钟频率来说,又分为高速时钟和低速时钟,高速时钟是提供给芯片主体的主时钟,而低速时钟只是提供给芯片中的RTC(实时时钟)及独立看门狗使用。
从芯片角度来说,时钟源分为内部时钟与外部时钟源 ,内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号。
所以,STM32有以下4个时钟源:
高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。
高速内部时钟(HSI): 由内部RC振荡器产生,频率为8MHz,但不稳定。
低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。野火M3实验板上用的是32.768KHz,6p负载规格的晶振。
低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。
我们以最常用的高速外部时钟为例分析,首先假定我们在外部提供的晶振的频率为8MHz的。
1、从左端的OSC_OUT和OSC_IN开始,这两个引脚分别接到外部晶振的两端。
2、8MHz的时钟遇到了第一个分频器PLLXTPRE(HSE divider for PLL entry),在这个分频器中,可以通过寄存器配置,选择它的输出。它的输出时钟可以是对输入时钟的二分频或不分频。本例子中,我们选择不分频,所以经过PLLXTPRE后,还是8MHz的时钟。
3、8MHz的时钟遇到开关PLLSRC(PLL entry clock source),我们可以选择其输出,输出为外部高速时钟(HSE)或是内部高速时钟(HSI)。这里选择输出为HSE,接着遇到锁相环PLL,具有倍频作用,在这里我们可以输入倍频因子PLLMUL(PLL multiplication factor),哥们,你要是想超频,就得在这个寄存器上做手脚啦。经过PLL的时钟称为PLLCLK。倍频因子我们设定为9倍频,也就是说,经过PLL之后,我们的时钟从原来8MHz的 HSE变为72MHz的PLLCLK。
4、紧接着又遇到了一个开关SW,经过这个开关之后就是STM32的系统时钟(SYSCLK)了。通过这个开关,可以切换SYSCLK的时钟源,可以选择为HSI、PLLCLK、HSE。我们选择为PLLCLK时钟,所以SYSCLK就为72MHz了。
5、PLLCLK在输入到SW前,还流向了USB预分频器,这个分频器输出为USB外设的时钟(USBCLK)。
6、回到SYSCLK,SYSCLK经过AHB预分频器,分频后再输入到其它外设。如输出到称为HCLK、FCLK的时钟,还直接输出到SDIO外设的SDIOCLK时钟、存储器控制器FSMC的FSMCCLK时钟,和作为APB1、APB2的预分频器的输入端。本例子设置AHB预分频器不分频,即输出的频率为72MHz。
7、GPIO外设是挂载在APB2总线上的, APB2的时钟是APB2预分频器的输出,而APB2预分频器的时钟来源是AHB预分频器。因此,把APB2预分频器设置为不分频,那么我们就可以得到GPIO外设的时钟也等于HCLK,为72MHz了。
从时钟树的分析,看到经过一系列的倍频、分频后得到了几个与开发密切相关的时钟。
SYSCLK:系统时钟,STM32大部分器件的时钟来源。主要由AHB预分频器分配到各个部件。
HCLK:由AHB预分频器直接输出得到,它是高速总线AHB的时钟信号,提供给存储器,DMA及cortex内核,是cortex内核运行的时钟,cpu主频就是这个信号,它的大小与STM32运算速度,数据存取速度密切相关。
FCLK:同样由AHB预分频器输出得到,是内核的“自由运行时钟”。“自由”表现在它不来自时钟 HCLK,因此在HCLK时钟停止时 FCLK 也继续运行。它的存在,可以保证在处理器休眠时,也能够采样和到中断和跟踪休眠事件 ,它与HCLK互相同步。
PCLK1:外设时钟,由APB1预分频器输出得到,最大频率为36MHz,提供给挂载在APB1总线上的外设。
PCLK2:外设时钟,由APB2预分频器输出得到,最大频率可为72MHz,提供给挂载在APB2总线上的外设。
学习总结:
单片机的时钟就是单片机工作所需要的节拍,实际上就是时钟源产生的方波信号,单片机的取指令,译指令等工作过程都要以时钟的一个周期为最小周期。
单片机工作时,会一条一条地从ROM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us, 它的一个机器周期是12X (1/12)us,也就是1us。
STM32的时钟系统如此复杂,有倍频、分频及一系列的外设时钟的开关。
需要倍频是考虑到电磁兼容性,如外部直接提供一个72MHz的晶振,太高的振荡频率可能会给制作电路板带来一定的难度。
分频是因为STM32既有高速外设又有低速外设,各种外设的工作频率不尽相同,如同pc机上的南北桥,把高速的和低速的设备分开来管理。
最后,每个外设都配备了外设时钟的开关,当我们不使用某个外设时,可以把这个外设时钟关闭,从而降低STM32的整体功耗。所以,当我们使用外设时,开启外设的时钟。
上一篇:STM学习总结之点灯
下一篇:STM32学习总结之不同文件的作用
推荐阅读最新更新时间:2024-11-07 19:41
设计资源 培训 开发板 精华推荐
- DI-187 - 35 W 液晶显示器电源
- 使用 ON Semiconductor 的 STK402-090 的参考设计
- 小功率蓝牙功放DIV
- 使用 NXP Semiconductors 的 PCIMX6Q6AVT10AA 的参考设计
- 使用 IXYS 的 Z0221524A 的参考设计
- STM32H7B3LI MCU的评估板
- LTM8042EV-1 1A 降压模式的典型应用电路,驱动 4 个白光 LED
- ADRF5547-EVALZ,用于评估 ADRF5547 双通道、3.7 GHz 至 5.3 GHz、接收器前端的评估套件
- mic_rf_rx
- AD9235BCP-65EB,用于评估 AD9235BCP-65 单通道 ADC 流水线 65Msps 12 位并行 32 引脚 LFCSP 的评估套件
- 有奖学习|泰克 MSO6B 探索营:应用案例深度解析
- 预报名有奖直播:煮酒数创客,看如何让好创意发生!
- 有奖直播:走进实验室之是德科技高端新品示波器UXR-B测评
- 观看TI IOT解决方案研讨会 答题即可赢取更多精美好礼!
- 抢鲜体验:NXP LPC54018 IoT Module测评来了
- EEWORLD年度人物公布啦!2013,感谢有你!
- 有奖直播:基于DLP® Pico™技术的TI桌面级DLP 3D打印、3D扫描及工业显示应用
- 更好的你我,更好的EEWorld!2020年终庆典
- ADI有奖下载活动之19:ADI可编程逻辑控制器(PLC)解决方案(更新版)
- 下载有礼|ADI 最新《模拟对话》合订本