MCU看门狗

news2025/1/23 8:07:43

目录

一、独立看门狗(IWDG)

1、IWDG 主要作用 

2、IWDG 主要特性 

3、编程控制

4、注意地方

二、窗口看门狗(WWDG)

1、窗口看门狗作用:

2、窗口看门狗产生复位信号有两个条件: 

3、WWDG 框图 

4、WWDG 将要复位的时间

5、编程控制


一、独立看门狗(IWDG)

1、IWDG 主要作用 

        独立看门狗 (IWDG) 由其专用低速时钟 (LSI) 驱动,因此即便在主时钟发生故障时仍然保持工作状态。 IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。

2、IWDG 主要特性 

(1) 32位(只使用了12位)自由运行递减计数器

(2) 时钟由独立 RC 振荡器(LSI)提供(可在待机和停止模式下运行);

(3) 当递减计数器值达到 0x000 时产生复位(如果看门狗已激活); 

3、编程控制

(1) 初始化

        看门狗超时时间由递减计数器重装载值和时钟预分频器共同决定。例如,STM32F407,LSI=32K,64分频,递减计数器重装载值为500,则超时时间 = 1/32K *64 * 500 = 1s 。

(2) 喂狗

在main的while(1)处喂狗:

  

要在超出时间之内喂狗,否则会触发复位,一般都是在main的while(1)循环内喂狗。

4、注意地方

(1) 某些执行时间特别长的程序,或者while(1)要多喂狗,避免超出时间导致复位;

(2) 在进入低功耗的时候,如果没有按时喂狗,一样会触发复位,所以要注意喂狗时间或者定时喂狗。

二、窗口看门狗(WWDG)

1、窗口看门狗作用

        窗口看门狗 (WWDG) 时钟由 APB1 时钟经预分频后提供,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 WWDG 最适合那些要求看门狗在精确计时窗口起作用的应用程序。通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。

2、窗口看门狗产生复位信号有两个条件

(1) 当递减计数器的数值从 0x40 减到 0x3F 时(T6 位跳变到 0);

(2) 当喂狗的时候计数器的值大于 W[6:0]时,此数值在 WWDG_CFR 寄存器定义。 

        上述的两个条件详细解释是,当计数器的值减到 0x40 时还不喂狗的话,到下一个计数就会产生复位,这个值称为窗口的下限值,是固定的值,不能改变。这个跟独立看门狗类似,不同的是窗口看门狗的计数器的值在减到某一个数之前喂狗的话也会产生复位,这个值叫窗口的上限,上限值 W[6:0]由用户设置。窗口看门狗计数器的上限值和下限值就是窗口的含义,喂狗也必须在窗口之内,否则就会复位。 

3、WWDG 框图 

A:WWDG 有一个来自 RCC 的 PCLK1 输入时钟,经过一个 4096 的分频器(4096 分频在设计时已经设定死了, 图中并没有给出来, 但我们可以通过查看寄存器 WWDG_CFR 的 WDGTB 位的描述知道);

B: 经过一个分频系数可选(1、2、4、8)的可编程预分频器提供时钟给一个 7 位递减计数器;

C:下限值:0x40 就是下限值,递减计数器达到这个值就会产生复位。T6 位就是 WWDG_CR 寄存器的位 6,即递减计数器 T[6:0]的最高位; 

D:上限值:W[6:0] 是 WWDG_CFR 寄存器的低 7 位,用于与递减计数器 T[6:0]比较的窗口值,也就是我们说的上限值,由用户设置。 

4、WWDG 将要复位的时间

①当T[6:0]>W[6:0]是不允许刷新T[6:0]的值,即不允许喂狗,否则会产生复位。 

②只有在 W[6:0]<T[6:0]< 0x3F 这个时间可以喂狗,这就是喂狗的窗口时间。

③当 T[6:0]=0x3F,即 T6 位为 0 这一刻,也会产生复位。 

④计算窗口看门狗的超时公式: 

TWWDG: WWDG 超时时间(单位为 ms); 

TPCLK1: APB1 以 ms 为单位的时钟间隔(即单位为 1 /KHz); 

WDGTB:经过APB1 的分频系数;

T[5:0]:窗口看门狗的计数器低 6 位(T6 位固定 1,范围 0x7F~0x40,对应值 0x3F~0x00);

根据以上公式,计算一下对应当重装值为 0x40 , 分频系数 WDGTB=3 时对应,假 设 TPCLK1= 42MHz , 下 一 个 计 数 将 发 生 复 位 , 到 达 下 个 复 位 的 时 间 是 :1/(42MHz)*4096*2^3*(0+1) =780.19us ;类似地,可以得到在 42MHz 时钟下不同分频值那么可以得到最小-最大超时时间表如表所示: 

