历史上的今天
今天是:2025年01月14日(星期二)
2019年01月14日 | 关于stm32f4家的两只看门狗WWDG和IWDG剖析
2019-01-14 来源:eefocus
独立看门狗IWDG
stm32f4的独立看门狗IWDG,是一个拥有独立时钟驱动、自由运行递减计数器的外设,用于检测并解决由软件错误导致的故障。
IWDG被开启后IWWDG_RLR寄存器中的值写入计数器并会自动从0xFFF开始递减计时,当递减到0x000时产生一个复位信号并自动复位,复位处理器啊兄die。(将0xCCCC写入关键字寄存器IWDG_KR开启独立看门狗/硬件看门狗使能后会上电会自动开启看门狗)
程序中所要做的就是按时将关键字0xAAAA写到IWDG_KR寄存器中,这时IWDG_RLR寄存器中的值会立即重载到计数器中,从而避免产生看门狗复位(喂狗)。
关键字寄存器IWDG_KR:高16位保留,低16位用于关键字写入。三个关键字0xAAAA表示重置计数器,0xCCCC启动看门狗,0x5555失能IWDG_PR、IWDG_RLR寄存器的写保护。
预分频寄存器IWDG_PR:低三位有效,用于设置预分频器的分频倍数。
重载寄存器IWDG_RLR:设置计数器重载值,低十二位有效。
状态寄存器IWDG_SR:只有0、1两位有效,1位是RVU用于使能对重载寄存器的写操作哦,0位是PVU用于使能对预分频寄存器的写操作。
递减计数器是16位的:0xFFF~0x000
窗口看门狗WWDG
stm32f4的窗口看门狗WWDG,是一个由APB1总线提供时钟的看门狗外设,其主要特色是程序必须要在限定的时间窗口内喂狗,早了不行,晚了也不行。
窗口看门狗复位之后默认关闭,在程序中开启之后除非复位,否则无法再关闭WWDG。
WWDG的递减计数器即使WWDG关闭状态也依然在递减计数。所以在使能WWDG时,必须先将WWDG_CR寄存器的T6位置1,不然可能立即产生复位。同样如果想要软件复位的话,可以利用这一特性。 (T[5:0]保存了上一次复位之前的计时数值)
激活WWDG,将WWDG_CR寄存器WDGA位置1。
WWDG_CR是一个低8位有效的寄存器。
位 7 WDGA:激活位 (Activation bit),此位由软件置 1,只有复位后才由硬件清零。
位 6:0 T[6:0]:7 位计数器 (MSB 到 LSB),这些位用来存储看门狗计数器的值。
递减计数器每隔 (4096 x 2WDGTB) PCLK1 个周期递减一次。当它从 0x40 滚动到 0x3F(T6 清零)时会产生复位。
这里有个重点是,在程序正常运行过程中,必须定期将值写入WWDG_CR中,这个值介于0xFF~0xC0之间。
WWDG的窗口上限值是存在WWDG_CFR配置寄存器的T[5:0]的,下限值固定为0x3F,当计数器的值(即WWDG_CR中的T[5:0]中的值)低于上限值高于下限值时,必须重载计数器的值,在这个区间之外重载或超时都会产生复位信号。
WWDG有个高级中断,即提前唤醒中断EWI,由WWDG_CFR寄存器中的EWI位置1使能控制。这个中断顾名思义就是在复位之前会产生一个中断信号,产生中断信号的时间点是当递减计数器的值为0x40时。这个中断可以用于做数据记录、WWDG计数器重载避免复位、通信操作等等。
依赖EWI中断重载WWDG计数器时,需要特别注意中断优先级的问题,当在更高优先级日任务中时,EWI中断函数很可能无法进入执行,从而导致系统复位。
WWDG_SR状态寄存器,只有最低位0位有效,是EWI中断的中断标志位EWIF位。这个标志位在计数器值为0x40时,会被硬件置1,在中断函数中由软件清0。
配置寄存器WWDG_CFR,低十位有效,位9就是EWI提前唤醒中断使能位,置1有效。位8位7决定了计数器的时钟分频,1/2/4/8四种分频方式。位6~位0用于保存WWDG的上限值。
本文基于阅读STM32F4XX中文参考手册所得,加了一些自己的理解,更详细的内容可以阅读原著第18、19章。
史海拾趣
|
随着第三代移动通信网络技术的发展,移动终端功能的增强和移动业务应用内容的丰富,各种无线应用将极大地丰富人们的日常工作和生活。 近年来,从短信到彩信、彩e、彩铃、手机游戏等,移动增值业务的种类日益丰富。但总体来看,当前移动通信网络提 ...… 查看全部问答> |
|
DDS 概要 1971年,美国学者J.Tierney等人撰写的“A DIGITAL Frequency Synthesizer”-文首次提出了以全数字技术,从相位概念出发直接合成所需波形的一种新给 成原理。限于当时的技术和器件产,它的性牟指标尚不能与已有的技术盯比,故未受到重视。 ...… 查看全部问答> |
|
INtime实时操作系统(RTOS) For Microsoft Windows XP Microsoft Windows XP Embedded Microsoft Windows XP Embedded with Service Pack 1 引言 人们正在越来越多地选择 Microsoft Windows XP 和 Windows XP Embedded 操作系统来运行需要 ...… 查看全部问答> |
|
放大器被用于许多不同的应用中,它们可以被用做高速模数转换器的输入缓冲器、多个视频负载的驱动器和测试仪器应用中的高速脉冲信号放大器等。目前,市场上的大多数高速(>50MHz)放大器的使用都非常方便,但是在适当的情况下,它们会变成非常稳定的振 ...… 查看全部问答> |
|
职位类别:嵌入式应用开发工程师 工作地点:北京 朝阳区 职位月薪:面议 工作性质:全职 招聘人数:4人,限男性 邮箱:topzeal2008@sina.com 职位描述: 1、应用开发、测试及文档编写 2、相关工具的开发及维护 应聘要求: 1、学历不限 ...… 查看全部问答> |




