🟦 u5-05 时钟与复位:RCC、PLL 与复位源
🟦 STM32U575 数据手册初学者精讲 · 第 5 / 10 章
🗨️ 时钟系统是 MCU 的脉搏:U575 提供 MSI/HSI16/HSI48/HSE/LSE 等多种时钟源,三套 PLL 给不同总线供电,复位源也比 F103 更丰富。
这一章在干嘛? 搞懂 U575 的时钟树怎么长、怎么选时钟源、三套 PLL 各有什么用,以及上电/掉电/软件复位都怎么触发。
时钟源:内部与外部
U575 的时钟源可以粗分为:
| 时钟源 | 频率 | 精度 | 典型用途 |
| MSI | 100 kHz ~ 48 MHz 可配 | 中等 | 低功耗 Run/Sleep、快速启动 |
| HSI16 | 16 MHz | ±1% | 默认系统时钟、快速启动 |
| HSI48 | 48 MHz | 中等 | USB 需要 48 MHz 时 |
| HSE | 4 ~ 48 MHz(外部晶振) | 高 | 需要高精度时钟或 PLL 倍频 |
| LSE | 32.768 kHz(外部晶振) | 高 | RTC、低功耗时钟源 |
| LSI | 32 kHz 内部 | 较低 | IWDG、RTC 备选 |
默认上电后 U575 用 MSI 或 HSI16 作为系统时钟,保证尽快跑起来;你的代码可以再切换到 HSE + PLL 获取 160 MHz。
三套 PLL:不只是给 CPU 用
U575 有 PLL1、PLL2、PLL3:
| PLL | 常见用途 |
| PLL1 | 系统时钟、CPU/AHB/APB 总线 |
| PLL2 | 给 USB、SDMMC、ADC、SAI 等外设提供独立时钟 |
| PLL3 | 给更多外设如 ADF、USART、SPI 等提供灵活时钟 |
多 PLL 的好处是:外设可以拿到最合适的频率,而不受 CPU 时钟牵连。比如 USB 必须 48 MHz,你可以让 PLL2 专门产生,CPU 跑 160 MHz 不受影响。
配置时钟时,务必确认目标外设的输入时钟范围。数据手册每章外设部分都有「Clock source」和最大时钟限制。
总线时钟:HCLK、PCLK1/2/3
时钟经过分频后进入不同总线:
| 总线 | 最高频率 | 挂载外设 |
| AHB(HCLK) | 160 MHz | DMA、GPIO、Flash、SRAM 等 |
| APB1(PCLK1) | 160 MHz | TIM2/3/4/5、USART2/3、UART4/5、SPI2/3、I2C1/2/4、FDCAN、UCPD 等 |
| APB2(PCLK2) | 160 MHz | TIM1/8/15/16/17、USART1、SPI1、SAI1、SDMMC1 等 |
| APB3(PCLK3) | 100 MHz | LPTIM1/3/4、LPUART1、I2C3、SPI3、ADF1、OPAMP、COMP 等 |
APB3 域属于低功耗域,很多外设在 Stop 模式下仍可运行。
复位源:不只是按 RESET 键
U575 的复位来源包括:
- 上电/掉电复位 POR/PDR:VDD 上升/下降到阈值时自动复位。
- BOR brown-out 复位:可配置阈值,电压跌落到阈值以下复位。
- 外部 NRST 引脚:就是复位按键。
- 软件复位:写 AIRCR 寄存器。
- 看门狗复位:IWDG/WWDG 超时。
- 选项字节加载复位:修改选项字节后自动复位。
如果程序一运行就反复复位,先看电源是否稳定,再看 BOR 阈值设得是否太高。
CRS:时钟恢复系统
CRS 可以利用 USB SOF(Start of Frame)或 LSE,自动微调 HSI48 的频率。做 USB 设备时特别有用:没有外部晶振也能让 USB 时钟足够精确。
🧠 小测验U575 默认上电用什么时钟源?
MSI 或 HSI16(取决于配置)。
PLL 的主要作用是什么?
倍频时钟,让 CPU 和外设得到更高、更灵活的频率。
BOR 复位和 POR 复位有什么区别?
POR 是固定阈值的上电/掉电复位;BOR 是可配置阈值的欠压复位。