218s新光盘fm3应用笔记_第1页
218s新光盘fm3应用笔记_第2页
218s新光盘fm3应用笔记_第3页
218s新光盘fm3应用笔记_第4页
218s新光盘fm3应用笔记_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LSD MCU TECHNOLOGY CO.,.FM332 位微控制器MB9BF21x 系列WatchdogSoftware Watchdog应用笔记第 1页 共 13页LSD MCU TECHNOLOGY CO.,.版本历史:第 2页 共 13页版本日期作者审核描述1.02013/8/15微控事业部创建第一版LSD MCU TECHNOLOGY CO.,.目录1 章 简介4第1.11.22 章2.12.22.32.42.52.62.7看门狗简介4看门狗简介4具体描述5看门狗框图5看门狗定时器的设定顺序示例7看门作时序8使用注意事项8看门狗库函数9Software Watchdog 中断例程9

2、Software Watchdog 复位例程10第3 章 应用实例11第3.13.23.3实例说明11流程图11详细配置124章 总结12第第 3页 共 13页LSD MCU TECHNOLOGY CO.,.第 1 章 简介1.1 看门狗简介看门狗定时器可以检测出用户程序是否失控。如果在事先设定的间隔时间内不能清零看门狗定时器时,则会判断用户程序失控,并向 CPU 输出中断请求或者系统复位请求。看门狗计数器第一次发生下溢时,产生中断请求。中断请求不清零的状态下,第二次发生下溢时,产生复位请求。可使用寄存器设定该功能。FM3 微控制器有 Hardware Watchdog Timer(硬件看门狗

3、)和 Software(看门狗)。它们之间的比较如下表所示:Watchdog Timer配置注意看门狗寄存器受保护,因此保持每个锁定寄存器,按照一定的顺序进行否则不可以看门狗定时器的所有寄存器。,需要,1.2看门狗简介看门狗定时器使用用户程序启动计数时钟使用 APB 总线时钟的分频时钟。待机模式的 APB 时钟停止时,则会停止计数。此时,保持计数值,从待机模式返回时,继续计数。所有的复位均可停止看门狗定时器。第 4页 共 13页LSD MCU TECHNOLOGY CO.,.第 2 章 具体描述2.1看门狗框图S W D G 时 钟系 统 复 位工具中断信号A P B 总 线载入寄存器(Wdo

4、gLoad)该寄存器是 32 位寄存器,可以用来设定FF。间隔时间设定示例看门狗定时器的计数间隔周期。初始值是0 x锁定寄存器(WdogLock)第 5页 共 13页计数时钟频率间隔设定时间40M0 xFF约 107s20M0 xFF约 214s40M0 x0000F约 1.6ms20M0 x0000F约 3.2ms看 门 狗控制逻辑寄存器A P B接 口3 2 位递减计数器数 值 寄 存 器S W D G 复 位S W D G 中 断中 断 复 位 电路清 零 寄 存 器控 制 寄 存 器载 入 寄 存 器锁 定 寄 存 器LSD MCU TECHNOLOGY CO.,.看门狗定时器所有寄存

5、器的。向寄存器写0 x1ACCE551 可该寄存器可以控制对使能对看门狗定时器所有其它寄存器的写。控制寄存器(WdogControl)该寄存器可设定看门狗中断使能和看门狗复位使能。清零寄存器(WdogClr)该寄存器是看门狗定时器的清零寄存器。写任意 32 位值可从载入寄存器的设定值重新载入定时器,并继续计数。看门狗定时器计数器(32 位递减计数器)该计数器是 32 位递减计数器。计数器值递减计数到0前可从载入寄存器(WdogLoad)的设定值重载计数值。重载条件清零寄存器(WdogClr) ,数值寄存器( WdogValue)可读出看门狗定时器的计数值。中断状态寄存器(WdogRIS)该寄存

