简介

本文以STM32F103C6系列为例,尝试学习理解 STM32 时钟电路

时钟

对应手册第 7 章
https://www.st.com.cn/resource/en/reference_manual/rm0008-stm32f101xx-stm32f102xx-stm32f103xx-stm32f105xx-and-stm32f107xx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf

Power reset

reset逻辑图
可以看到复位图中有内置上拉电阻 Rpu,即只有外部输入低电平时才能导通并触发复位

从左上到右下看:

  • NRST 按键需要默认高电平,当按下按键后切位低电平导通上拉电阻触发系统复位
  • 三角形器件是比较器,检测 NRST 引脚的电压水平,并将其转换为数字信号
  • 滤波器去除噪声干扰保证复位信号稳定
  • 下面接地的是一个 NMOS 管,右侧脉冲触发器输出高电平导通
  • 脉冲触发器产生至少 20us 复位脉冲确保复位可靠性
  • 右下角是一个或门电路,表示任意输入有效即可导通触发脉冲触发器

这张图完美展示了产生系统 reset 的所有触发源

  • NRST
    通常是开发板上的一个物理按键
  • WWDG reset
    窗口看门狗饿死了触发
  • IWDG reset
    独立看门狗饿死了触发
  • Power reset
    • 上电/断电复位
    • 从低功耗待机模式推出时产生复位
  • Software reset
    通过程序写SYSRESETREQ寄存器位触发复位
  • Low-power management reset
    • 进入待机模式时产生复位(nRST_STDBY 置位)
    • 进入停止模式时产生复位(nRST_STOP 置位)

Clocks

时钟树

  • OSC_IN/OUT:高速外部时钟
    • HSE = High-speed external clock signal
  • OSC_32_IN/OUT:低速外部时钟
    • LSE = Low -speed external clock signal
  • HSI RC:高速内部(电阻-电容)时钟
    • HSI = High-speed internal clock signal
  • LSI RC:低速内部时钟
    • LSI = Low-speed internal clock signal

上面四种时钟源可以四选一配置成驱动 MCU 工作的主时钟,一般选 HSE,避免选 RC 时钟,原因是精度低且受温度变化影响

几种器件图

  • 锁相环,输入时钟乘以固定倍数实现频率倍增
  • 分频器,输入时钟除以固定值实现降低频率
  • 选择器,根据配置选择多个输入里的一个作为输出

72MHz

从数据手册首页看到描述72 MHz maximum frequency,是选用 HSE 作为系统时钟,通过锁相环(PLL,或叫频率合成器)后放大至 72MB
72MHz时钟产生