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

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

3天内不再提示

中科芯CKS32F107XX系列MCU的窗口看门狗介绍

中科芯MCU 来源:中科芯MCU 2025-11-28 14:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MCU微课堂

CKS32F107XX系列窗口看门狗介绍

第六十六期 2025.11.24

中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),本文主要介绍WWDG的应用,关于IWDG的详情,请参看我们的IWDG微课堂内容。

WWDG简介

通过前面的课程,我们知道IWDG独立看门狗的工作原理就是一个递减计数器在LSI时钟的驱动下不断的往下递减计数,当减到0之前如果没有刷新递减计数器的值(俗称喂狗),便会触发系统复位。

WWDG窗口看门狗也是一个递减计数器不断的往下递减计数。但和IWDG独立看门狗有四处不同:

(1)IWDG由独立RC振荡器产生的LSI驱动,不受主时钟影响,但精度不高;WWDG由APB1分频时钟驱动,受主时钟影响,精度高。

(2)IWDG直接由VDD电压域供电,即使在MCU停止模式和待机模式下仍然能照常工作。

(3)IWDG计数器减到下限0时触发复位,WWDG计数器减到下限0x40时触发复位,下限值不同。

(4)IWDG计数器只有复位下限值0,WWDG计数器不仅有复位下限0x40,还有一个复位上限X(用户设定),上限值与下限值之间形成一个复位窗口。WWDG计数器的值在减到上限X之前(窗口外)喂狗,同样也会产生复位。因此WWDG必须在窗口上限和窗口下限之间才可以喂狗,这是窗口看门狗的特殊之处。

a2062bf4-c8d1-11f0-8c8f-92fbcf53809c.png

WWDG详细介绍

1、WWDG功能框图解析

下图是独立看门狗的功能框图,分4个部分进行说明。

a2dd6bc8-c8d1-11f0-8c8f-92fbcf53809c.png

① WWDG时钟:窗口看门狗的时钟来自APB1时钟线分频出的PCLK1,最大42MHz,由RCC时钟控制器控制开启。

② 计数器时钟和WWDG_CFR寄存器:CK计时器时钟 = PCLK1 / 4096,计数器时钟由CK计时器时钟经过预分频器分频得到,分频系数由配置寄存器WWDG_CFR的WWDGTB[1:0]控制,可以是0~3,因此计数器的时钟CNT_CK = PCLK1 / 4096 / (2^WWDGTB),进而可算出一个计数周期时间是T = 1 / CNT_CK。

③ 计数器和WWDG_CR寄存器:WWDG的计数器是一个7位递减计数器,其值存放在控制器寄存器WWDG_CR的T[6:0]中,当该计数器的值从0x40变为0x3F时,产生复位,因此计数器的值只能是在0x7F~0x40之间,有效位是T[5:0]。WWDG_CR的WDGA位则是窗口看门狗的激活位,可由软件置1来启动WWDG,要注意WDGA一旦置1,只能在硬件复位后才能清零。

④ 窗口上限值:WWDG的窗口下限值固定是0x40,但窗口上限值可以人为设定,具体可由WWDG_CFR配置寄存器的W[6:0]设置,其值必须大于0x40且小于0x7F,否则就失去了意义。

最后介绍的是状态寄存器(WWDG_SR)和EWI(Early wakeup interrupt)中断,该寄存器用来记录当前是否有提前唤醒EWI的中断标志。该寄存器仅有位0有效,其他都是保留位。当计数器值达到0x40时,此位由硬件置1,它必须通过软件写0来清除。在初始化WWDG时,一般会先通过软件写0清除一次。用户可以在EWI(Early wakeup interrupt)中断服务程序里进行一些必要的操作。

2、计算看门狗超时时间

窗口看门狗的时序图如下。

a3406732-c8d1-11f0-8c8f-92fbcf53809c.png

假设PCLK1时钟为36MHz,按照上述计算方法,可以得到WWDG的超时时间计算公式Twwdg =1 / PCLK1 x 4096 x 2^WDGTB x (T[5:0]+1),范围如下表。

a3a4747a-c8d1-11f0-8c8f-92fbcf53809c.png

3、WWDG库函数配置步骤

(1)使能WWDG时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // WWDG 时钟使能

(2)设置WWDG窗口上限和WDGTB分频系数

void WWDG_SetWindowValue(uint8_t WindowValue); //设置WWDG 窗口上限

void WWDG_SetPrescaler(uint32_t WWDG_Prescaler); //设置WDGTB分频系数

(3)开启WWDG中断并分组

WWDG_ClearFlag(); //清除提前唤醒中断标志位

NVIC_Init(); //设置中断优先级

WWDG_EnableIT(); //开启窗口看门狗中断

(4)设置计数器初始值并使能看门狗

void WWDG_Enable(uint8_t Counter); //设置计数器值并使能看门狗

完成以上4个步骤之后,我们就可以使用窗口看门狗了。之后在程序里面就必须周期性的在窗口上下限范围内进行喂狗(一般调用WWDG_SetCounter函数),否则将导致系统复位。

4、WWDG的应用场景

