MCU中的 HSI、HSE、LSI、LSE

MCU中的 HSI、HSE、LSI、LSE

HSI、HSE、LSI、LSE是STM32等ARM Cortex-M系列MCU中四种重要的时钟源。理解它们是进行MCU配置和低功耗设计的基础。

下面我将对这四种时钟源进行详细的解释和对比。


概览

这四种时钟源可以根据两个维度进行分类:

  1. 速度/用途

    • 高速时钟:为系统内核、外设等提供主时钟。
    • 低速时钟:主要为实时时钟、独立看门狗等特定外设提供时钟。
  2. 来源

    • 内部时钟:由芯片内部RC振荡电路产生,成本低,启动快,但精度相对较低。
    • 外部时钟:需要外接晶体/陶瓷谐振器,成本高,启动慢,但精度非常高。

组合起来,就得到了我们熟悉的四种时钟源:

时钟源 全称 中文名 类型 来源 主要特点与用途
HSI High-Speed Internal 高速内部时钟 高速 内部RC 成本低,启动快,精度一般,可作为备份时钟或系统时钟
HSE High-Speed External 高速外部时钟 高速 外部晶振 精度高,稳定,作为主系统时钟源,用于USB、以太网等
LSI Low-Speed Internal 低速内部时钟 低速 内部RC 低功耗,精度低,主要为独立看门狗RTC提供时钟
LSE Low-Speed External 低速外部时钟 低速 外部晶振 精度高,功耗低,专为RTC提供精确时钟

详细解析

1. HSI - 高速内部时钟
  • 产生方式 :芯片内部的RC振荡器,通常频率为8MHz16MHz(具体取决于MCU型号,如STM32F1多为8MHz,STM32F4多为16MHz)。
  • 优点
    • 成本低:无需外部元件。
    • 启动快:上电后很快就能稳定工作。
  • 缺点
    • 精度低:受温度、电压影响较大,典型精度在±1%到±2%之间,不适合对时序要求严格的外设(如USB)。
  • 典型应用
    • 芯片复位后的默认系统时钟。
    • 当HSE失效(如外部晶振故障)时,自动切换到的安全时钟源。
    • 作为PLL的输入时钟,倍频后得到更高的系统时钟。
2. HSE - 高速外部时钟
  • 产生方式:外接4-26MHz(常见为8MHz或25MHz)的晶体/陶瓷谐振器或直接接入外部有源时钟源。
  • 优点
    • 精度高:非常稳定,精度可达±10ppm(百万分之十)。
    • 稳定性好:不受芯片内部温度和电压变化影响。
  • 缺点
    • 成本高:需要额外的外部元件和PCB面积。
    • 启动慢:需要较长的起振时间。
  • 典型应用
    • 主系统时钟:大多数对性能要求高的应用都使用HSE作为系统时钟源。
    • 精确外设的时钟源:为USB、以太网等需要精确时钟的外设提供时钟。
    • PLL的输入:通过PLL倍频,为MCU提供高频率的系统时钟(如8MHz晶振倍频到72MHz,168MHz等)。
3. LSI - 低速内部时钟
  • 产生方式 :芯片内部的低速RC振荡器,频率通常为32kHz或40kHz。
  • 优点
    • 成本低:无需外部元件。
    • 低功耗:在低功耗模式下(如Stop、Standby)仍可运行。
  • 缺点
    • 精度非常低:比HSI的精度更差。
  • 典型应用
    • 独立看门狗:看门狗只需要一个大致的时间基准,对精度要求不高,LSI完全满足。
    • RTC:在不需要精确计时,且对成本敏感的应用中,可以为RTC提供时钟。
4. LSE - 低速外部时钟
  • 产生方式:外接32.768kHz的晶体。这个频率值是 (2^{15}),便于进行15次分频后得到精确的1Hz信号。
  • 优点
    • 精度高:提供非常精确的1Hz时钟信号。
    • 功耗极低:在低功耗模式下运行,对系统整体功耗影响很小。
  • 缺点
    • 成本高:需要外部晶振。
  • 典型应用
    • RTC :为实时时钟提供精确的时钟源,用于日历、计时等。这是LSE最主要、最核心的用途。
    • 低功耗模式下的时钟:在低功耗模式下,可以作为某些定时器的唤醒时钟源。

时钟系统框图与工作流程