表格举例说明:当 WDGTB 等于0的时候,重装载值从0x40跳到0x3F,即1步,就会产生复位,这也是看门狗超时的最小时间;当0x7F跳到0x3F,即64步,就会产生复位,这也是看门狗超时的最大时间;

5、编程控制

(1) 初始化

设置计数器值为 0x7F,窗口寄存器为 0x5F,分频数为 8,然后可由前面的公式得到窗口上限时间 Twwdg=4096×8×(0x7F-0x5F)/42MHz=24.98ms,窗口下限时间 Twwdg=4096×8×(0x7F-0x3F) /42MHz=49.97ms,即喂狗的窗口区间为 24.98~49.97ms。

(2) 使用中断的方式喂狗

        程序使用的是EWIF(提前唤醒中断标志)来喂狗,即当计数器值达到0x40时此位由硬件置1。它必须由软件通过写入0来清零。写入1不起作用。如果不使能中断,此位也会被置1。在窗口看门狗的中断服务函数,通过该函数来喂狗,喂狗要快,否则当窗口看门狗计数器值减到 0X3F 的时候,就会引起软复位了。在中断服务函数里面也要将状态寄存器的 EWIF 位清空。 

十三、DAC

十四、IIS

十五、CAN

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

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

相关文章

揭秘京东商品背后的秘密:一键获取详细数据,打造全新购物体验

京东商品详情原数据API接口技术详解 一、概述 京东商品详情原数据API接口是京东开放平台提供的一套用于获取商品详细信息的接口。通过调用该接口&#xff0c;第三方开发者可以获取包括商品描述、价格、图片、评价等详细信息&#xff0c;进而在自己的应用或网站中展示给用户&a…

【STM32 物联网】AT指令与TCP,发送与接收数据

文章目录 前言一、连接TCP服务器1.1 配置Wifi模式1.2 连接路由器1.3 查询ESP8266设备IP地址1.4 连接TCP服务器 二、向服务器接收数据和发送数据2.1 发送数据2.2 接收数据 总结 前言 随着物联网&#xff08;IoT&#xff09;技术的迅速发展&#xff0c;越来越多的设备和系统开始…

Python:异常处理

异常处理已经成为判断一门编程语言是否成熟的标准&#xff0c;除传统的像C语言没有提供异常机制之外&#xff0c;目前主流的编程语言如Python、Java、Kotlin等都提供了成熟的异常机制。异常机制可以使程序中的异常处理代码和正常业务代码分离&#xff0c;保证代码更加优雅&…

机器学习第二十八周周报 PINNs2

文章目录 week28 PINNs2摘要Abstract一、Lipschitz条件二、文献阅读1. 题目数据驱动的偏微分方程2. 连续时间模型3. 离散时间模型4.结论 三、CLSTM1. 任务要求2. 实验结果3. 实验代码3.1模型构建3.2训练过程代码 小结参考文献 week28 PINNs2 摘要 本文主要讨论PINN。本文简要…

vue-路由(六)

阅读文章你可以收获什么&#xff1f; 1 明白什么是单页应用 2 知道vue中的路由是什么 3 知道如何使用vueRouter这个路由插件 4 知道如何如何封装路由组件 5 知道vue中的声明式导航router-link的用法 6 知道vue中的编程式导航的使用 7 知道声明式导航和编程式导航式如何传…

代码随想录算法训练营DAY19 | 二叉树 (6)

一、LeetCode 654 最大二叉树 题目链接&#xff1a;654.最大二叉树https://leetcode.cn/problems/maximum-binary-tree/ 思路&#xff1a;坚持左开右闭原则&#xff0c;递归划分数组元素生成左右子树。 class Solution {public TreeNode constructMaximumBinaryTree(int[] num…

数字人如何激发广电内容创新可能性?

在数字化传播时代&#xff0c;数字人的兴起对激发传统文化的内在活力具有重要意义。如河南广电以《唐宫夜宴》中唐代仕女为原型设计&#xff0c;推出身穿三彩襦裙的数字人“唐小妹”&#xff0c;目前数字人“唐小妹”已在河南卫视中国节日系列的多个节目中出现&#xff0c;带给…

【算法】C语言使用qsort对字符串字符进行排序(解决字符串长度不统一的问题)

核心思想是 当a的长度>b时&#xff0c;a一定比b大当a,b长度相等时&#xff0c;通过strcmp比较哪个字典序大&#xff0c;也就是实际的数哪个大当a的长度&#xff1c;b是&#xff0c;b一定比a大 这时候就不得不感慨C的string是多么好用的&#xff0c;哎 #include<stdio.h…

由于找不到MSVCP140.dll无法运行软件游戏,多种解决方法分享

