找回密码
 立即注册
首页 业界区 安全 时钟系统(基于stm32f1)

时钟系统(基于stm32f1)

拼匍弦 2025-5-31 23:57:11
时钟系统(基于stm32f1)

0. 提要

本文将基于cubemx中的时钟树配置结合datasheet来讨论stm32的时钟系统, 从左到右, 从上到下
1.png

图1-stm32cubemx f1 芯片时钟树
2.png

图2-简化时钟树(源自keysking)
1. 时钟树时钟源

1.1 高速时钟源

1.1.1 高速时钟源的作用


  • 支持芯片高性能运行, 使得系统有快速响应, 高速计算的能力
  • 高速片上外设提供时钟源, 例如: USB接口(48Mhz), ADC(如1 MSPS采样率需至少14 MHz ADC时钟), UART, SPI等通信接口
1.1.1.2 高速时钟源的选择


  • HSI(High Speed Internal Clock): 高速内部时钟源, 由芯片内部RC振荡器(F1系列为8Mhz)提供, 受温度电压影响大
  • HSE(High Speed External Clock): 高速外部时钟源, 由外部晶振提供, 能够带来更高的精度, 且相较HSI, 更不易受到外部影响, 缺点是需要额外的晶振及其相关电路
  • HSE的精度和稳定性不一定比HSI强, 笔者曾使用过TI的MSPm03507芯片, 外部晶振40Mhz, 但是经过测试使用HSE会导致串口波特率出现严重波动导致通信失败, 而使用内部的RC振荡器却不会出现该问题
1.2 低速时钟源

1.2.1 低速时钟源的作用


  • 为芯片提供低功耗运行的时钟源
  • 低速片上外设提供时钟源, 例如: 独立看门狗(IWDG), 实时时钟(RTC), 低功耗定时器(LPTIM)
1.1.1.2 低速时钟源的选择


  • LSI(Low Speed Internal Clock): 低速内部时钟源, 由芯片内部RC振荡器(F1系列为40Khz)提供, 受温度电压影响大
  • LSE(Low Speed External Clock): 低速外部时钟源, 由外部晶振(一般为32.768Khz, 2的次幂数, 可分频到1hz, 为RTC提供时钟源)提供, 能够带来更高的精度, 且相较LSI, 更不易受到外部影响, 缺点是需要额外的晶振及其相关电路
1.3 锁相环(PLL)


  • 作用:

    • 无论是HSI还是HSE, 一般都不会为芯片直接提供最高频率, 而是需要通过锁相环(PLL)进行倍频, PLL的出现, 为时钟速率提供了更为灵活更为宽阔的选择, 同时能实现高性能和低功耗之间的平衡
    • 通过PLL闭环控制频率, 一定程度上减少HSE, HSI的频率抖动

  • 原理: 通过反馈来实现频率的稳定输出, 实现的原理可以自己去查
2. 系统时钟到外设时钟

2.1 SYSCLK


  • 整个系统的核心时钟源,所有其他时钟(HCLK、APB1/APB2等)均由其分频或直接派生。
  • 来源:  HSI HSE PLL
2.2 HCLK(AHB总线时钟)


  • AHB总线: 为高速片上外设提供的, 例如DMA, SRAM, Core, Flash
2.3 APB1与APB2


  • 挂载在AHB总线
2.3.1 APB1(低速外设总线)


  • 来源:HCLK经过APB1分频器。
  • 最大频率:36 MHz(STM32F1系列)。
  • 连接外设:连接低速外设, 例如通用定时器, 基本定时器, 串口, SPI, IIC, RTC, WWDG, DAC等
2.3.2 APB2(高速外设总线)


  • 来源:HCLK经过APB2分频器。
  • 最大频率:72 MHz(STM32F1系列)。
  • 连接外设:连接高速外设, 例如高级定时器, GPIO, 高速SPI, ADC, USB等
以上APB1和APB2挂载的外设主要以datasheet实际内容为主
2.4 FCLK


  • 定义:专为Cortex-M内核提供的时钟,独立于HCLK,用于调试和低功耗场景。
  • 来源:与HCLK同源(但不受AHB分频器影响)。
3. 从datasheet看时钟树

stm32f103c8t6-datasheet-在线-立创商城
进入手册后 ctrl+F 搜索 performance line block diagram
3.png

从这个 performance line block diagram ,这个框图我们可以清晰直观的看见, MCU中的总线系统, 以及时钟树, 快速了解AHB, APB1, APB2上的最高时钟频率以及挂载的片上外设, 方便我们对芯片的性能以及外设有一个快速的基本的了解
4. 本文链接:

时钟系统(基于stm32f1) - 林接接 - 博客园

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册