历史上的今天

今天是:2024年11月12日(星期二)

2021年11月12日 | stm32之时钟控制

发布者:星光小狐狸 来源: eefocus关键字:stm32  时钟控制  总线矩阵 手机看文章 扫描二维码
随时随地手机看文章

本文提到的有以下内容:

  • 时钟系统与总线矩阵

  • SysTick系统定时器

  • RTC实时时钟

  • 看门狗定时器

  • 通用定时器

 

一、时钟系统与总线矩阵

  stm32F4的时钟树如下图所示:

  在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。

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

  • HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。

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

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

  • PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

  我们在学习51单片机的时候,其内部是没有晶振的,而stm32是有的。stm32可以通过RCC(时钟控制寄存器)对时钟进行参数配置以及使能。我们还可以通过修改system_stm32f4xx.c文件,来配置上述时钟树上的一些分频、倍频参数,得到理想的频率。


   在单片机系统中,CPU和总线以及外设的时钟设置是非常重要的,因为没有时钟就没有时序,组合电路需要好好理解清楚。我们先来看

一下总线矩阵。

  片上总线标准种类繁多,而由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。AMBA规范主要包括了AHB(Advanced High performance Bus)系统总线和APB(Advanced Peripheral Bus)外围总线。二者分别适用于高速与相对低速设备的连接。


   一般性的时钟设置需要先考虑系统时钟的来源,是内部RC还是外部晶振还是外部的振荡器,是否需要PLL。然后考虑内部总线和外部总线,最后考虑外设的时钟信号。遵从先倍频作为CPU时钟,然后在由内向外分频,下级迁就上级的原则。  

 

二、SysTick系统定时器  

  SysTick—系统定时器是属于CM4内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK等于180M。当重装载数值寄存器的值递减到0的时候,系统定时器就产生一次中断,以此循环往复。


  因为SysTick是属于CM4内核的外设,所以所有基于CM4内核的单片机都具有这个系统定时器,使得软件在CM4单片机中可以很容易的移植。

系统定时器一般用于操作系统,用于产生时基,维持操作系统的

心跳。


  一般用于系统内部运行以及延时函数

 

