嵌入式——窗口看门狗(WWDG)补充

目录

一、独立看门狗与窗口看门狗

1.功能描述

2.两者区别

二、WWDG功能描述

1.窗口看门狗时钟

2.计数器时钟

3. 计数器

4.窗口值

三、WWDG超时时间


一、独立看门狗与窗口看门狗

1.功能描述

        STM32有两个看门狗:一个是独立看门狗(IWDG),一个是窗口看门狗(WWDG)

        独立看门狗的工作原理是一个递减计数器不断地递减计数,当减到0之前如果没有喂狗的话,产生复位。窗口看门狗跟独立看门狗一样,也是一个递减计数器不断地递减计数,当减到一个固定值0x40 时还不喂狗的话,产生复位,这个值叫窗口的下限,是固定的值,不能改变。这点与独立看门狗类似。

        不同的地方是窗口看门狗的计数器的值在减到某一个数之前喂狗的话也会产生复位,这个值叫窗口的上限,由用户自主设置。窗口看门狗计数器的值必须在上窗口和下窗口之间才可以喂狗,这就是窗口看门狗中窗口两个字的含义。

2.两者区别

二、WWDG功能描述

1.窗口看门狗时钟

        时钟来自 PCLK1, PCLK1最大是36MHz,由RCC时钟控制器开启。

2.计数器时钟

        由CK计时器时钟经过预分频器分频得到,分频系数由配置寄存器CFR的位8:7 WDGTB[1:0]配置,可以是 [ 0, 1, 2, 3 ],其中CK计时器时钟=PCLK1 / 4096 ( 除以4096是手册规定的 )。

所以计数器的时钟 CNT_CK = PCLK1 / 4096 / (2^WDGTB)

所以计数器减一个数的时间  T = 1 / CNT_CK = Tpclk1 x 4096 x(2^WDGTB)

3. 计数器

        为递减计数器,共7位,其值存在控制寄存器CR的位6:0,即T[6:0],当7位全部为1时是0x7F,这是最大值。当递减到T6 位变成0时,即从0x40 变为0x3F时候,会产生看门狗复位,这个值0x40是看门狗能够递减到的最小值。所以计数器的值只能是 0x40~0x7F,实际上真正用来计数的是T[5:0]

        当递减计数器递减到0x40的时候,还不会马上产生复位,如果使能了提前唤醒中断( CFR位 9 EWI 置 1 ),则产生提前唤醒中断。如果真进入了这个中断的话,就说明程序肯定是出问题了,那么在中断服务程序里面我们就需要做一些重要工作。这个中断也叫“死前中断”

4.窗口值

        下窗口的值是固定的0x40,上窗口的值可以改变,具体的由配置寄存器 CFR的位6:0 W[6:0]设置。其值必须大于0x40,如果小于或者等于0x40就失去了窗口的价值,而且也不能大于计数器的值,所以必须得小于 0x7F。 

        窗口值具体要设置成多大,要根据我们需要监控的程序的运行时间来决定。如果在窗口时间内没有喂狗的话,那程序肯定是出问题了。一般计数器的值TR设置成最大0x7F窗口值为WR,计数器减一个数的时间为T,那么时间(TR-WR) x T稍微大于程序运行时间即可,这样就能做到刚执行完程序段之后喂狗,也就可以算出WR的值。

三、WWDG超时时间

        看门狗超时时间:Twwdg=Tpclk1 x 4096 × 2^wdgtb ×(T[5:0] + 1) ms。当PCLK1 = 36MHz时,WDGTB 取不同的值时有最小和最大的超时时间以WDGTB = 0为例:

        递减计数器有 7位 T[6:0], 当位 6 变为 0 的时候就会产生复位,实际上有效的计数位是T[5:0],而且 T6 必须先设置为 1

        如果 T[5:0]=0 时,递减计数器再减一次,就产生复位了,那这 减1的时间 = 计数器的周期 = 1 / CNT_CK=Tpclk1 × 4096 x(2^WDGTB) = 1/36x4096×2^0=113.7us,这个就是最短的超时时间

        如果 T[5:0]全部为1,即 63,当由 0x40 变成 0x3F 时,所需的时间就是 最大的超时时间 = 113.7×2^5=113.7×64=7.2768ms

        同理,当WDGTB等于1、2、3时,代入公式即可算出最长最短超时值。


