stm32之时钟控制

• 时钟系统与总线矩阵
• SysTick系统定时器
• RTC实时时钟
• 看门狗定时器
• 通用定时器

一、时钟系统与总线矩阵

stm32F4的时钟树如下图所示:

stm32之时钟控制


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和总线以及外设的时钟设置是非常重要的,因为没有时钟就没有时序,组合电路需要好好理解清楚。我们先来看一下总线矩阵。

stm32之时钟控制


片上总线标准种类繁多,而由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,解决了千年虫问题 (详见)
5,独立电源引脚RTCVDD
6,支持ms中断作为RTOS内核时钟
7,循环复位(round reset)功能

stm32之时钟控制


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

四、看门狗定时器

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

1、独立看门狗

独立看门狗IWDG其实是一个12位递减计数器,有故障时,计数器减到0,产生复位,无故障时,计数器减到0之前就刷新计数值(喂狗),不进行复位。其采用独立时钟,主要用于监视硬件错误(不受系统时钟影响)。

2、窗口看门狗

窗口看门狗WWDG其实是一个7位递减计数器,有计数上下限,下限位0x40,上限由用户指定,上下限之间刷新计数值则不复位,其他都复位。采用系统时钟,主要用于监视软件错误。

五、通用定时器

用户喜欢...

SmartMotion 开发解决方案具有 Microchip Technology SAMG55 主机控制器和 InvenSense 运动传感器

SmartMotion 开发平台 TDK 的 SmartMotion 开发解决方案具有 Microchip Technology SAMG55 主机控制器和 InvenSense 运动传感器 TDKSmartMotion 平台是InvenSense运动传感器设备的全面开发套件。该平台围绕Microchip的...


OMRON 温度控制器可以检测空气质量变化并自动控制温度

OMRON 温度控制器可以检测空气质量变化并自动控制温度 以前的温度控制器需要很长时间进行初始设置和变化调整,很难在没有经验的情况下凭直觉进行最佳调节。OMRON通过开发包含自适应控制...


STM32 电机控制 SDK 5.0 版

STMicroelectronics 集成电机控制的开发套件大大简化了设计过程并缩短了产品上市时间 STMicroelectronics最新的 STM32 电机控制软件开发套件 (SDK) 建立在全集成 STM32Cube 环境基础上,且性能得到提升,...


机器学习更接近你身边的微控制器

机器学习(ML)是人工智能(AI)的一个分支,多年来一直在电子系统中应用。但是,直到现在,实施ML所需的处理能力大部分都被限制在基于云计算的活动中。然而,这种情况即将发生变化,随...



无刷直流电动机控制介绍

无刷直流(BLDC)马达 正在成为行业,如汽车(特别是电动车辆(EV)),HVAC,白色家电及工业因为它摒弃了传统的电动机中使用的机械换向器日益流行,与电子装置取代它这提高了设备​​的...


现场控制导致更好的交流电机效率

到2035年,全球每年将消耗超过35万亿千瓦小时的电力,从2015年的不足21万亿千瓦时上升到现在所需的近三分之一的电能,用于工业生产中的电机。这些电机中的很多都基于简单的交流电设计,因...


设计无传感器FOC电机控制的一种快速而简单的方法

电机控制应用设计人员今天面临来自市场,竞争对手和监管机构的压力,要优化其系统的性能和效率,同时将电子系统的成本降到最低。从家用电器中的泵,风扇和压缩机到无人机和电动自行车...


为增强隔离的电机控制选择检测电阻

电流检测电阻器的使用是电机控制系统设计趋势的一部分,这得益于采用新的数字隔离技术。这些技术为设计人员提供了更高的可靠性水平,基于组件级别标准IEC 60747-17,该标准规定了电容式和...


用Raspberry Pi 3构建一个低成本的工业控制器

很少有小型工厂操作要求严格的操作环境,高I / O容量和可编程逻辑控制器(PLC)最初预期的复杂功能要求的组合。在缩小版本的PLC的同时,设计人员现在也可以选择一系列低成本的开源硬件和...


Tiva C 系列 TM4C129x 微控制器将使设计人员能使用首款集成以太网 MAC+PHY

德州仪器 Tiva C 系列 TM4C129x 微控制器将使设计人员能使用首款集成以太网 MAC+PHY 的 ARM Cortex-M4 MCU 和片上通信外设,来开发高度连接的全新系列产品。工程人员将能通过集成的数据保护、鲁棒的...


在恶劣的环境中实现复杂的传感和控制系统

在许多工业应用中,感知,记录和交流关于环境条件的数据是至关重要的。许多工业过程涉及高温,高压,振动和腐蚀性气体或液体,但是传感对于控制和监测这些过程是非常重要的,通常在非...


先进动力总成控制的挑战与解决方案

每一代新一代动力总成控制系统设计人员都面临着更高复杂性和更高计算性能的挑战。在全球法规的推动下,性能要求包括增加吞吐量,内存,外设和高级封装功能。越来越严格的排放法规,以...


保持汽车触摸控制的感觉

智能手机和平板电脑上的触摸屏界面已经席卷了消费电子行业,每年销售数以亿计的这些触摸式设备。整整一代的孩子正在成长为与电子的主要接口,而不是键盘,鼠标,按钮等物理接口。这种...


英飞凌XMC4700 / XMC4800微控制器

英飞凌XMC4700 / XMC4800ARMCortex-M4内核微控制器是用于工业连接,工业控制,电源转换以及感测和控制的32位高性能和高能效MCU。 这些英飞凌MCU提供高达2MB的闪存和352KB的RAM。XMC4800采用EtherCAT从控制...


驱动多轴伺服控制系统中的同步精确运动

自动化的精密制造使许多当今高科技设备的发展和普及成为可能。现代时尚的手机依靠复杂的金属加工工艺和精细的表面处理能力来生产制造机械部件所需的模具和模具。手机中微小但功能强大...