电脑系统在运行过程中&#xff0c;当出现“由于找不到MSVCP140.dll”这一提示时&#xff0c;可能会引发一系列潜在的问题与影响。当电脑无法找到这个特定的dll文件时&#xff0c;意味着相关应用可能无法顺利加载并执行必要的组件&#xff0c;进而导致程序无法启动或运行过程中频…

基于SpringBoot+WebSocket+Spring Task的前后端分离外卖项目-订单管理(十七)

订单管理 1. Spring Task1.1 介绍1.2 cron表达式1.3 入门案例1.3.1 Spring Task使用步骤1.3.2 代码开发1.3.3 功能测试 2.订单状态定时处理2.1 需求分析2.2 代码开发2.3 功能测试 3. WebSocket3.1 介绍3.2 入门案例3.2.1 案例分析3.2.2 代码开发3.2.3 功能测试 4. 来单提醒4.1 …

基于微信小程序的校园跑腿系统的研究与实现,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

无锁、偏向锁、轻量级锁、重量级锁

无锁、偏向锁、轻量级锁、重量级锁 1、偏向锁、轻量级锁、重量级锁适用于不同的并发场景 偏向锁&#xff1a;无实际的锁竞争&#xff0c;且将来只有第一个申请锁的线程会使用锁。偏向锁只有初始化时需要一次CAS 轻量级锁&#xff1a;无实际的锁竞争&#xff0c;多个线程交替使…

论文阅读-EMS: History-Driven Mutation for Coverage-based Fuzzing(2022)模糊测试

一、背景 本文研究了基于覆盖率的模糊测试中的历史驱动变异技术。之前的研究主要采用自适应变异策略或集成约束求解技术来探索触发独特路径和崩溃的测试用例&#xff0c;但它们缺乏对模糊测试历史的细粒度重用&#xff0c;即它们在不同的模糊测试试验之间很大程度上未能正确利用…

SG7050EAN规格书

SG7050EAN 晶振是EPSON/爱普生的一款额定频率73.5 MHz ~ 700mhz的石英晶体振荡器&#xff0c;7050封装常规有源晶振&#xff0c;4脚贴片&#xff0c;具有小尺寸&#xff0c;高稳定性。SG5032EAN 晶体振荡器结合了相位锁定环&#xff08;PLL&#xff09;技术和AT切割晶体单元&am…

Unity中,C#的事件与委托区别和经典实例

文章目录 实例1&#xff1a;委托&#xff08;Delegate&#xff09;的基本用法实例2&#xff1a;事件&#xff08;Event&#xff09;的声明与订阅实例3&#xff1a;Unity引擎中的委托实例 - UI Button.onClick实例4&#xff1a;事件&#xff08;Event&#xff09;的安全性实例5&…

ViT: transformer在图像领域的应用

文章目录 1. 概要2. 方法3. 实验3.1 Compare with SOTA3.2 PRE-TRAINING DATA REQUIREMENTS3.3 SCALING STUDY3.4 自监督学习 4. 总结参考 论文&#xff1a; An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 代码&#xff1a;https://github.com…

2024几个测试接口的好工具,效率加倍~

作为一名后端程序员&#xff0c;一定要对自己写的接口负责&#xff0c;保证接口的正确和稳定性。因此&#xff0c;接口测试也是后端开发中的关键环节。 但我相信&#xff0c;很多朋友是懒得测试接口的&#xff0c;觉得这很麻烦。一般自己写的接口自己都不调用&#xff0c;而是…

Acwing---877. 扩展欧几里得算法

扩展欧几里得算法 1.题目2.基本思想3.代码实现 1.题目 给定 n n n 对正整数 a i ai ai, b i bi bi&#xff0c;对于每对数&#xff0c;求出一组 x i xi xi, y i yi yi&#xff0c;使其满足 a i x i b i y i g c d ( a i , b i ) aixibiyigcd(ai,bi) aixibiyigcd(ai,bi)…

Diffusion Model——扩散模型

Diffusion Model 文章目录 Diffusion ModelDenoising Diffusion Probabilistic Model(DDPM)去噪过程&#xff1a;Denoise结构训练过程Text-to-image Generation Model High Resolution Image Synthesis With_Latent Diffusion Models (Stable Diffusion)基本结构与推理过程Text…

基于scrapy框架的单机爬虫与分布式爬虫

我们知道&#xff0c;对于scrapy框架来说&#xff0c;不仅可以单机构建复杂的爬虫项目&#xff0c;还可以通过简单的修改&#xff0c;将单机版爬虫改为分布式的&#xff0c;大大提高爬取效率。下面我就以一个简单的爬虫案例&#xff0c;介绍一下如何构建一个单机版的爬虫&#…