6、器指示看门狗中断的状态。检测出看门狗定时器计数器发生下溢时,由于寄存器设定,可产生看门狗中断和看门狗复位看门狗定时器的启动控制寄存器(WdogControl) 时,可使能看门狗中断和看门狗复位来启动看门狗。表 3.3看门狗中断和复位设定组合看门狗定时器寄存器的重载和锁定第 6页 共 13页中断复位操作说明看门狗不工作使能下溢发送中断使能不工作使能使能第一次下溢产生中断 第二次下溢时产生复位重载条件清零寄存器(WdogClr)递减计数器计数到0 时修改载入寄存器(WdogLoad)控制寄存器(WdogControl)写EN=0,看门狗器停止;写EN=1,再启动。LSD MCU TECHNOLOG

7、Y CO.,.复位后的初始状态下,寄存器未被锁定。需要锁定时,请使用对 WdogLock 寄存器写入0 x1ACCE551 以外的值。清零寄存器时,请对 WdogLock 寄存器写入0 x1ACCE551 。清零寄存器(WdogClr)赋任意值时,可重载载入寄存器(WdogLoad)的设定值。重载后,再次锁定寄存器。清零寄存器之后,寄存器不会自动锁定。请再次使用锁定。看门狗定时器的停止控制寄存器(WdogControl) ,且看门狗中断使能位写0,可停止看门狗定时器。产生的复位可停止看门狗定时器。2.2看门狗定时器的设定顺序示例此设定顺序为寄存器操作,使用库函数将为省去繁琐的寄存器配置过程。第

8、 7页 共 13页LSD MCU TECHNOLOGY CO.,.2.3看门作时序看门狗计数器值初始值 0 x停 止停 止FF设定值 0 x111 设定值 0 x0000 FF F时 间 T9、下溢产 生复位 5、产 生下溢中断 7、停 止模 式4、清除看 门狗计数器 1、设定间隔 0 x111 F8、退出停 止模式 6、改变时 间间隔 2、EN =14、清除看 门狗计数器 看门狗工作 1.启动前,设定 SWC_PSR, WDGT_CTL。 写 WdogLoad 寄存器,设定间隔时间。 启间隔时间。计数值变为初始值。动前2.WdogControl 寄存器,写处设定值开始递减计数。EN=1 时,

9、看门狗器启动。 此时,可以反映间隔时间,从 1.3.设定值。4.设定值。WdogClr 寄存器并写任意值,可清零看门狗计数器。 此时,设定值是 2. 处的WdogClr 寄存器并写任意值,可清零看门狗计数器。 此时,设定值是 2. 中的5.6.7.8.计数器不清零时,则产生下溢中断。 此时,递减计数器设定值是 2. 处的设定值。WdogLoad 寄存器可变更间隔时间。 此时,递减计数值清零到设定值。切换到停止模式。看门狗器停止。退出停止模式。恢复递减计数。计数值不清零。 注意:振荡稳定等待结束后恢复递减计数,基本时钟操作开始。使用注意事项须使用复位源寄存器确认看门狗复位的发生。看门狗寄存器受保

10、护,因此保持每个锁定寄存器,按照一定的顺序进行,需要,否则不可以看门狗定时器的所有寄存器。第 8页 共 13页LSD MCU TECHNOLOGY CO.,.2.5看门狗库函数2.6Software Watchdog中断例程使能 Software Watchdog 中断,并设计数周期为 1s sic void SWDCallbackFunc(void)SWD_ClrFlag();第 9页 共 13页Software Watchdog API:void SWD_EnableReset(void);使能 Software Watchdog 复位功能void SWD_DisableReset(voi

11、d);关闭 Software Watchdog 复位功能void SWD_Enable(SWD_CallbackT* Callback);启动 Software Watchdog 中断功能void SWD_Disable(void);关闭 Software Watchdog 中断功能void SWD_SetCount(u32_t Cnt);设置 Software Watchdog 的计数值,Software Watchdog 的源时钟是用 APB0 bus clock 分频后提供。分频数是由宏”SWC_PSR_Val”来决定的。例如 APB0 bus clock 为 40MHz,而分频数为4

12、,则 Software Watchdog 的源时钟为 10MHz,设 Cnt 为 10000000,则大概 1s 后,就会产生 Software Watchdog中断,如果复位功能被开启并且中断位没有被清 0 ,再过 1 秒后,产生复位。u32_t SWD_GetCurCount(void);Software Watchdog 的当前计数值void SWD_UnlockAllReg(void);使 Software Watchdog 的寄存器,系统复位后,Software Watchdog 的寄存器都是解锁的。这些寄存器也可以被上锁,这个函数用来对这些寄存器进行。当寄存器后,所有 API 的都

13、有效。一旦寄存器后,写一次后不会加锁。void SWD_LockAllReg(void);使 Software Watchdog 的寄存器加锁,一旦寄存器上锁后,对于写寄存器的函数将无效FlagSusT SWD_GetFlag(void);Software Watchdog 的中断标志,当 Watchdog Timer 计数值往下溢出的时候,这个标志会置 1void SWD_ClrFlag(void);清除 Software Watchdog 的中断标志位,当这个标志位被清 0 后,计数器的值会被重载。如初始设定的计数值为 100, 则当计数值变为0 后的下一个时钟周期,中断标志位置 1 ,

14、把中断标志0 后,计数值重新变为 100 。void SWD_Handler(void);Software Watchdog 的中断处理程序LSD MCU TECHNOLOGY CO.,.32_t main(void)/* Serdware watchdog count */SWD_UnlockAllReg();SWD_SetCount(5000000); /* 5,000,000* (1/(40MHz/8) = 1s */* Disable hardware watchdog reset */ SWD_DisableReset();/* Enable hardware watchdogerr

15、upt */SWD_Enable(SWDCallbackFunc);NVIC_EnableIRQ(SWDT_IRQn); while(1);2.7 Software Watchdog复位例程使能 Software Watchdog 中断和复位功能,并设计数周期为 1s,则约 2s 后复位sic void SWDCallbackFunc(void)32_t main(void)/* reset by software watchdog */ if(bFM3_CRG_RST_STR_SWDT)while(1)/* Serdware watchdog count */SWD_UnlockAllReg

16、();SWD_SetCount(5000000); /* 5000000* (1/(40MHz/8) = 1s */* Disable hardware watchdog reset */ SWD_EnableReset();/* Enable hardware watchdogerrupt */SWD_Enable While(1);(SWDCallbackFunc);第 10页 共 13页LSD MCU TECHNOLOGY CO.,.第 3 章 应用实例3.1 实例说明这里以看门狗复位为例:设置 Software Watchdog 的源时钟是用 APB0 bus clock 2 分频后提

17、供,即 9MHz。初始化点亮一个 LED,设置 Watchdog Timer 的计数周期为 1s,当计数值溢出的时候,产生中断,熄灭该 LED,在中断中并不清除中断标志位,下次溢出,产生复位。当检测到 Hardware Watchdog Timer 引起的复位时,不断闪烁该 LED。3.2流程图主 函 数看门狗中断开 始开 始是否为看门狗引起的复位否是Whil结 束返 回第 11页 共 13页闪 烁 L E De( 1 )熄 灭 L E D不清除中断标志位初 始 化 L E D配置看门狗设置计数值使能看门狗复位使能看门狗中断LSD MCU TECHNOLOGY CO.,.3.3 详细配置首先需

18、要在 pdl_user.h 中开启看门狗功能1 设置计数值/* Set software watchdog count */ SWD_UnlockAllReg();SWD_SetCount(9000000); /* 9,000,000* (1/(18MHz/2) = 1s */2 使能看门狗复位/* Enable software watchdog reset */ SWD_UnlockAllReg(); SWD_EnableReset();3 使能看门狗中断/* Enable software watchdog SWD_UnlockAllReg();errupt */SWD_Enable(S

19、WDCallbackFunc);4s看门狗中断回调函数ic void SWDCallbackFunc(void)/在看门狗中断中,不清除中断标志位,则第二次下溢将复位USER_LED_OFF();/熄灭 LED5检测是否为看门狗引起的复位/* reset by software watchdog */if(bFM3_CRG_RST_STR_SWDT) if(RESET_BY_SWD = RST_GetResetCause()while(1)USER_LED_ON();Delay(2000); USER_LED_OFF();Delay(2000);第 4 章总结本文档介绍了 MB9BF21x 系列的看门狗模块,讲解了看门狗原理与配置,并通过具体了其配置流程。特别要注意每次操作之前,需要看门狗定时器和硬件看门狗定时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论