MCU看门狗

这篇具有很好参考价值的文章主要介绍了MCU看门狗。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、独立看门狗(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) 初始化

MCU看门狗,单片机,单片机,嵌入式硬件

MCU看门狗,单片机,单片机,嵌入式硬件

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

(2) 喂狗

MCU看门狗,单片机,单片机,嵌入式硬件

在main的while(1)处喂狗:

MCU看门狗,单片机,单片机,嵌入式硬件

  

要在超出时间之内喂狗,否则会触发复位,一般都是在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 框图 

MCU看门狗,单片机,单片机,嵌入式硬件

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 将要复位的时间

MCU看门狗,单片机,单片机,嵌入式硬件

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

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

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

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

MCU看门狗,单片机,单片机,嵌入式硬件

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 时钟下不同分频值那么可以得到最小-最大超时时间表如表所示: 

MCU看门狗,单片机,单片机,嵌入式硬件

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

5、编程控制

(1) 初始化

MCU看门狗,单片机,单片机,嵌入式硬件

MCU看门狗,单片机,单片机,嵌入式硬件

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

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

MCU看门狗,单片机,单片机,嵌入式硬件

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

十三、DAC

十四、IIS

十五、CAN文章来源地址https://www.toymoban.com/news/detail-830885.html

到了这里,关于MCU看门狗的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式毕设分享 基于单片机的GSM智能快递柜设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年04月28日
    浏览(54)
  • 嵌入式开发:单片机嵌入式Linux学习路径

    SOC(System on a Chip)的本质区别在于架构和功能。低端SOC如基于Cortex-M架构的芯片,如STM32和NXP LPC1xxx系列,不具备MMU(Memory Management Unit),适用于轻量级实时操作系统如uCOS和FreeRTOS。高端SOC如基于Cortex-A架构的芯片,如三星、高通、飞卡、全志和瑞芯微等,具备MMU,支持虚拟内

    2024年02月15日
    浏览(56)
  • 嵌入式和单片机

    凡是从事信息技术相关工作的,一定都听说过嵌入式和单片机。 大家都知道,这两个名词,和硬件系统有着非常密切的关系。 但是,如果要问具体什么是嵌入式,什么是单片机,它们之间究竟有什么区别,我相信大部分人并不能解释清楚。 今天,小编就给大家做一个入门科

    2024年02月07日
    浏览(57)
  • 7. 嵌入式与单片机

    常见面试题 请说说你对嵌入式的理解。⭐⭐⭐⭐ 嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统 主要由 嵌入式微处理器 、 外围硬件设备 、 嵌入式操作系统以及用户

    2024年02月02日
    浏览(89)
  • 单片机(嵌入式)程序分层架构

    目录 前言 嵌入式3层软件架构 嵌入式4层软件架构-1 驱动层 操作系统层 中间件层 应用层 嵌入式4层软件架构-2 硬件层 嵌入式微处理芯片 嵌入式存储器系统 嵌入式I/O接口 中间层 系统软件层 RTOS 文件系统 GUI 应用层 嵌入式5层软件架构1 嵌入式5层软件架构2 嵌入式6层软件架构

    2023年04月19日
    浏览(79)
  • 单片机和Linux嵌入式区别

    单片机是一种集成电路,它能够在一个芯片上完成各种计算、控制和管理任务。单片机没有明确的分层,这是因为它通常被用来设计嵌入式系统,其程序结构和功能要根据具体的应用需求来设计。 在单片机的程序设计中,可以通过一些方法将程序分为不同的层次,比如可以将

    2024年01月17日
    浏览(63)
  • 【单片机/嵌入式】最完整学习路线

            关于这个问题我在网上寻找到 了 相关文章解释得很详细,不了解的同学可以参考一下这篇文章: 到底什么是嵌入式?什么是单片机? - 知乎         一个人学习是孤独的,如果你是一名学生,建议加入学校的电子社团或者实验室,有老师的帮助和同学的互助

    2024年02月03日
    浏览(54)
  • 嵌入式51单片机04-矩阵按键系列

    一、矩阵按键基础知识 矩阵按键工作原理 : 逐行扫描 :通过高四位轮流输出低电平来对矩阵键盘进行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过判断低四位数据中哪一位为零来判断哪一个按键被按下。 逐列扫描 :通过低四位轮流输出低电平来

    2024年02月07日
    浏览(64)
  • 【唠唠嵌入式】__如何学习单片机?

    目录 前言 个人定位,从事软件还是硬件? 学习内容 (* ̄︶ ̄)创作不易!期待你们的 点赞、收藏和评论喔。 作为一个老司机,多年来跟 单片机 、 Keil 、 C语言 、 AD 、 烙铁 、 风枪 、 示波器 、 电子元器件 纠缠不清。期间经历了不少磨练,熬过了很多夜晚,也掉了大把头

    2024年02月06日
    浏览(70)
  • 嵌入式(二)单片机基础 | 单片机特点 内部结构 最小系统 电源 晶振 复位

    上一篇文章我们介绍了嵌入式系统 嵌入式系统(Embedded System)是一种特定用途的计算机系统,它通常嵌入在更大的产品或系统中,用于控制、监测或执行特定的任务。这些系统通常由硬件和软件组成,旨在满足特定的需求,如嵌入在家电、汽车、医疗设备、工业自动化、消费

    2024年02月02日
    浏览(108)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包