当前位置:首页 > 技术学院 > 技术前线
[导读]系统时钟是STM32微控制器中最重要的部分之一,它负责提供时序信号以驱动处理器核心、外设和其他系统模块的运行。

一、STM32系统时钟概述

系统时钟是STM32微控制器中最重要的部分之一,它负责提供时序信号以驱动处理器核心、外设和其他系统模块的运行。

系统时钟通常由多个时钟源、时钟分频器和时钟树组成,这些组件共同构成了系统时钟的组成和层级结构。

01 前言

在嵌入式系统中时钟是其脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作。外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。

02 STM32时钟源

◆ HSI是高速内部时钟,RC振荡器,频率为8MHz。

◆ HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,比较常用的8MHz 12MHz 25MHz。

◆ LSI是低速内部时钟,RC振荡器,频率为40kHz。

◆ LSE是低速外部时钟,接频率为32.768kHz的石英晶体。

在STM32中每个外设都有其单独的时钟,在使用某个外设之前必须打开该外设的时钟 ,为什么要这么麻烦来设置每一个外设的时钟而不是将所有外设的时钟统一打开?因为STM32的外设繁多,外设的运作所需要的最佳时钟各不相同,如果所有时钟同时运行会给MCU带来极大的负载,所以STM32为了实现低功耗,而设计的功能完善构成复杂的时钟系统,称之时钟树。使外设功能的时钟可自配置。

03 STM32 时钟树

如果需要精度较高的RTC时钟,需要使用LSE,频率为32.768K提供一个精确的时钟源。

HSI为8M,和HSE相比精度较差,对于性能无要求场景又要节省成本使用HSI。

在时钟树系统中,主时钟选择由PLL生成,PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

css时钟监视系统但HSE失效时自动切换至HSI5、外设有独立的时钟分频配置,主要有USB、SDIO、FSMC、APB1、APB2、ADC等。APB1和APB2是俩个总线桥:APB1和APB2,其中APB1是低速总线,APB2是全速总线。

以STM32F105为例打开工程选择HSE,选择外部晶振作为输入。

二、STM32时钟源

时钟源用来产生系统时钟信号,STM32有以下内部时钟源和外部时钟源:

1. HSE

HSE(High-Speed External)是指高速外部时钟,使用外部晶振,常见频率有 8MHz、12MHz、16MHz等。

在STM32微控制器中,HSE通常被配置为系统的主时钟源,用于产生系统的主时钟信号。通过将HSE连接到微控制器的时钟输入引脚(通常是HSE引脚),可以将外部晶体振荡器的时钟信号输入到微控制器中。

2. HSI

HSI(High-Speed Internal)是指高速内部时钟,它由微控制器内部的8MHz RC振荡器提供,用于产生系统的主时钟信号。

HSI可直接作为系统时钟或2分频后作为PLL输入。

深度解析STM32 时钟

3. LSE

LSE(Low-Speed External)是指低速外部时钟,频率32.768kHz。它为实时时钟或其它定时功能提供一个低功耗且精确的时钟源。

4. LSI

LSI(Low-Speed Internal)低速内部时钟,频率大约是 40kHz(30kHz~60kHz之间),它可以在停机或待机模式下运行,可供看门狗使用或自动唤醒使用。

深度解析STM32 时钟

3. 时钟分频器

时钟分频器是用于将系统时钟频率分频为所需频率的模块。在STM32微控制器中,时钟分频器可以用于调整各个外设的时钟频率,以满足不同外设的工作要求。

时钟分频器有以下几种类型:

(1)AHB分频器

用于将系统主时钟(AHB 总线时钟)分频为用于驱动存储器和某些外设的时钟信号。

AHB是高性能系统总线,主AHB总线用于DMA、中断控制器等;子AHB总线连接到主AHB总线上,并连接到次要外设,如GPIO、SPI、I2C等。

(2)APB分频器

用于将 AHB 总线时钟分频为用于驱动低速外设的时钟信号。在STM32中,有两个APB总线,即APB1和APB2,它们分别驱动不同类型的外设。APB 分频器可以将 AHB 总线时钟分频为适合驱动这些外设的频率。

