首页>>科技 >>内容

单片机看门狗什么意思,AT32单片机看门狗简介

发布时间:2023-10-01 15:14:24编辑:温柔的背包来源:

很多朋友对单片机看门狗什么意思,AT32单片机看门狗简介不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

单片机看门狗什么意思,AT32单片机看门狗简介

看门狗简介看门狗看门狗通常用于提高系统的稳定性。当程序因为一些特殊情况跑偏或者运行逻辑出错,没有及时喂狗的时候,看门狗会复位MCU,达到自动恢复异常的效果。建议用户在所有应用中使用看门狗来提高系统稳定性。AT32单片机有两个看门狗:看门狗(WDT)和窗口看门狗(WWDT);

看门狗(WDT):12位倒计时计数器。当计数器从某个值递减到0时,系统将产生一个复位。如果倒计时计数器在递减到0之前被刷新,它将不会产生复位。窗口看门狗(WWDT):一个7位倒计时计数器。当计数器从某个值递减到0x3F时,系统将产生一个复位。如果计数器在指定时间内(窗口时间内)刷新,它将不会产生复位。各型号的差异

每个型号的窗口监视器(WWDT)是相同的,并且程序是兼容的。所有型号的看门狗(WDT)的基本功能是相同的,除了更高级的窗口功能或低功耗的可选停止功能可能被删除,其他功能是相同的,程序是兼容的。表1。看门狗(WDT)各型号区别:表示支持此功能,功能相同。x:表示不支持该功能。使用场景比较

作为两种不同类型的看门狗,WDT和WWDT有不同的适用环境。图一。WDT和WWDT的使用场景对比图2。WDT和WWDT看门狗的特性比较WDT寄存器访问状态寄存器看门狗功能位于两个不同的区域,寄存器部分位于1.2V电压域,计数逻辑部分位于VDD电压域,因此看门狗可以运行在睡眠、深度睡眠和待机模式。

对看门狗寄存器的写操作是在1.2V电压域内进行的,因此写入寄存器后,需要将寄存器值与VDD电压域同步。每个寄存器都有一个同步标志,指示同步操作是否完成。每个同步时间最多需要4个时钟,大约125us。写入寄存器时,相应的同步标志自动置1,同步完成后,该标志自动清0。在同步标志清零之前,不允许再次写入该寄存器。图3。看门狗框图

RLDF:该位为1时,表示重载值的同步正在进行中;当它为0时,表示该过程结束。DIVF:该位为1时,表示预分频器值的同步正在进行中;当它为0时,表示该过程结束。WINF:当该位为1时,表示窗口值的同步正在进行中;当它为0时,表示该过程结束。标志采集功能:寄存器写保护

看门狗寄存器是写保护的,因此在写入寄存器之前需要解除写保护。写命令寄存器CMD=0x5555以解锁写保护。当写入不同的值时,读保护将再次打开。受读取保护的寄存器如下表所示:表2。看门狗寄存器解锁写保护功能:时钟结构图4。看门狗时钟。

看门狗计数器由LICK时钟驱动,倒计时计数器时钟通过一个8位预分频器获得。LICK是内部RC时钟,典型值为40kHz,范围为30kHz~60kHz(具体请参考相应型号的数据手册)。所以超时也是在一定范围内的,使用时要注意超时配置要有余量。如果需要获得更准确的看门狗超时,可以先用定时器测量一下舔频,再根据实际舔频计算超时。

通过寄存器div [2: 0]配置不同的预分频值,可配置的预分频值为4、8、16、32、64、128、256。分频设置功能:计数器看门狗的计数器为12位递减计数器,最大值为0xFFF。当看门狗开启时,计数值将从设定值开始减少,当计数值减少到0时,将产生系统复位。图5。看门狗过载

计数值通过过载寄存器RLD来设置。确定分频值后,该值决定看门狗复位的长度。每当0xAAAA被写入命令寄存器WDT_CMD时,该寄存器的值将被更新到递减计数器(该操作通常被称为喂狗)。喂狗操作需要在计数器递减到0之前进行,否则将被复位。看门狗复位时间计算如下:表3。看门狗复位时间(LICK=40kHz)过载值设置功能:

过载看门狗计数器功能:窗口功能当win [11: 0]设置为非默认值(0xFFF)时,窗口功能将开启。当计数值大于窗口值时,计数器值过载将导致系统复位。例如,当win值设置为800时,允许过载的窗口时间如下图所示。图6。窗口功能窗口设置功能:低功率停止计数

看门狗可以在睡眠、深度睡眠和待机模式下运行。用户可以选择计数器在进入深度睡眠和待机模式后是否停止计数,这可以通过用户系统数据区的nWDT_DEPSLP和nWDT_STDBY位来配置。如果设置了停止计数,看门狗计数器将在进入深度睡眠和待机模式后停止递减,这意味着看门狗在这两种低功耗模式下不会复位,计数器的值将在从这两种模式唤醒后继续递减。图7。低功耗停止计数功能

用户系统数据擦除功能:用户系统数据配置功能:低功耗停止功能。示例:启动看门狗看门狗启动方式分为硬件启动和软件启动。看门狗启动后,除非复位,否则无法关闭。软件启动模式将0xCCCC写入命令寄存器,以使能看门狗。看门狗软件使能功能:硬件启动模式