WWDG一般被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。比如一个十分关键的程序段正常运行的时间是58ms以内,在运行完这个段程序之后紧接着进行喂狗,如果在规定的时间窗口内还没有喂狗,那就说明我们监控的程序并没有在预期的58ms内运行完成,可以认为出故障了或跑飞了,那么此时产生系统复位来解除这个故障,让程序重新运行。

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

    关注

    147

    文章

    19128

    浏览量

    403951
  • 看门狗
    +关注

    关注

    10

    文章

    611

    浏览量

    73197
  • 计数器
    +关注

    关注

    32

    文章

    2321

    浏览量

    98558
  • 定时器
    +关注

    关注

    23

    文章

    3373

    浏览量

    124542

原文标题:MCU微课堂|CKS32F107XX系列窗口看门狗介绍

文章出处:【微信号:中科芯MCU,微信公众号:中科芯MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    中科CKS32F107XX系列MCU的独立看门狗介绍

    中科CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Inde
    的头像 发表于 11-28 14:51 4012次阅读
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的独立<b class='flag-5'>看门狗</b><b class='flag-5'>介绍</b>

    中科CKS32F107XX系列MCU的bxCAN介绍

    CKS32F107xx系列产品的bxCAN支持CAN协议2.0A和2.0B标准。 该CAN 控制器支持最高的通讯速率为1Mb/s;可以自动地接收和发送CAN报文,支持使用标准ID和扩展ID的报文
    的头像 发表于 01-22 09:06 3958次阅读
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的bxCAN<b class='flag-5'>介绍</b>

    STM32中的独立看门狗窗口看门狗是什么

    在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门
    的头像 发表于 02-20 17:47 4791次阅读
    STM32中的独立<b class='flag-5'>看门狗</b>和<b class='flag-5'>窗口</b><b class='flag-5'>看门狗</b>是什么

    MCU独立看门狗窗口看门狗的区别

    早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。
    发表于 03-03 09:18 1535次阅读

    如何使用AT32F4xx系列窗口看门狗(WWDT)

    AT32F4xx窗口看门狗的使用本示例展示了如何使用AT32F4xx系列窗口
    发表于 10-26 07:20

    STM32F0xx_看门狗 (独立+窗口)配置详细过程

    STM32F0xx_看门狗(独立+窗口)配置详细过程
    的头像 发表于 04-07 14:33 4721次阅读
    STM32<b class='flag-5'>F0xx</b>_<b class='flag-5'>看门狗</b> (独立+<b class='flag-5'>窗口</b>)配置详细过程

    MCU独立看门狗窗口看门狗的区别

    早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。为了满足更多使用场景,现在很多
    发表于 10-28 20:06 8次下载
    <b class='flag-5'>MCU</b>独立<b class='flag-5'>看门狗</b>与<b class='flag-5'>窗口</b><b class='flag-5'>看门狗</b>的区别

    MCU】基于STM32CubeMX 实现窗口看门狗 WWDG

    基于STM32CubeMX 实现窗口看门狗 WWDG第一部分 基础理论基础理论部分主要参考 STM32F10X 参考手册1. WWDG 简介(1)WWDG 窗口
    发表于 11-01 16:24 10次下载
    【<b class='flag-5'>MCU</b>】基于STM32CubeMX 实现<b class='flag-5'>窗口</b><b class='flag-5'>看门狗</b> WWDG

    STM32:独立看门狗窗口看门狗的配置

    STM32单片机的看门狗有独立看门狗窗口看门狗之分,这两者的工作原理却完全不同。
    发表于 02-08 16:15 18次下载
    STM32:独立<b class='flag-5'>看门狗</b>、<b class='flag-5'>窗口</b><b class='flag-5'>看门狗</b>的配置

    STM32中的独立看门狗窗口看门狗

    一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前
    的头像 发表于 12-22 16:58 3364次阅读

    STM32中的独立看门狗窗口看门狗

    在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门
    的头像 发表于 01-30 14:38 2724次阅读
    STM32中的独立<b class='flag-5'>看门狗</b>和<b class='flag-5'>窗口</b><b class='flag-5'>看门狗</b>

    CKS32F107xx系列时钟系统具体配置方法讲解

    上一章节对CKS32F107xx系列时钟做了整体介绍,本章节以使用HSI内部高速时钟为例对时钟具体配置方法进行讲解。
    的头像 发表于 05-28 10:05 1732次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>时钟系统具体配置方法讲解

    CKS32F107xx系列MCU中ADC介绍

    CKS32F107xx系列产品提供2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
    的头像 发表于 06-22 11:04 2062次阅读

    CKS32F107xx系列USART的LIN模式

    CKS32F107xx系列在支持正常USART功能的同时,亦支持LIN(局域互联网)模式。
    的头像 发表于 02-18 17:18 1366次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>USART的LIN模式

    中科CKS32F107XX系列MCU的电源控制介绍

    CKS32F107xx的工作电压(VDD)为2.0~3.6V,通过内置的电压调节器提供内核所需的1.5V电源,图1为电源系统框架。
    的头像 发表于 03-25 16:34 571次阅读
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的电源控制<b class='flag-5'>介绍</b>