4、STM32心脏之时钟初认
1、为什么要学习时钟信号
1. 同步功能
- 时钟信号的核心作用之一是在整个系统中提供时间基准,用于协调各个模块的操作。
- 通过统一的时间基准,可以确保所有的硬件组件按照预定顺序执行操作。
- 例如,在同步数字电路中,所有触发器的动作都与时钟边沿(上升沿或下降沿)同步,从而实现精确的控制。
2. 数据传输与处理节奏
- 在计算机体系结构中,时钟信号决定了数据流的速度以及处理器内部各阶段的工作节拍。
- CPU 的指令周期、寄存器之间的数据传递以及其他复杂运算均依赖于稳定的时钟源来维持其正常运行。
- 如果缺少可靠的时钟驱动,则可能导致错误的数据采样或者丢失重要信息。
3. 防止竞争条件与提高可靠性
- 利用固定频率的时钟脉冲能够有效避免因异步事件引发的竞争冒险现象(即多个输入几乎同时改变),进而提升系统的稳定性和抗干扰能力。
- 此外,合理设计下的时钟网络还可以减少电磁兼容性问题带来的影响。按键消抖处理
4. 功耗管理考量
- 虽然高速运转带来更强性能表现,但同时也伴随着更高能耗成本;
- 因此现代微处理器往往采用动态电压调节技术和可变频机制以适应不同负载需求场景下最优效率配置方案的选择——这背后离不开精准调控的时钟管理系统支持.
1、系统滴答定时器(Systick)
1、什么要学它?
- 系统滴答定时器作为嵌入式系统中的核心组件,提供了精确的时间基准,用于实现时间敏感的任务调度和延迟操作。
- 它是许多实时操作系统(RTOS)的关键组成部分,负责维护系统时间和任务的周期性执行
2、滴答定时器详解
-
系统滴答定时器内嵌在CM内核的一个外设,和NVIC捆绑在一起
- 由于属于内核外设需从内核芯片手册中查看
- CM3权威指南或者Cortex M3/M4权威指南
- 采用时间片轮询的方式
- 产生周期性中断
- 用于产生SYSTICK异常
- 操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。
- 应用
- 为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;
- 把每个定时器周期的某个时间范围赐予特定的任务等
- 操作系统提供的各种定时功能,都与这个滴答定时器有关。
- 裸机开发:
- 编写专门的延时函数,实现微秒、毫秒级别的延时,如作为闹钟或者延时。
- 操作系统:
- 可以为RTOS实时操作系统的任务调度提供时钟节拍,RTOS的架构是并行的。
- 时钟源
- 外部时钟(STCLK)
- 内部时钟(FCLK)
- 由于属于内核外设需从内核芯片手册中查看
3、时钟频率
-
之前讲到外设是挂载到总线上的,而总线频率又是由时钟提供的
-
使用系统滴答定时器则确定时钟频率至关重要
- 也就是计算机处理器内部时钟每秒产生的脉冲次数,单位通常是赫兹(Hz)
-
时钟源则是提供不同的时钟信号,主要分为
谐振器和负载电容必须尽可能地靠近振荡器的引脚,以尽量减小输出失真和起振稳定时间。
-
外部时钟
-
HSE 振荡器时钟(High Speed External)
- HSE 外部晶振/陶瓷谐振器
- 晶振全称晶体振荡器,一般采用石英晶体制作,石英晶体必须经过高精度的角度切割,才可以用于制作晶振.
- 采用石英晶体的原因是石英晶体具有机电效应,可以把机械能和电能进行转换,石英晶体通电之后会开始震荡,并且单位时间内震荡的频率是固定的,并且石英晶体低损耗,高度稳定
- HSE 外部用户时钟
-
32.768 kHz 低速外部晶振(LSE 晶振)
- 用于驱动 RTC 时钟 (RTCCLK)
- 作为实时时钟外设 (RTC) 的 时钟源来提供时钟/日历或其它定时功能,
- 具有功耗低且精度高的优点。
-
-
内部时钟
- HSI震荡时钟(High Speed External)
- 频率为16Mhz,可直接作为系统时钟
- 启动速度比HSE晶振速度快,但精度不如外部晶振或者陶瓷谐振器
- 32 kHz 低速内部 RC (LSI RC),
- 用于驱动独立开门狗
- 看门狗定时器本质上是一种特殊的定时器,用于监控嵌入式系统的运行状态。其主要职责是在系统因软件错误或其他原因陷入停滞或失控时,主动介入并采取措施恢复系统正常操作
- 提供给 RTC 用 于停机/待机模式下的自动唤醒
- 用于驱动独立开门狗
- HSI震荡时钟(High Speed External)
-
PLL倍频锁相环
-
-
那怎么通过寄存器控制时钟外设
- 设置好产生中断的频率
- 单位时间生成时钟信号的次数
- 生成每个信号的脉冲周期 1/168us
- 1hz则是1秒数一个
- 频率由芯片的参考手册观看
-
有个两个时钟源
- 提供总线频率 -----总线提供外设频率
- 外部时钟
- 参考stm32中文参考手册
- 五种时钟源
- HSI
- High Speed Internal
- 16Mhz,可直接用于系统时钟
- 精度不及外部晶振和陶瓷谐振器
- 可用于低功耗电路
- HSE
- High Speed External
- 晶振叫做晶体振荡器,一般采用石英晶体制作,石英晶体必须经过高精度的角度切割,才可以用于晶振,采用石英晶体管的原因则是石英具有机电效应,可以把机械能和电能进行转换,石英通电之后会开始震荡,并且单位时间内震荡频率是固定得,比如,8Mhz,16Mhz等等
- 根据原理图看晶振原件(可查看硬件)
- 不同开发板使用不同晶振
- 晶振电路需要记住
- 电容是测出来的
- 设计晶振时应注意:晶振电路尽可能的里芯片近一些,为什么让晶振震得又快又准,起振轻松,减小误差
- LSE
- Low Speed External
- 可以作为实时时钟外设(RTC)real time Clock
- 用来记录数据和日历
- 32.768khz
- 可以作为实时时钟外设(RTC)real time Clock
- Low Speed External
- LSI
- 低速内部时钟
- 低功耗模式下在停机或待机模式下保持
- 时钟可以切换
- 低速内部时钟
- PLL设置
- 倍频锁相环,频率放大器,可以通过锁相带你路把较低得 的频率进行倍频
- 分频指的降低频率
- 由HSE或HSI震荡器提供时钟信号
- 找到帮助文件查看例子
- crystal晶振
- 如果用户是不不同频率晶振,则需要修改HSE_value的值
- prescaler 预分频值
- MCU主频计算
- (HSE_VALUE/PLL_M*PLL_N/)
- HSI
- 内部时钟
-
时钟的区别
- 内部时钟FCLK
- 如果选择内部时钟168Mhz作为系统滴答定时器
- 外部时钟 HCLK
- 系统定时器 Systemtick
- 内部时钟FCLK
-
如果Systick的寄存器相同的情况下,并且准备定时的时间相同的情况下,肯定选择外部好
-
中文手册是芯片内,内核外的
-
内核里的外设,需要去内核文档中找
-
基本应用
- 闹钟或者延时
Mhz作为系统滴答定时器 - 外部时钟 HCLK
- 系统定时器 Systemtick
- 闹钟或者延时
-
如果Systick的寄存器相同的情况下,并且准备定时的时间相同的情况下,肯定选择外部好
-
中文手册是芯片内,内核外的
-
内核里的外设,需要去内核文档中找
-
基本应用
- 闹钟或者延时