三、RTC实时时钟

  RTC(Real-Time Clock)实时时钟为操作系统提供了一个可靠的时间,并且在断电的情况下,RTC实时时钟也可以通过电池供电,一直运行下去。


  RTC通过STRB/LDRB这两个ARM指令向CPU传送8位数据(BCD码)。数据包括秒,分,小时,日期,天,月和年。RTC实时时钟依靠一个外部的32.768Khz的石英晶体,产生周期性的脉冲信号。每一个信号到来时,计数器就加1,通过这种方式,完成计时功能。


  RTC实时时钟有如下一些特性:

  • 1,BCD数据:这些数据包括秒、分、小时、日期、、星期几、月和年。

  • 2,闰年产生器

  • 3,报警功能:报警中断或者从掉电模式唤醒

  • 4,解决了千年虫问题    (详见http://baike.baidu.com/view/9349.htm)

  • 5,独立电源引脚RTCVDD

  • 6,支持ms中断作为RTOS内核时钟

  • 7,循环复位(round reset)功能

  如图,RTC实时时钟的框架图,XTIrtc和XTOrtc产生脉冲信号,即外部晶振。传给2^15的一个时钟分频器,得到一个128Hz的频率,这个频率用来产生滴答计数。当时钟计数为0时,产生一个TIME TICK中断信号。时钟控制器用来控制RTC实时时钟的功能。复位寄存器用来重置SEC和MIN寄存器。闰年发生器用来产生闰年逻辑。报警发生器用来控制是否产生报警信号。

 

四、看门狗定时器

  看门狗定时器又分为独立看门狗IWDG和窗口看门狗WWDG。

1、独立看门狗

  独立看门狗IWDG其实是一个12位递减计数器,有故障时,计数器减到0,产生复位,无故障时,计数器减到0之前就刷新计数值(喂狗),不进

行复位。其采用独立时钟,主要用于监视硬件错误(不受系统时钟影响)。

2、窗口看门狗

  窗口看门狗WWDG其实是一个7位递减计数器,有计数上下限,下限位0x40,上限由用户指定,上下限之间刷新计数值则不复位,其他都复位。采

用系统时钟,主要用于监视软件错误。

 

五、通用定时器

  stm32的定时器有基本定时器、通用定时器和高级定时器。这里以通用定时器为例,其内部结构如下图所示,需要设置预分频系数,并不是直接

使用APB1的时钟。

  通用定时器的计数模式分为5种:

  • 向上计数:计数器从0计数到自动装载值。

  • 向下计数:从自动装载值计数到0。

  • 向上向下计数(中心对齐计数):计数器从0计数到自动装载值,再从自动装载值计数到0,反复循环。

  • 输入捕获:测量输入信号的脉宽、PWM波的占空比等。

  • 输出比较:PWM波用的就是这种模式。

  定时器的时间公式:T=((n-1)*(pre-1))/Tclk,其中n为计数值,pre为预分频系数,Tclk为定时器时钟。


  为什么计数值和预分频系数要减一?因为计数是从0开始的,而预分频系数为0时,表示不分频。


  定时器用于中断时,注意更新中断标志位。


关键字:stm32  时钟控制  总线矩阵 引用地址:stm32之时钟控制

上一篇:STM32时钟理解
下一篇:最后一页

推荐阅读

专注于提供海量库存的电子元器件分销商贸泽电子 (Mouser Electronics) 即日起开始供应超低功耗的Bosch BMA400三轴加速度计。BMA400加速度计可在出色性能与低功耗之间取得绝佳平衡,耗电量只有同类加速度传感器的十分之一,还赢得了2018年消费电子展 (CES) 大奖。BMA400加速度计适合需要不间断电池供电的设备,是物联网 (IoT) 和可穿戴应用的理想之...
背景现代化电子工厂批量生产的PCB电路板,在最终打包出厂前,需要做电路功能测试(FCT)。在该功能测试应用中,霍尼韦尔综合科技(中国)有限公司的工程师希望构建一套完整的包含音频、视频及各种电压、电流、频率、开关量等测试量的综合性全自动功能测试平台,最终需要通过该系统实现对各种不同PCB的功能测试;而且当需要更换不同型号的PCB时,该系统需能方便...
导读:美国的科学家研究了在锂离子电池电极中使用不同的导电填充材料,发现在镍钴锰阴极中添加单壁碳纳米管可以提高整个电池的电导率和更高的倍率能力。根据该小组的研究结果,可以为高功率,高能量电池电极的设计提供新的见解。在改善当今能量存储技术的众多途径中,向电极中添加导电“填充”材料有望带来更好的速率能力,导电性和整体电池性能。由得克萨斯大学...
基于stm8的ds1302模块千万别把数据写在第3个区,不然卡就锁住了,只能写在第2个区电路原理图如下: stm8单片机源码:/* Includes ------------------------------------------------------------------*//* Includes ------------------------------------------------------------------*/#include "stm8s.h"#include "stm8s_clk.h"#include "in...

史海拾趣

问答坊 | AI 解惑

HT1380串行时钟芯片

HT1380串行时钟芯片一般来说,HT系列的芯片在串行口的应用一直以来就是很好的在单片机 这个领域,串行时钟一直占着很重要的位置…

查看全部问答∨

毕业设计资料---气体检测

毕业设计资料---气体检测…

查看全部问答∨

混乱的AVR (转)

混乱的AVR (转) 作者:佚名 文章来源:网络 点击数:462 更新时间:2008-7-9 7:29:40                                  接触A ...…

查看全部问答∨

Keil C51 使用帮助

该手册是Keil 软件公司8051 单片机软件开发工具的介绍是为新用户和有兴趣的读者准备的使用 指南只需要阅读本书就可以正确地运行和使用该软件这本用户指南包括以下章节的内容 第一章介绍 对本用户手册的概述 第二章安装 讲述怎样安装软件并设置工 ...…

查看全部问答∨

奇怪了,请大家看下做标记的那几行代码

请大家看下下面打问号几行代码,抛开其功能不说,真的是奇怪了,我都看了又看,头都大了,就是不知道为什么,请朋友们指点下 #include<reg52.h>                     &nbs ...…

查看全部问答∨

显示驱动字体问题

各位,我的LCD屏换了片选脚后,凡是在打出字的部分,都有白色方框,这是什么问题,据说是什么透明度,什么没把数据写进去之类的原因,大家可否告诉我吗?…

查看全部问答∨

si4010有没有人用过,求探讨

si4010有没有人用过,求探讨,开发软件,调试软件,烧录工具等等…

查看全部问答∨

STM32的驱动库好用吗?效率高吗?优化的吗?准备上STM32

    N多年没买过开发板了,也没用过仿真器了。都是用软件编译调试好,直接ISP,然后通过串口命令开启调试信息的输出。    昨天买了块STM32F103全功能型开发板,他们的办事效率真低(深圳到广州通常当 ...…

查看全部问答∨

最适用于图像处理的TI公司DSP

请问用哪款TI的DSP板做图像处理比较好,要可以和Matlab连接使用,且可通过Real Time Work Shop工具箱自动生成代码,要是版本新一些就更好了 最近需要买一块板子,请大家多多给建议啊 谢谢…

查看全部问答∨

猎头招聘

世界500强招聘压力传感器SAE,如有兴趣可发简历至:aerie.song@seek-jobs.com.cn 要求:至少五年以上相关工作经验,英文流利。…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved