MCU中的 HSI、HSE、LSI、LSE

MCU中的 HSI、HSE、LSI、LSE

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

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


概览

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

  1. 速度/用途

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

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

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

时钟源全称中文名类型来源主要特点与用途
HSIHigh-Speed Internal高速内部时钟高速内部RC成本低,启动快,精度一般,可作为备份时钟或系统时钟
HSEHigh-Speed External高速外部时钟高速外部晶振精度高,稳定,作为主系统时钟源,用于USB、以太网等
LSILow-Speed Internal低速内部时钟低速内部RC低功耗,精度低,主要为独立看门狗RTC提供时钟
LSELow-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 + LSEHSE提供稳定高速主时钟,LSE为RTC提供精确计时。
成本敏感型应用,计时要求不高HSI + LSI无需外部晶振,成本最低。LSI可为看门狗和基本RTC提供时钟。
需要精确计时但成本有一定限制HSI + LSE放弃昂贵的高速晶振,但保留精确的RTC时钟。
极端低功耗应用(如电池设备)HSE + LSEMSIHSE效率可能更高。新一代MCU(如STM32L系列)有MSI,一种多速度内部时钟,在功耗和灵活性上更优。

关键要点

  • HSI是“保底”时钟,HSE是“高性能”时钟。
  • LSI是“看门狗专用”时钟,LSE是“精确RTC专用”时钟。
  • 理解这四者的区别,是进行MCU初始化配置、电源管理和故障诊断的基础。在system_stm32fxxx.chal_conf.h等配置文件中,你会频繁地与它们打交道。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yashar Qian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值