可结合这边文章:

嵌入式——窗口看门狗(WWDG)

http://t.csdnimg.cn/60FCjicon-default.png?t=N7T8http://t.csdnimg.cn/60FCj

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在知乎上如何写科技文章?

当在知乎上撰写关于科技趋势的文章时,有几个关键的写作技巧和建议可以帮助你获得更好的传播效果: 选题关注热点: 在选择科技趋势时,关注当前的热点话题是很重要的。了解最新的技术、行业动向,选择用户普遍关心和讨论的…

数据结构三:线性表之单链表(带头结点单向)的设计与实现

线性表的链式存储结构正是所谓的单链表,何谓单链表?通过地址将每一个数据元素串起来,进行使用,这可以弥补顺序表在进行任意位置的插入和删除需要进行大量的数据元素移动的缺点,只需要修改指针的指向即可;单…

网络编程套接字(2)

UDP数据报套接字编程 API介绍 DatagramSocket DatagramSocket是UDP的Socket,用于发送和接收数据报. 操作系统中有一类文件,就叫做socket文件(普通文件/目录文件:在硬盘上的) socket文件:抽象的表示了网卡这样的硬件设备 DatagramSocket就是对socket文件进行读写,也就是借助网…

对于gzip的了解

gzip基本操作原理:通过消除文件中的冗余信息,使用哈夫曼编码等算法,将文件体积压缩到最小。这种数据压缩方式在网络传输中发挥了巨大作用,减小了传输数据的大小,从而提高了网页加载速度。 静态资源 Vue Vue CLl修改v…

WordPress如何使用SQL实现一键关闭/开启评论功能(已有评论)

WordPress本人就自带评论功能,不过由于种种原因,有些站长不想开启评论功能,那么应该怎么实现一键关闭评论功能或开启评论功能呢?或者针对已有评论功能的文章进行一键关闭或开启评论功能应该怎么操作? 如果你使用的Wor…

【.NET Core】深入理解C#中的特殊字符

【.NET Core】深入理解C#中的特殊字符 文章目录 【.NET Core】深入理解C#中的特殊字符一、概述二、$-- 字符串内插2.1 内插字符串的结构2.2 内插原始字符串字面量2.3 特殊字符2.4 内插字符串编译 三、-- 逐字字符串标识符四、“”“--原始字符串文本 一、概述 特殊字符是预定义…

【网易】资深Java开发工程师/专家(采购系统方向)

全职 | 杭州市 | 2024-01-26 更新 职位描述 负责企业信息化采购系统研发。重点关注系统并发性能、可靠性等方面,解决系统技术难点,参与架构持续升级。关注互联网和企业信息化热点技术的发展方向,能够提出、评估并应用新技术。参与系统需求分…

OpenGL/C++_学习笔记(四)空间概念与摄像头

汇总页 上一篇: OpenGL/C_学习笔记(三) 绘制第一个图形 OpenGL/C_学习笔记(四)空间概念与摄像头 空间概念与摄像头前置科技树: 线性代数空间概念流程简述各空间相关概念详述 空间概念与摄像头 前置科技树: 线性代数 矩阵/向量定…

嵌入式产品的开发流程

嵌入式产品的开发流程主要涉及硬件和软件两个方面,通常包括以下主要阶段和角色: 嵌入式产品开发流程 1. 需求分析阶段: 角色: 产品经理、系统工程师 任务: 确定产品的功能和性能需求,明确硬件和软件的基…

RPC教程 5.支持HTTP协议