一个简化的STM32时钟系统框图可以帮助理解它们的关系:

复制代码
                                      +-------------------+
                                      |       PLL         |
                                      | (Clock Multiplier)|
                                      +---------+---------+
                                                |
                                                v
+----------------+                    +---------+---------+
|   HSE Oscillator|--+                |    System Clock   |
|   (e.g., 8MHz)  |  |                |   (SYSCLK, e.g.,  |--> CPU, Memory, etc.
+----------------+  |                |      72MHz)       |
                    |                +-------------------+
                    v                |
+----------------+  |  +---------+   |  +----------------+
|   HSI RC       |--+->| MUX /   |---+  | AHB Prescaler  |--> High-Speed Buses
|   (e.g., 8MHz) |     | Switch  |      +-------------------+
+----------------+     +---------+         |
                    |                |  +----------------+
                    |                |  | APB Prescalers |--> Peripherals (TIM, USART, etc.)
                    |                |  +----------------+
                    v                |
+----------------+  |                |
|   LSE Crystal  |--+                |
|   (32.768kHz)  |                   |
+----------------+                   |
                    |                |
+----------------+  |                |
|   LSI RC       |--+                |
|   (32kHz)      |                   |
+----------------+                   |
                                     |
                              +------+------+
                              | RTC & IWDG |--> Real-Time Clock & Independent Watchdog
                              +-------------+

工作流程举例(STM32F103)

  1. 上电后,默认使用HSI(8MHz) 作为系统时钟。
  2. 在软件中,使能HSE(8MHz晶振),等待其稳定。
  3. 配置PLL,将HSE作为输入,倍频9倍,输出72MHz
  4. 将系统时钟源从HSI切换到PLL输出。此时,系统就以72MHz运行。
  5. 同时,使能LSE(32.768kHz) 作为RTC的时钟源,用于精确计时。
  6. LSI始终处于使能状态,为独立看门狗提供时钟。

总结与选择建议

场景 推荐时钟源 理由
高性能应用,需要USB、网络 HSE + LSE HSE提供稳定高速主时钟,LSE为RTC提供精确计时。
成本敏感型应用,计时要求不高 HSI + LSI 无需外部晶振,成本最低。LSI可为看门狗和基本RTC提供时钟。
需要精确计时但成本有一定限制 HSI + LSE 放弃昂贵的高速晶振,但保留精确的RTC时钟。
极端低功耗应用(如电池设备) HSE + LSEMSI HSE效率可能更高。新一代MCU(如STM32L系列)有MSI,一种多速度内部时钟,在功耗和灵活性上更优。

关键要点

  • HSI是"保底"时钟,HSE是"高性能"时钟。
  • LSI是"看门狗专用"时钟,LSE是"精确RTC专用"时钟。
  • 理解这四者的区别,是进行MCU初始化配置、电源管理和故障诊断的基础。在system_stm32fxxx.chal_conf.h等配置文件中,你会频繁地与它们打交道。
相关推荐
爱吃程序猿的喵8 小时前
STM32嵌入式系统开发实战1:OLED显示、串口通信与GPIO控制
stm32·单片机·嵌入式硬件
恒锐丰小吕12 小时前
晶准 RB302B 内置MOSFET锂电池保护芯片技术解析
嵌入式硬件·硬件工程
TangDuoduo000513 小时前
【电感基础与特性】
stm32·单片机·嵌入式硬件
许商13 小时前
【stm32】【SD】SDIO fatfs
stm32·单片机·嵌入式硬件
就是蠢啊13 小时前
51单片机——独立按钮、矩阵按键
单片机·嵌入式硬件·51单片机
云山工作室14 小时前
多传感器融合的办公室智能门禁系统(论文+源码)
stm32·单片机·嵌入式硬件·物联网·毕业设计·课程设计
天天爱吃肉821815 小时前
智能网联汽车信息安全深度解析:从UN-R155与GB44495标准到OBD/UDS技术实践
网络·嵌入式硬件·汽车
小曹要微笑18 小时前
STM32H7系列全面解析:嵌入式性能的巅峰之作
c语言·stm32·单片机·嵌入式硬件·算法
小曹要微笑18 小时前
STM32F103ZET6 全面详解
单片机·嵌入式硬件
Python小老六1 天前
STM32 Flash:扇区、页、块
stm32·单片机·嵌入式硬件