如何计算STM32定时器、独立看门狗和窗口看门狗

栏目: IT技术 · 发布时间: 4年前

内容简介:1、基本、通用类型定时器之前分享了STM32基本、通用类型可编程定时器主要由一个 16 位及其相关的自动重载寄存器组成,在配置基本、通用类型的定时器时有三种关键寄存器:计数器寄存器 、预分频器寄存器和自动重载寄存器,具体说明如下所示:

目录

1、基本、通用类型定时器

之前分享了 STM32 GPIO的原理、特性、选型和配置如何计算RTC时钟异步预分频和同步预分频 ,这次简要阐述STM32L011微控制器定时器的参数配置(其他型号大同小异,本文侧重讲解配置,至于各类定时器的特点后续再述),STM32定时器种类繁多有通用定时器、基本定时器、独立看门狗定时器、窗口看门狗定时器等。

1、基本、通用类型定时器

STM32基本、通用类型可编程定时器主要由一个 16 位及其相关的自动重载寄存器组成,在配置基本、通用类型的定时器时有三种关键寄存器:计数器寄存器 、预分频器寄存器和自动重载寄存器,具体说明如下所示:

  • 计数器寄存器:有递增计数、递减计数或同时递增和递减计数三类,计数器的时钟可通过预分频器进行分频;

  • 预分频器寄存器:可对计数器时钟频率进行分频,分频系数介于 1 和 65536 之间(这里指STM32L011);

  • 自动重载寄存器:当计数器达到上溢值(或者在递减计数时达到下溢值)时将发送更新事件,计数器寄存器将装载重新计数。

假设计数器寄存器数值为0xFC,采用2预分频,当使能计数器后,定时器时钟开始按照定时效果运行(定时由计数器寄存器和预分频器寄存器共同决定),计数器从0x00计数到0xFC后会产生中断,并更新时间开始新一轮的计数,从0x00计数到0xFC时间的长短由预分频控制寄存器决定,时序图如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

数器寄存器数值为0xFC(十进制:252),采用2预分频的定时周期计算如下(假设使用32MHZ的时钟频率):

如何计算STM32定时器、独立看门狗和窗口看门狗

由于1HZ是1秒/次的频率,63492HZ就是,计数器从0x00计数到0xFC,定时周期为63492秒,使用STM32CuBeMX配置如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

假设计数器寄存器数值为0xFC,采用4预分频, 时序图如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

数器寄存器数值为0xFC(十进制:252),采用2预分频的定时周期计算如下(假设使用32MHZ的时钟频率):

如何计算STM32定时器、独立看门狗和窗口看门狗

计数器从0x00计数到0xFC,定时周期为31746秒,使用STM32CuBeMX配置如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

2、独立看门狗定时器

独立看门狗定时器激活后,计数器开始从复位值 0xFFF (可通过窗口寄存器修改)递减计数,当计数器计数到终值 (0x000) 时会产生一个复位信号,在递减的过程中将键值 0x0000 AAAA 写到密钥寄存器中,计数器将会重载,从而避免产生看门狗复位,独立看门狗框图如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

独立看门狗定时器有三种关键寄存器:窗口寄存器、预分频器寄存器和重载寄存器,具体说明如下所示:

  • 窗口寄存器:默认值为 0x0000 0FFF(十进制:4095),当计数器值大于窗口寄存器中存储的值时,如果执行重载操作,则会产生复位;

  • 预分频器寄存器:可对计数器时钟频率进行分频,分频系数最大为256(这里指STM32L011);

  • 重载寄存器:当计数器计数到终值 (0x000) 时会产生一个复位信号,计数器寄存器将装载重新计数。

独立看门狗定时器时钟由LSI振荡器提供,STM32L011中LSI频率为37KHZ,看门狗定义周期时间的方式和基本、通用类型可编程定时器完全一致,假设定义1秒周期的看门狗定时器,超过1秒不喂狗就进行系统复位,计算方式如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

当然由于LSI振荡器精度有限,在运行过程中会存在一定误差,使用STM32CuBeMX配置如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

3、窗口看门狗定时器

窗口看门狗定时器是可编程的自由运行递减计数器,窗口看门狗激活后当递减计数器值小于 0x40(从 0x40 递减到 0x3F) 时复位,在窗口阈值之外重载递减计数器时也会复位,只有在0x40~窗口阈值之间喂狗系统才可以正常运行,窗口定时器时序图如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

时序图解析如下所示:

  • T[6:0]:7 位计数器,用来存储看门狗计数器的值,它每隔 如何计算STM32定时器、独立看门狗和窗口看门狗 PCLK 个周期递减一次,当它从 0x40 递减到 0x3F(T6 清零)时会产生复位;

  • WDGTB[1:0] :定时器时基 ,有4种方式修改预分频器的时基:00:CK 计数器时钟 (PCLK div 4096) 分频器 1、01:CK 计数器时钟 (PCLK div 4096) 分频器 2、10:CK 计数器时钟 (PCLK div 4096) 分频器 4和11:CK 计数器时钟 (PCLK div 4096) 分频器 8;

  • W[6:0]:7 位窗口值,用于与递减计数器进行比较的窗口值,超过窗口阈值系统会复位;

  • 当递减计数器值从 0x40 递减到 0x3F时系统会复位;

  • 0x40~W[6:0]之间可以刷新喂狗,确保系统正常运行。

窗口定时器超时值的计算公式如下:

如何计算STM32定时器、独立看门狗和窗口看门狗

STM32L011中窗口看门狗定时器基于APB1频率,假设APB1 频率等于 32 MHZ,定义65毫秒周期的窗口看门狗定时器,计算方式如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

使用STM32CuBeMX配置如下所示:

如何计算STM32定时器、独立看门狗和窗口看门狗

如何计算STM32定时器、独立看门狗和窗口看门狗


以上所述就是小编给大家介绍的《如何计算STM32定时器、独立看门狗和窗口看门狗》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议

TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议

胡谷雨、吴礼发、W.Richard Stevens / 胡谷雨 / 机械工业出版社 / 2000-9 / 35.00元

《CP.IP详解(卷3):CP事务协议.HP.P和UIX域协议》是“TCP/IP详解系列”的延续。主要内容包括:TCP事务协议,即T/TCP,这是对TCP的扩展,使客户-服务器事务更快、更高效和更可靠;TCP/IP应用,主要是HTTP和NNTP;UNIX域协议,这些协议提供了进程之间通信的一种手段。当客户与服务器进程在同一台主机上时,UNIX域协议通常要比TCP/IP快一倍。《CP.IP详解(卷3......一起来看看 《TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器