0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

独立看门狗检测及如何解决软件错误导致故障

MCU开发加油站 来源:互联网 作者:佚名 2018-01-23 09:14 次阅读

独立看门狗(iwdg)1

简介:

其用于检测和解决由软件错误导致的故障,当计数器达到设定的超时时间值时会产生系统复位。其特点为:1、其运用的时钟是由独立的RC振荡器产生的,因此可以在待机和停止模式下运行。2、在看门狗激活后,如果递减计数器的值达到0X000时会产生系统复位。

2

功能简述:

通过向关键字寄存器(IWDG_KR)写入0XCCCC启动独立看门狗,计数器会从复位值0XFFF,递减计数,当计数器的值达到0X000时,产生复位信号。在计数值还未达到0X000时,向IWDG_KR寄存器写入0XAAAA,IWDG_RLR寄存器的值就会重装载到计时器,从而可以避免产生复位(俗称喂狗)。从而可以看出,当软件运行出问题时,在一定的时间内无法做到喂狗的功能时,就会产生系统复位,实现其对软件故障的检测和解决。

3

相关寄存器:

1、关键字寄存器:

关键字寄存器的有效位为位0到位15,位16到位31保留,前边已经介绍过通过向该寄存器中写入0XAAAA,可以使IWDG_RLR寄存器中的值重装载到计数器,避免系统复位。由于IWDG_PR(预分频器寄存器)和IWDG_RLR(重载寄存器)是具有写保护的寄存器,在该寄存器中写入键值0X5555可使能对IWDG_PR和IWDG_RLR的访问。

2、预分频器寄存器:

该寄存器的有效位为位0到位2,其他位保留,通过设置PR[2:0]的值,设定相应的分频系数。

3、重载寄存器:

上面已经提到该寄存器中的值会重装载到计数器中,计数器将会从该值递减计数,由此可见:该寄存器中的值和预分频器寄存器中的值共同决定超时周期。

4、状态寄存器:

该寄存器只有位0和位1为有效位,位0(RVU)为预分频器寄存器的值更新标志位,位1(PVU)为计数器重载值更新标志。

4

相关代码分析:

通过相关库函数对独立看门狗的配置还是相对简单的,其中初始化的过程如下:

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //使能对IWDG->PR IWDG->RLR的写

IWDG_SetPrescaler(prer); //设置IWDG分频系数

IWDG_SetReload(rlr); //设置IWDG装载值

IWDG_ReloadCounter(); //reload(喂狗)

IWDG_Enable(); //使能看门狗

窗口看门狗(wwdg)1

简介:

对比独立看门狗来看,所谓的窗口看门狗就是设定了一个窗口值(上限和下限值)。当递减计数器值小于0X40(窗口下限值)时产生复位。在设置的窗口外重载递减计数器也会执行复位。窗口看门狗可以设置提前唤醒中断,当递减计数器等于0X40时会触发该中断,可以在该中断中做喂狗等相关操作。

2

框图:

窗口看门狗的框图如下:对比的框图来看下边的相关介绍!

3

工作过程:

通过设置WWDG_CR寄存器的WDGA位可以使能看门狗,递减计数器为控制寄存器的低7位,其中当第7位(即T6)由1变为0(即由0X40递减为0X3F)时就会复位,在配置寄存器低7位存放看门狗上限值,计数器中的值与上限值比较,如果在上限值之上喂狗也会执行复位,这也是窗口看门狗与独立看门狗的不同之处。由此可见,喂狗的时间只能在上限和下限值之间,否则就会执行复位操作。

4

相关寄存器:

1、控制寄存器(WWDG_CR):

前面已经介绍过了,其中有效位为位0到位7,位7(WDGA)为看门狗激活位,位0到位6做计数器。

2、配置寄存器(WWDG_CFR):

该寄存器的有效位为位0到位9,位0到位6前面已经介绍过存放的是计数器的上限值,位7和位8用来设置定时器时基,从而选定相应的时钟分频器。其中位9就是上边介绍到的提前唤醒中断(EWI)。

3、状态寄存器(WWDG_SR):

该寄存器中的有效位只有位0,用来做提前唤醒中断的标志位(EWIF)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    541

    浏览量

    70257
  • 寄存器
    +关注

    关注

    30

    文章

    5036

    浏览量

    117762
  • 时钟控制
    +关注

    关注

    0

    文章

    16

    浏览量

    6764

原文标题:stm32f10x中iwdg和wwdg的区别

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32 休眠模式下,难道 看门狗和低功耗模式没法同时使用?

    在STM32开发中经常会用到独立看门狗(IWDG)和低功耗模式,看门狗是为了检测和解决由软件错误
    发表于 01-12 17:15

    IWDG独立看门狗和WWDG窗口看门狗的一些区别

    IWDG-----独立看门狗独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器。主要用于监视硬件
    发表于 07-02 06:09

    stm32独立看门狗实验报告

    看门狗外设,一个是独立看门狗IWDG,另一个是窗口看门狗WWDG。两个看门狗外设(独立和窗口)均
    发表于 07-22 07:33

    独立看门狗的特点及功能描述

    2.3 窗口看门狗功能说明2.4 如何设置看门狗超时2.5 调试模式3、区别1、IWDG1.1 独立看门狗简介IWDG(Independent watchdog)
    发表于 07-30 07:27

    看门狗基本介绍

    我采用得是STM32F10RC 参考得是STM32普中科技的给出得例子:(这里给出网址)1、基本介绍 包含有两个看门狗独立看门狗:IWDG 窗口看门狗:WWDG 用来
    发表于 07-30 08:25

    看门狗的作用

    一、看门狗的作用此器件具有一个嵌入式看门狗外设,具有安全性高、定时准确及使用灵活的优点。此独立看门狗外设可用于检测并解决由
    发表于 07-30 07:23

    stm32f10x独立看门狗 精选资料分享

    一、IWDG介绍1.1、独立看门狗简介STM21F1芯片内部含有两个看门狗外设,独立看门狗(IWDG)与窗口
    发表于 08-02 09:10

    stm32-看门狗独立看门狗,窗口看门狗)精选资料分享

    现象。在进入正题之前,我们先了解一下什么是看门狗看门狗用于检测和解决由软件错误引起的故障,当计
    发表于 08-02 08:07

    STM32F103ZET6学习记录-独立看门狗(IWDG)实验 精选资料推荐

    一.开发板原理图硬件设备与printf重定向一致。PS:该程序在上一个printf重定向的实验中修改完成。二.操作步骤。分析:首先独立看门狗的作用是用于检测并解决由软件
    发表于 08-02 08:36

    STM32F4——独立看门狗与窗口看门狗 精选资料分享

    独立看门狗一、简介: 其用于检测和解决由软件错误导致故障,当计数器达到设定的超时时间值时会产生
    发表于 08-02 06:30

    独立看门狗(IWDG)的应用是什么

    STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来
    发表于 08-02 09:55

    独立看门狗、窗口看门狗的作用

    独立看门狗、窗口看门狗作用:可用来检测和解决由软件错误引起的
    发表于 08-02 09:25

    独立看门狗的使用

    0、独立看门狗的使用独立看门狗基于低速内部RC振荡器(LSI)运行。若LSI运行正常,当主程序发生错误时,无法重置
    发表于 08-02 10:31

    看门狗的概述

    看门狗的概述:STM32内置两个看门狗,提供了更高的安全性,时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗/窗口
    发表于 08-02 07:38

    看门狗的相关资料分享

    (十三)看门狗(13.1)独立看门狗1.用途与窗口看门狗一样,均可用于检测并解决由软件
    发表于 02-11 06:35