stm32f030系列时钟介绍

发布时间: 2024-08-05
来源: 电子工程世界

时钟是微处理器的驱动力,类似人的心脏,只有不停地跳动系统才能正常运行。Stm32不同系列的时钟基本结构类似,就是外设有些差别。这里以stm32f030系列为例来介绍。


在参考手册中,时钟树如下所示:

pYYBAGQbtPSAFz0VAAGv1sBTSUE260.jpg

图中红色块表示时钟源,这里一共有5个时钟源。

1、8M HSI RC,这是芯片内部的RC时钟

2、4-32M HSE OSC,这是外部时钟,可以输入外部时钟或者晶振,精度高

3、32.7689k LSE OSC,这是RTC外部晶振时钟

4、40K LSI RC,这是内部低速RC振荡器时钟

5、14M HSI14RC,这是专门给ADC用的内部14M RC晶振

根据自己的需求和硬件设计,选择打开对应的时钟源,不用的就不要打开,可以减少功耗。

紫色线表示Flash的时钟,可以看到它的时钟源是内部的8M RC振荡器,从这里可以推测内部这个8M的时钟基本在一直工作,因为程序运行时需要不断地访问flash。

实际在系统复位后,会默认使用这个内部的8M RC时钟,而想要关掉它必须保证没有任何设备直接或者间接使用它。

中间红绿蓝三条通路是系统时钟的三种可选项。可以直接使用内部的8M RC时钟,可以直接使用外部HSE OSC时钟,或者通过PLL倍频后的时钟。

走PLL那条路需要:

1、 时钟源分频

2、 选择PLL时钟源

3、 PLL倍频

4、 选择PLL作为SYSCLK

只有通过PLL才能达到最高的工作频率。

黄色块是AHB分频,青色块是APB分频,这俩上接了很多外设。

poYBAGQbtPWADm29AALodf0GwEY887.jpg

要访问这些外设的寄存器,首先必须打开对应的时钟。APB分成了两组,需要在对应的寄存器中进行配置。

实际写代码的时候,使能一个时钟以后要等待其稳定,每个时钟源都有专门的寄存器位指示是否ready。另外,HSI 8M和HSI14M可以修正,以排除制造、温度和干扰的影响。

poYBAGQbtPeAQgvRAAJj1eL95Sw351.jpg

至此系统的时钟就搞定了,以后使用某个外设前,只需要使能对应的时钟即可。

pYYBAGQbtPiANiv1AADKn2zhKaA681.jpg

!!!:不同的处理器其细节可能会有些许差别,具体的情况还需要查阅参考手册。


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。