1.HTTP的CONNECT方法 Web 开发中,我们经常使用 HTTP 协议中的 HEAD、GET、POST 等方式发送请求,等待响应。但 RPC 的消息格式与标准的 HTTP 协议并不兼容,在这种情况下,就需要一个协议的转换过程。HTTP 协议的 CONNECT 方法提供了…

在Java中,IO主要分为两种:同步阻塞IO(BIO)和NIO(New IO,也称为Non-blocking IO)。

IO(Input/Output)是指输入和输出,是程序与外部世界或者程序与程序之间进行数据交换的一种方式。在Java中,IO主要分为两种:同步阻塞IO(BIO)和NIO(New IO,也称为Non-blocki…

51单片机-4G模块

51单片机-4G模块 4G控制LED #include "reg52.h" #include "intrins.h" #include <string.h>#define SIZE 12 sfr AUXR 0x8E; sbit D5 P3^7; char cmd[SIZE];void UartInit(void) //9600bps11.0592MHz {AUXR 0x01;SCON 0x50; //配置串口工作方…

MybatisPlus二级映射和关联对象ResultMap

文章目录 一、业务背景1. 数据库表结构2. 需求 二、使用映射直接得到指定结构三、其他文件1. Mapper2. Service3. Controller 四、概念理解一级映射二级映射聚合 五、标签使用1. \<collection\> 标签2. \<association\> 标签 在我们的教程中&#xff0c;我们设计了…

flask框架制作前端网页作为GUI

一、语法和原理 &#xff08;一&#xff09;、文件目录结构 需要注意的问题&#xff1a;启动文件命名必须是app.py。 一个典型的Flask应用通常包含以下几个基本文件和文件夹&#xff1a; app.py&#xff1a;应用的入口文件&#xff0c;包含了应用的初始化和配置。 requirem…

MySQL中四种索引类型

FULLTEXT &#xff1a;即为全文索引&#xff0c;目前只有MyISAM引擎支持。其可以在CREATE TABLE &#xff0c;ALTER TABLE &#xff0c;CREATE INDEX 使用&#xff0c;不过目前只有 CHAR、VARCHAR &#xff0c;TEXT 列上可以创建全文索引&#xff0c;需要注意的是MySQL5.6以后支…

Controller的部分注解

目录 1.增加 用到注解 1.1RequestBody注解解析&#xff1a; 2.查询方法当中参数不用注解&#xff01; 3.起售停售用到注解 3.1PathVariable解析 4.删除菜品注解 4.1RequestParam 5.修改用到的注解 5.1修改分两步 用到两个注解 6&#xff1a;总结 1.增加 用到注解…

【DeepLearning-8】MobileViT模块配置

完整代码&#xff1a; import torch import torch.nn as nn from einops import rearrange def conv_1x1_bn(inp, oup):return nn.Sequential(nn.Conv2d(inp, oup, 1, 1, 0, biasFalse),nn.BatchNorm2d(oup),nn.SiLU()) def conv_nxn_bn(inp, oup, kernal_size3, stride1):re…

Java基础知识-异常

资料来自黑马程序员 异常 异常&#xff0c;就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是&#xff1a; 异常 &#xff1a;指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;…

深入理解HarmonyOS UIAbility:生命周期、WindowStage与启动模式探析

UIAbility组件概述 UIAbility组件是HarmonyOS中一种包含UI界面的应用组件&#xff0c;主要用于与用户进行交互。每个UIAbility组件实例对应最近任务列表中的一个任务&#xff0c;可以包含多个页面来实现不同功能模块。 声明配置 为了使用UIAbility&#xff0c;首先需要在mod…

学习了解 Vue3 的 nextTick() 方法

学习了解 Vue3 的 nextTick() 方法 Vue.js 3 引入了一系列新的特性和改进&#xff0c;其中之一是 nextTick() 方法的优化和变化。nextTick() 方法在 Vue 中用于在 DOM 更新后执行回调函数&#xff0c;确保在更新之后获得最新的 DOM 状态。 1. Vue 3 中的 nextTick() 方法 在 …