(3)锁相环PLL(Phase-Locked Loop)分频器

用于调整 PLL 时钟源的频率,以产生所需的系统时钟频率。通过调整 PLL 分频器的分频系数,可以实现将外部高频振荡器(HSE)的频率倍增到系统所需的主时钟频率。

三、时钟树

1. 时钟树

时钟树是指微控制器中各种时钟信号之间的关系和组织结构。

2. 主时钟输出MCO(Main Clock Output)

MCO 是 STM32微控制器中的主时钟输出功能。通过MCO功能,可以将系统的主时钟信号输出到特定的引脚,以供外部设备使用。

STM32微控制器通常提供一个或多个MCO引脚,用于输出主时钟信号。MCO引脚通常可配置为多种功能,如系统时钟(SYSCLK)、高速外部时钟(HSE)、PLL时钟等。

3. USB预分频器

USB预分频器的主要作用是根据输入时钟信号的频率,将其分频以生成USB所需的时钟信号。USB通信中的时钟信号要求精确,因此需要通过预分频器来保证时钟信号的稳定和准确性。

如果要在应用中使用USB接口,PLL必须被设置为输出48或72MHz时钟,用于提供48MHz的USBCLK时钟。

4. SYSCLK

SYSCLK是整个系统的主时钟信号,用于驱动CPU核心和大多数外设的时钟信号。

SYSCLK的源头通常来自于STM32微控制器中的晶体振荡器(HSE)或内部RC振荡器(HSI)。

SYSCLK 最大9倍频 * 8MHz 可以由PLLCLK提供72MHz频率。

5. PLLCLK

PLLCLK是指锁相环(PLL)产生的时钟信号,PLLCLK的频率是通过HSE或HSI的频率进行倍频得到的。

PLLCLK 可以通过相应的寄存器配置来设置PLL的工作参数,如倍频系数(PLLMUL)、分频系数(PLLDIV),以及时钟源的选择(HSE或HSI)。通过合适的配置,可以得到所需的PLLCLK频率。

6. RTC时钟

RTC时钟用于提供准确的实时时钟和日历功能,通常与外部32.768kHz晶体振荡器配合使用。

四、RCC寄存器

RCC(Reset and Clock Control)主要负责系统时钟的控制和管理,它提供了一系列的寄存器,用于配置和控制处理器的时钟源、时钟频率和时钟分频器,以及外设的时钟使能和配置。

系统时钟设置步骤

1. 步骤说明

选择时钟源:

首先需要确定系统时钟源,通常可以是内部时钟源(HSI 或 HSE)或外部时钟源(例如外部晶体振荡器)。

配置时钟源:

根据需要,使能并配置所选的时钟源。对于外部时钟源,需要配置外部晶体振荡器(HSE)或外部时钟输入(例如 HSE 或者 PLL)。对于内部时钟源,例如 HSI,可以直接使能。

配置 PLL(可选):

如果需要更高的系统时钟频率,则可以配置 PLL 来实现时钟倍频。在这一步中,需要设置 PLL 的输入时钟源、倍频系数以及输出时钟频率。

配置时钟分频器:

配置 AHB、APB1 和 APB2 的分频系数,以确定这些总线的时钟频率。这些分频系数可以根据系统需求进行调整,以满足外设的时钟要求。

等待时钟稳定:

对于外部时钟源(如 HSE),需要等待其稳定后再切换到该时钟源。

切换系统时钟:

最后,将系统时钟切换到所选的时钟源。确保切换后,系统时钟以正确的频率运行,并且各个外设和总线的时钟也被正确配置。

配置 Flash 读取延迟:

根据新的系统时钟频率,配置 Flash 存储器的读取延迟以确保稳定的 Flash 访问速度。这一步对于高频率下的系统运行至关重要。

五、SystemInit()初始化时钟分析

系统复位后,HSI被选为系统时钟

STM32的启动代码中,通常会包含一个名为SystemInit()的函数,该函数用于初始化系统的时钟和其他重要的系统配置。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