当前位置:首页 > 单片机 > 单片机
[导读]STM32F4xx内置俩个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备可用来检测和解决由软件错误引起的故障;当计数器大道给定的超时值触发一个中断(触发中断仅适用于窗口看门狗)或产生系统

STM32F4xx内置俩个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备可用来检测和解决由软件错误引起的故障;当计数器大道给定的超时值触发一个中断(触发中断仅适用于窗口看门狗)或产生系统复位。
地理看门狗IWDG有用们的低速时钟LSI驱动,及时主时钟发生故障他也任然有效。窗口看门狗由APB1是中国分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
IWDG最时候用于哪些需要一个看门狗在主程序之外能够独立工作并且对时间精度要求较低的场合,WWDG适合用于哪些要求看门狗在精确计算计时窗口起作用的应用程序。

IWDG主要特性与功能
·自由运行的递减计数器
·时钟由独立RC振荡器提供(可工作在停止和待机模式下)
·看门狗被激活后,则在计数器计到0x000是产生复位

在寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器寄到末尾0x000时会产生一个复位信号(IWDG_RESET)。无论何时,只要在寄存器IWDG中写入IWDG_KR中写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器,从而避免产生看门狗复位。

硬件看门狗
如果用户在选择字节中启用了“硬件看门狗”,在系统上电复位后,看门狗会自动开始运行;如果在计数器结束前,若软件没有向寄存器写入相应的值,则系统会产生复位。
寄存器访问保护
IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555.以不同的值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。重装在操作(写入0
xAAAA)也会启动写保护功能。状态寄存器指示预分配寄存器跟递减计数器是否正在被更新。
调试模式
当微控制器进入调试模式时(M4核心停止),根据调试模块中的DBG_IWDG_STOP配置位状态,IWDG的计数器能够继续工作或停止。

STM32F4的IWDG库
下面是介绍如何使用看门狗驱动 :
·通过函数IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable)使能写寄存器IWDG_PR和IWDG_RLR
·通过函数IWDG_SetPrescaler()配置IWDG分频
·通过函数IWDG_SetReload配置IWDG计数器,每次重装后,计数器将这个值做递减。
·通过IWDG_Enable()来使能IWDG,当看门狗工作在软件模式时(不需要使能LSI,会有硬件自动使能)。
·定时器应该定时调用函数IWDG_ReloadCounter()防止系统复位。

分频器和计数器配置函数
void IWDG_WriteAccessCmd(unit16_t IWDG_WriteAccess)
void IWDG_SetPrescaler(unit8_t IWDG_Prescaler)
void IWDG_SetPrescaler(uint16_t Relaod)
void IWDG_ReloadCounter(void)
看门狗激活函数
void IWDG_Enable(void)使能看门狗
标志管理函数
FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG)用于检测看门狗标志

WWDG的主要特性与功能
·可编程的自由运行递减计数器
·条件复位
当递减计数器值小于0x40,若看门狗被启动则产生复位
当递减计数器在窗口外被重新装载,若看门狗被启动则产生复位
·若果启动了看门狗并允许中断,当递减计数器等于0x40是产生早起唤醒中断(EWI),他可以被用于重装载计数器避免WWD复位。

如果看门狗被启动(WWDG_CR寄存器中的WDGA位被置1),并且7位递减计数器T【6:0]从0x40翻转到0x3f(T6位清零)时则产生一个复位。如果软件计数器大于窗口寄存器中的数值时重装载计数器将产生一个复位。

应用程序在正常运行过程中必须定期的写入WWDG_CR寄存器以防止MCU发生复位。只有当计数器值小于窗口寄存器时,才能进行写操作。存储在WWDG_CR寄存器中的数值必须在0xff和0xc0之间。

启动看门狗
在系统复位后,看门狗总归是处于关闭状态,设置WWDG_CR寄存器的WDGA位能够开启看门狗,随后他不能再被关闭,除非发生复位。
控制递减计数器
递减计数器处于自由运行状态,即使看门狗被关闭递减计数器任然继续递减计数。当看门狗被启用时T6位必须被设置,以防止产生一个复位。T【5:0】位包含了看门狗复位产生之前的计数数目;复位前的延时在一个最小值和一个最大值之间变化,这是应为写入WWDG_CR是其预分频是未知的。配置WWDG_CFR中包含窗口的上限值:要避免产生复位递减计数器的值小于窗口寄存器的数值且大于0x3f时被重新装载,0描述了窗口寄存器的工作过程。另一个重装载计数器的方法是利用早期唤醒中断EWI。设置WWDG_CFR寄存器中的WEI位开启中断。当递减计数器到达0x40时,则产生次中断,相应的中断服务程序ISR可以用来加载计数器防止WWDG复位。在WWDG_SR寄存器中写0可以清楚该中断。
注意:可以用 T6 位 产生一个软件复位(设置 WDGA位为’ 1’, T6 位为’ 0’)。

看门狗中断特性
实际的复位产生前,如果需要执行专门的安全操作或者记录数据,呢么EWI中断就派上了用场。EWI终端有WWDG_CFR的EWI使能位。当地建计数器计到0x40的时候,EWI中断将产生,在设备复位前,我们可以在中断服务程序里面执行或者数据记录。
在一些应用中,EWI终端可以被用来管理软件系统检查/或系统恢复graceful degradation,而不会产生一个WWDG复位。这种情况的话,用户需要在ISR中清除中断标志并喂狗,防止产生系统复位。然后出发需要的操作。
EWI中断可以通过向寄存器WWDG_SR的EWIF位写0来清除。
调试模式
当微控制器进入调试模式(M4核心停止),根据调试中的DBG_WWDG_STOP配置位的状态,WWDG的计数器能够继续工作或停止

如何编写串口看门狗程序

STM32F4的WWDG库
WWDG计数器输入时钟是由 APB1时钟分频而来:
WWDG 计数器时钟 = PCLK1 / Prescaler
WWDG 溢出时间 = (WWDG counter clock) * (counter value)
最大最小溢出时间: @42 MHz(PCLK1): ~97.5 us / 49.9 ms
如何使用看门狗驱动
·通过函数RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE)使能窗口看门狗时钟
·通过函数WWDG_SetPrescaler()设置看门狗分频。
·设置WWDG计数器数值,通过函数WWDG_Enable()启动WWDG,情动WWDG以后,计数器的数值设置要大于0x40,防止立即产生复位
·用户可以悬着是否产生EWI中断,在此中断计数器到0x40时产生,一旦是能。系统复位时将无法将其关闭
·在阻止系统产生福诶的正常操作期间,用户需要在每个时间间隔通过函数WWDG_SetCounter()刷新计数器没刷新操作只能在计数器值小于设定窗口只时进行,窗口只通过函数WWDG_SetWindowValue()设定。

分频器,窗口刷新,计数器配置函数
void WWDG_DeInit(void)
void WWDG_SetPrescaler(uint32_t WWDG_Prescaler)
void WWDG_SetWindowValue(uint8_t WindowValue)
void WWDG_EnableIT(void)
void WWDG_SetCoounter(uint8_t Counter)
独立看门狗激活函数
void WWDG_Enable(uint8_t Counter)
中断标志管理
FlagStatus WWDG_GetFlagStatue(void)
void WWDG_CLearFlag(void)


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