时钟系统(基于stm32f1)
0. 提要
本文将基于cubemx中的时钟树配置结合datasheet来讨论stm32的时钟系统, 从左到右, 从上到下
图1-stm32cubemx f1 芯片时钟树
图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
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
从这个 performance line block diagram ,这个框图我们可以清晰直观的看见, MCU中的总线系统, 以及时钟树, 快速了解AHB, APB1, APB2上的最高时钟频率以及挂载的片上外设, 方便我们对芯片的性能以及外设有一个快速的基本的了解
4. 本文链接:
时钟系统(基于stm32f1) - 林接接 - 博客园
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |