STM32时钟系统

STM32的时钟系统比较复杂,不像51单片机一个系统时钟就可以解决一切。也许你会问,为什么不采用统一的时钟,这样不是更简单吗?这是因为STM32的外设比较多,对不同外设而言,所需要的时钟是不一样的,而且,对同一个电路,时钟越快功耗越大,抗电磁干扰的能力也会减弱,因此现在较为复杂的MCU一般都是采用多时钟的方法来解决这些问题。

STM32的时钟树图一般在网上都能找的到,因为占据版面位置较大,这里就不放出来了。

STM32F4 中,有 5 个最重要的时钟源,为 HSIHSELSILSEPLL。 其中 PLL 分为两个时钟源,分别为主 PLL 和专用 PLL。 从时钟频率来分可以分为高速时钟源和低速
时钟源,在这
5 个中 HSIHSE 以及 PLL 是高速时钟, LSI LSE 是低速时钟。从来源可分为外部时钟源和内部时钟源,外部时钟源就是从外部通过接晶振的方式获取时钟源,其中 HSE
LSE 是外部时钟源,其他的是内部时钟源。

①、 LSI 是低速内部时钟, 由内部RC 振荡器产生,频率为 32kHz 左右,对精确度的要求较低。供独立看门狗和自动唤醒单元使用。
②、
LSE 是低速外部时钟,由外接频率为 32.768kHz 的石英晶体产生,相对精度较高。 主要是 RTC 的时钟源。
③、
HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz~26MHz HSE 也可以直接做为系统时钟或者 PLL 输入。
④、
HSI 是高速内部时钟, RC 振荡器, 频率为 16MHz。 可以直接作为系统时钟或者用作 PLL输入。
⑤、
PLL 为锁相环倍频输出。 STM32F4 有两个 PLL:
1) 主 PLL(PLL) HSE 或者 HSI 提供时钟信号,并具有两个不同的输出时钟。
第一个输出
PLLP 用于生成高速的系统时钟(最高 168MHz
第二个输出
PLLQ 用于生成 USB OTG FS 的时钟( 48MHz),随机数发生器的时钟和 SDIO
时钟。
2) 专用 PLL(PLLI2S)用于生成精确时钟,从而在 I2S 接口实现高品质音频性能。

这里需要对主PLL的时钟频率做一点补充,PLL 时钟的时钟源要先经过一个分频系数为 M 的分频器,然后经过倍频系数为 N 的倍频器出来之后的时候还需要经过一个分频系数为 P(第一个输出 PLLP)或者 Q(第二个输出 PLLQ)的分频器分频之后,最后才生成最终的主 PLL 时钟。 因此,最后频率应为

PLL=f*N/(M*P)

最后需要注意的是, 在以上的时钟输出中,有很多是带使能控制的,例如 AHB 总线时钟、内核时钟、各种 APB1 外设、 APB2 外设等等。当需要使用某模块时,记得一定要先使能对应的时钟。  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值