STM32的看门狗配置详情解说

发布时间:2023-08-16  

  stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。独立看门狗有自己独立的40Khz时钟,不存在使能问题;而窗口看门狗使用的是PCLK1时钟,需要先使能时钟。以下是关于看门狗的具体说明:

  ①独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。

  ②窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。

  显而易见的是,独立看门狗比较简单,容易理解。这里,主要对窗口看门狗的详细含义作具体说明。

STM32的看门狗配置详情解说

  窗口看门狗介绍:

  看门狗的上窗口就是配置寄存器WWDG-》CFR里设定的W[6:0];下窗口是0x40;当窗口看门狗的计数器在上窗口之外,或是低于下窗口值都会产生复位。如上图所讲,当计数器的值递减到0x3f的计数时间内未进行喂狗操作,则会触发复位;其次,如果在计数器值递减到配置寄存器WWDG-》CFR里设定的W[6:0]之前进行喂狗操作,也会触发复位。所以,在使用窗口看门狗时,要设定两个值,一个就是窗口看门狗的上窗口值,即配置寄存器WWDG-》CFR里设定的W[6:0],另一个就是递减计数器的计数初值。

  再结合上图中的逻辑关系分析一下:

  如图中所示标号,①③表示与门,②表示非或门;

  1、当T[6:0]》W[6:0]时,比较器输出的值是1,如果此时重装载WWDG_CR,所以③就会输出1,②的输出也肯定是1,又因为使能了窗口看门狗,所以WWDG_CR的第7位WDGA也为1,即与门①的输出是1,此时会触发复位。简单的概括来说,就是当递减计数器的值在递减到上窗口值W[6:0]之前进行喂狗操作(即重装载WWDG_CR),会触发看门狗复位。

  2、当T[6:0]的第6位变为0时,即T[6:0]的值变为0x3f,此时②的输出肯定为1,而WDGA也为1,因此①的输出是1,会触发看门狗复位。简单的概括来说,就是当递减计数器的值在到达0x3f时仍未进行喂狗操作(即重装载WWDG_CR),同样会触发看门狗复位。

STM32的看门狗配置详情解说

  上窗口的值可以只有设定,7位二进制数最大只可以设定为127(0x7f),最小又必须大于其下窗口的0x40,所以其取值范围为64~127(0x40~0x7f),否则不能保证窗口。

  配置寄存器WWDG-》CFR寄存器中的[8:7]两个位的设置为计数器设定时钟分频系数,确定这个计数器可以定时的时间范围,从而确定窗口的时间范围。

STM32的看门狗配置详情解说

  窗口看门狗的时钟来自于PCLK1,在时钟配置中,其频率为外部时钟经倍频器后的二分频时钟,即为36Mhz,如上图STM32时钟树所示。

  窗口看门狗的超时公式如下:

STM32的看门狗配置详情解说

  表中数据的具体计算如下所示:

  ①、当T[5:0]全部取0时,7位计数器的值是0x40,此时距离复位值只能计数一次,在此时间之内必须执行喂狗操作,否则触发复位。

  从而可知各个WDGTB值下的最小超时时间,如WDGTB=0时,

  Twwdg=4096×2^0×1/36 (us)=113 us,依次可计算出其他WDGTB值下的最小超时时间。

  ②、当T[5:0]全部取1时,7位计数器的值是0x7f,此时距离复位值递减计数0x40次(0x3f+1),在此时间之内执行喂狗操作可避免复位。

  从而可知各个WDGTB值下的最大超时时间,如WDGTB=0时,

  Twwdg=4096×2^0×64/36 (us)=7281.7 us,依次可计算出其他WDGTB值下的最大超时时间。

  STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。

  通用定时器的定义:STM32的通用定时器是一个通过可编程预分频器(PSC)驱动的16位自动装载计数器(CNT)构成。

  功用:STM32的通用定时器可以被用于测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)等。

  分频系数:决定定时器的时基,即最小定时时间。

  STM32看门狗的配置:

  看门狗的配置有2部分:看门狗的初始化和喂狗。 下面看一下STM32是怎么初始化看门狗和喂狗的。

  看门狗初始化步骤:

  1.IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向 IWDG_KR寄存器中写入0x5555。

  2.设置预分频因子 (Prescaler divider)PR[2:0] 。

  3.设置看门狗计数器重装载值。RLR[11:0]。

  4.重新装载看门狗的计数值,只要在键寄存器IWDG_KR中写入0xAAAA。

  5.在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗

  void Wdt_Init(void)

  {

  // Enable write access to IWDG_PR and IWDG_RLR registers

  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //IWDG-》KR = 0x5555

  // IWDG counter clock: 40KHz(LSI) / 64 = 0.625 KHz IWDG_SetPrescaler(IWDG_Prescaler_256); //IWDG-》PR = 0x06;

  // Set counter reload value to 1250

  IWDG_SetReload(0xfff); //IWDG-》RLR =0xFFF

  Red IWDG counter

  IWDG_ReloadCounter(); //IWDG-》KR = 0xAAAA

  / Enable IWDG (the LSI oscillator will be enabled by hardware) IWDG_Enable(); //IWDG-》KR = 0xCCCC

  }

  //喂狗

  void Kick_Dog(void)

  {

  //Reload IWDG counter

  IWDG_ReloadCounter(); //IWDG-》KR = 0xAAAA }

  上面这个看门狗有 /256 26214.4 ms。即2s多一点时间没有喂狗就复位。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位 (WWDG->CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。 在递减计数器达到窗口配置......
    被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位 (WWDG->CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。 在递减计数器达到窗口配置......
    STM32单片机看门狗的配置方法;STM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理却完全不同,今天来看一下他们的具体区别和配置方法。 ▍STM32独立看门狗 由专......
    。 独立看门狗由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。而窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 看门狗......
    递减计数器的值在T6位(WWDG-》CR的第六位)变成0前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU复位。在递减计数器达到窗口配置寄存器(WWDG-》CFR)数值之前,如果7位的递减计数器数值(在控......
    软件和硬件都有必要做一定预防处理。 除了需要外接复位IC,同时,为了系统能稳定长期的工作,我们可能还有必要添加看门狗。 本文就围绕复位IC、看门狗相关内容展开讲解。 STM32为什么要外接复位芯片? STM32都有一个最低......
    0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU   复位。在递减计数器达到窗口配置寄存器(WWDG->CFR)数值之前,如果 7 位的递减计数器数值(在控制寄存器中)被刷......
    对时间精度要求较低的场合。 独立看门狗特性: 自由运行递减计数器 时钟由独立 RC 振荡器提供(可在待机和停止模式下运行) 当递减计数器值达到 0x000 时产生复位(如果看门狗已激活) 窗口看门狗......
    特性: 自由运行递减计数器 时钟由独立 RC 振荡器提供(可在待机和停止模式下运行) 当递减计数器值达到 0x000 时产生复位(如果看门狗已激活) 窗口看门狗 窗口看门狗,之所以称为窗口,是因......
    复位。 IWDG独立看门狗实例 实验要求:开启STM32的独立看门狗,按键按下即喂狗,如果超时未喂狗,则看门狗复位系统,用指示灯指示系统复位。 步骤: 1.配置RCC 2......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>