STM32——正点原子 F429 F407 时钟树概述
F429时钟树
STM32F4 时钟系统的知识在《STM32F4 中文参考手册》第六章复位和时钟控制章节有非 常详细的讲解, 众所周知,时钟系统是 CPU 的脉搏,就像人的心跳一样。 STM32F429的时钟系统比较复杂,不像简单的51单片机一个系统时钟就可以解决一切。 为什么 STM32 要有多个时钟源呢? 因为首 先 STM32 本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率, 同一个电路,时钟越快功耗越大,同时抗电磁 干扰能力也会越弱,所以对于较为复杂的 MCU 一般都是采取多时钟源的方法来解决这些问题。
STM32F429 中,有 5 个最重要的时钟源,为 HSI、HSE、LSI、LSE、PLL。
①、LSI 是低速内部时钟,RC 振荡器,频率为 32kHz 左右。供独立看门狗和自动唤醒单元使用。 ②、LSE 是低速外部时钟,接频率为 32.768kHz 的石英晶体。这个主要是 RTC 的时钟源。(RTC又名实时时钟) ③、HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz~26MHz。 我们的开发板接的是 25M 的晶振。HSE 也可以直接做为系统时钟或者 PLL 输入。 ④、HSI 是高速内部时钟,RC 振荡器,频率为 16MHz。可以直接作为系统时钟或者用作 PLL输入。 ⑤、PLL 为锁相环倍频输出。STM32F4 有三个 PLL:
- 主 PLL(PLL)由 HSE 或者 HSI 提供时钟信号,并具有两个不同的输出时钟。 第一个输出 PLLP 用于生成高速的系统时钟(最高 180MHz) 第二个输出 PLLQ 为 48M 时钟,用于 USB OTG FS 时钟,随机数发生器的时钟和 SDIO 时钟。
- 第一个专用 PLL(PLLI2S)用于生成精确时钟,在 I2S 和 SAI1 上实现高品质音频性能。其 中,N 是用于 PLLI2S vco 的倍频系数,其取值范围是:192~432;R 是 I2S 时钟的分频系 数,其取值范围是:2~ 7;Q 是 SAI 时钟分频系数,其取值范围是:2~15;P 没用到。
- 第二个专用 PLL(PLLSAI)同样用于生成精确时钟,用于 SAI1 输入时钟,同时还为 LCD_TFT 接口提供精确时钟。其中,N 是用于 PLLSAI vco 的倍频系数,其取值范围是:192~ 432; Q 是 SAI 时钟分频系数,其取值范围是:2~15;R 是 LTDC 时钟的分频系数,其取值范 围是:2~7;P 没用到。
主 PLL 时钟的时钟源要先经过一个分频系数为 M 的分频器,然后经过倍频系数为 N 的倍频器出来之后,
还需要经过一个分频系数为 P(第一个输出 PLLP)或者 Q(第二个输出 PLLQ)的分频器分频之后,最后才生成最终的主 PLL 时钟
eg:
外部晶振选择 25 MHz。同时我们设置相应的分频器 M = 25,倍频器倍频系数 N = 360,分频器分频系数 P=2,
那么主 PLL 生成的第一个输出高速时钟 PLLP 为:
PLLP = ((25 /M) *N) /P = 180 MHz
