STM32时钟树与SysTick

本文深入解析了STM32微控制器的时钟系统,包括HSI、HSE、LSI、LSE和PLL等时钟源的工作原理,以及如何配置这些时钟源来满足不同外设的需求。此外,还详细介绍了SysTick定时器的寄存器配置和功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识回顾: 

        锁相环(Phase-Locked Loop,PLL),是一个能够比较输出与输入相位差的反馈系统,利用外部输入的参考信号控制环路内部振荡信号频率和相位,使振荡信号同步至参考信号

        鉴相器有两个输入,分别是晶振信号的输入f1、VCO的输出f2,将两个信号进行比较,如果这两个信号存在相位差异或频率差异,则鉴相器就会在存在差异的这一段进行输出。鉴相器不停的调整输出的电压,使两个相位或频率快速保持一致

        由于鉴相器输出的是矩形波,高低电平存在突变,低通滤波器可以让信号变得很平滑。输出的波形如下图所示

        倍频,就是在回馈支路上加了一个分频器,经过鉴相器不停的调整输出的电压,使两个相位或频率快速保持一致

时钟:具有周期性的脉冲信号,最常见的是占空比为50%的方波

一、时钟树:

        STM32F103单片机微处理器的神经中枢是时钟系统,时钟系统为整个硬件系统的各个模块提供时钟信号。由于各个外设对时钟信号有自己的要求,这就需要设置多个振荡器,分别提供时钟信号,或者从一个主振荡器开始经过多次倍频、分频、锁相环电路,生成各个模块的独立信号

        片上外设在上电情况下默认是没有时钟信号的,此目的是降低功耗

        使用某一个外设之前,必须先使能该外设的时钟

        在STM32中有5个时钟源,分别是HSI(High-Speed Internal Clock Sgnal)、HSE(High-Speed External Clock Sgnal)、LSI(Low-Speed Internal Clock Sgnal)、LSE(Low-Speed External Clock Sgnal)、PLL(Phase Locked Loop)

(1)HSI:高速内部时钟信号8MHz

        通过8MHz的内部RC振荡器产生,并且直接可以用作系统时钟,或者经过2分频后作为PPL的输入

(2)HSE:高速外部时钟信号4~16MHz(一般接8MHz)

        使用外部陶瓷/晶体振荡器产生。HSI比HSE有更快的启动速度,但频率精确度没有外部晶振高

(3)LSI:低速内部时钟信号30~60KHz

        作为低功耗时钟源,可以在停机和待机模式下保持运行状态,为独立看门狗和自动唤醒单元提供时钟

(4)LSE:低速外部时钟信号32.768KHz

        低速外部晶体/陶瓷振荡器,它为RTC或其他功能提供低功耗且精确的时钟源

(5)PLL:锁相环倍频输出

        PLL用来倍频HSI或HSE,时钟输入源可选择HSI/2、HSE或HSE/2,倍频可选择2~16倍,但输出频率最大为72MHz

        除此之外,STM32还具有系统时钟SYSCLK。SYSCLK为STM32中绝大部分部件工作提供时钟源。系统时钟可以选择PPL输出、HSI或HSE

CSS:时钟安全系统

        CSS(Clock Security System):时钟安全系统。当外部时钟HSE失效,自动把外部时钟HSI切换到内部时钟,保障系统时钟的运行

FCLK:自由运行时钟

        用于采样中断和调试模块计时,休眠仍有效

        启动文件在完成复位后跳转到main()之前调用system_stm32f10x.c中的SystemInit()用来初始化系统时钟(系统时钟源、PLL倍频因子、AHB/APBx的预分频及其Flash)

二、SysTick滴答定时器

        SysTick,即系统滴答滴答定时器,是一个24位递减的计数器

2.1 SysTick寄存器

2.1.1 状态控制寄存器CTRL(0xE000 E010)

(1)内部时钟(FCLK,自由运行时钟,1分频)

(2)外部时钟(HCLK,8分频)

2.1.2 重装载寄存器LOAD(0xE000 E014)

2.1.3 当前数值寄存器VAL(0xE000 E018)

2.1.4 校准数据寄存器CALIB(0xE000 E01C)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值