1. 时钟与启动
复位默认时钟:系统复位后,CPU 时钟默认由 16MHz 内部 RC 振荡器(HSI)提供,该 RC 振荡器经工厂校准,确保在全温度范围(-40℃~125℃等工业级场景)内,频率精度维持在 1% 以内。
系统时钟源切换:可以手动选择系统时钟源,支持两种路径:
- 内部 HSI:16MHz RC。
- 外部 HSE:4~26MHz 外部时钟源(晶体/陶瓷谐振器 或 时钟信号)。
- SW:系统时钟选择器,选择 SYSCLK的来源。
- PLLCLK:锁相环输出时钟,通过倍频技术,将 HSI/HSE 输入时钟放大至高频,F407 最高 168MHz。
时钟故障监测:持续监测外部时钟 HSE 运行状态,若检测到失效,硬件自动切回内部 RC 振荡器,同时可触发软件中断。
PLL 倍频:来自HSI/HSE的原始时钟信号,经过/M分频器(分频系数M=2–63)降低输入频率至VCO可接受范围,VCO×N倍频器输出高频信号到分频器,转化为多路可用时钟:/P–系统主时钟分频器输出SYSCLK,/Q–高速外设时钟分频器输出严格48MHz。
AHB - APB 分层总线架构:通过预分频器(Prescalers)灵活配置总线时钟:
- AHB 高速系统总线,连接 CPU、内存(SRAM/Flash)、高性能外设(如 DMA、ETH 以太网),最大频率 168MHz。
- APB 外设总线,进一步分为:
- APB2(高速域):连接对时钟速率敏感的外设(如 ADC、高级定时器 TIM1/TIM8),最大频率 84MHz。
- APB1(低速域):连接低功耗 / 低速外设(如 UART、I2C、基础定时器 TIM2 - TIM7),最大频率 42MHz。
PLLI2S:专为 I²S 音频接口设计,通过精准倍频 / 分频,生成稳定的 I²S 主时钟(I²S Master Clock),覆盖 8kHz~192kHz 标准音频采样频率。
2. CubeMX 时钟树
2.1 时钟源
- LSE (Low-Speed External): 外部低速晶振 32.768KHz,为 RTC 实时时钟提供精准计时。
- LSI (Low-Speed Internal): 内部低速 RC 振荡器,给独立看门狗 IWDG 提供独立可靠的时钟,或作为低功耗下的备用 RTC 时钟。
- HSE (High-Speed External): 外部高速晶振,支持 4-26MHz 范围,作为 系统时钟SYSCLK 和 PLL 的来源,或者供某些高速外设使用。
- HSI (High-Speed Internal): 内部高速 RC 振荡器16MHz,当HSE失效作为备用源,可以输入到PLL,系统启动时默认先使用HSI。
2.2 PLL 锁相环
- HSE/HSI --> PLL Source Mux选择 --> M分频器 --> N倍频器 --> P分频器 --> 主PLL输出 PLLCLK。
- Q分频器 给USB,SDIO,RNG 等外设提供 48MHz 时钟。
- PLLI2S 为音频接口 I2S 提供专用时钟。
2.3 时钟分发与选择
- System Clock Mux 决定了 SYSCLK 系统主时钟的来源:HSI,HSE,PLLCLK。
- SYSCLK 直接输入到 AHB Prescaler 可以被分频(可选择的分频系数为1,2,4,8,16,32,64,128,256,512)得到 HCLK,HCLK最高168MHz。
- APB1 Prescaler(分频因子可以选择1,2,4,8,16) 供低速外设使用,最高42MHz;APB2 Prescaler(分频因子可以选择1,2,4,8,16) 供高速外设使用,最高84MHz。
2.4 频率限制
各模块和总线的频率有上限,在CubeMX配置时,如果超出,相关框会变成醒目的红色或橙色警告。
- SYSCLK ≤ 168MHz。
- HCLK ≤ 168MHz。
- PCLK1 ≤ 42MHz。
- PCLK2 ≤ 84MHz。
- USB OTG FS 必须 48MHz ±0.25% (PLL48CLK)。
- 以太网 PTP ≤ 168MHz。
- VCO频率必须在100 - 432MHz之间。