硬件启动需要通过配置用户系统数据区的nWDT_ATO_EN位来实现。硬件看门狗启用后,上电复位后会自动开始运行。使用硬件启动的看门狗示例:如何使用

看门狗通常用于检测程序的运行或无限循环。比如正常程序运行的时间是10ms,看门狗可以设置为超时20ms。程序运行时,会立即给狗喂食,这样就不会重置。如果超过20ms没有喂狗,说明有问题,此时MCU会复位。例如,要将WDT超时设置为20毫秒,可以将预分频值设置为4,将计数值设置为200。配置步骤:1。禁止寄存器的写保护;2.将预分频值设置为43。将过载值设置为200。

4.启用看门狗5。在应用程序中重载计数器窗口看门狗WWDT窗口看门狗(WWDT)。其主要功能是检测软件逻辑是否按预期执行。它的喂狗时间在一个上下限范围内,它的上下限时间可以通过相关寄存器设置。喂狗时间不能太早也不能太晚(当递减计数器的值小于0x40时,或者在窗口外刷新递减计数器时复位)。时钟结构图8。窗口看门狗时钟

窗口看门狗时钟由APB1时钟分频。由于APB1_CLK的精度,窗口看门狗的时间精度非常高。APB1时钟除以4096,然后发送到预分频器,最后提供给7位递减计数器CNT[6:0]。可以配置不同的预分频器值来获得不同的时钟,预分频器值的范围可以通过div[1:0]1、2、4、8来配置。分频设置功能:计数器

窗口看门狗的计数器是7位递减计数器,最大值为0x7F。当看门狗开启时,计数值将从设定值开始减少,当其减少到0x3F时,将产生系统复位。表4。窗口看门狗复位时间(PCLK=72MHz)计数器值设置功能:窗口功能

窗口的值(win [6: 0])可以自由设置,最大值为(0x7F),最小值必须大于下层窗口的0x40,所以取值范围为64~127(即0x 40 ~0x7F);只有当递减计数器的值小于或等于窗口值时,才允许刷新递减计数器,否则将产生复位。为了方便喂狗,应用程序还可以使用过载计数器中断(RLDIEN)来喂狗。当递减计数器达到0x40时,产生一个中断,计数器在相应的中断服务程序中复位。

图9。窗口功能如上图所示。当配置窗口值为0x4F时,不允许刷新的窗口为0x7F~0x50,允许刷新的窗口为0x4F~0x40。过载标志清除功能:过载标志获取功能:过载中断使能功能:窗口设置功能:看门狗使能。

设置WWDTEN=1以使能窗口看门狗。当窗口监视器打开时,只有在复位后才能关闭。为了避免使能看门狗后立即复位,应在使能看门狗的同时配置看门狗计数值。窗口看门狗使能功能:如何使用

窗口看门狗一般用来检测逻辑运行是否正常。例如,正常程序完成执行的时间是10ms。当程序在10ms前执行完毕,表示存在逻辑错误,看门狗窗口值可以设置为9ms。当程序在9ms前喂狗,说明程序有故障,此时会产生复位。

例如,当PCLK1=36MHz时,要将WWDT超时设置为9ms,可以将预分频值设置为4,总分频为4x4096=16384。计数值是127,窗口值是108。此时,从计数值到窗口值的时间大约是9.1毫秒.所以允许喂狗9.1~29.1ms,不允许喂狗0 ~ 9.1 ms .配置步骤:1 .打开窗口看门狗APB1的时钟。2.设置预分频值为4,总分频为4096x4=163843。将窗口值设置为1084。启用看门狗。5.在应用程序中重新加载计数器。

备注:需要执行0x3F递减计数器=窗口值中使用看门狗WDT的情况。看门狗功能简介演示了看门狗(WDT)功能的使用。资源准备1)硬件环境:产品型号对应的AT-START板2)软件环境project AT _ START _ F4 xxexamplewdtwdt _ RESET注:所有项目均基于keil 5构建。如果用户需要在其他编译环境中使用,请参考at 32 XXX _ firmware _ library _ v2 . x . x project _ start _ xxxtemplates中的各种编译环境(如IAR6/7、keil 4/5)进行简单修改。

软件设计1)配置过程初始化看门狗在主程序中喂狗2)代码介绍主要功能代码描述实验效果正常运行时看门狗不会复位。按键时,看门狗停止喂狗,导致MCU复位。复位后,如果检测到看门狗复位,LED4会点亮,否则LED4不会点亮。案例窗口看门狗WWDT使用功能介绍演示窗口看门狗(WWDT)功能的使用。资源准备1)硬件环境:对应产品型号的AT-START板2)软件环境。

project at _ start _ F4 xxexamplewwdtwwdt _ reset注意:所有项目都是基于keil 5构建的。如果用户需要在其他编译环境中使用,请参考at 32 XXX _ firmware _ library _ v2 . x . x project _ start _ xxxtemplates中的各种编译环境(如IAR 6/7和Keil4/5)进行简单修改。软件设计1)配置过程初始化窗口看门狗在主程序中喂狗2)代码介绍主要功能代码描述实验效果。

在正常操作期间,窗口监视器不会复位。当按键按下时,会停止喂狗,导致MCU复位。复位后,如果检查到车窗看门狗复位,LED4将点亮,否则LED4不会点亮。回顾唐子红

以上知识分享希望能够帮助到大家!