完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 MMCU5721167 于 2019-3-15 11:31 编辑 来源 灵动微电MMCU 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,因此产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。MM32内置两个看门狗(独立看门狗和窗口看门狗),提供了更高的安全性、时间的精确性和使用的灵活性,可以用来检测和解决由软件错误引起的故障,其中可以使用独立看门狗在stop低功耗模式下进行MCU不复位唤醒功能。 独立看门狗与窗口看门狗的区别 同样是看门狗,独立看门狗(IWDG)和窗口看门狗(WWDG)十分相似,但还是有些不同之处需要注意: 独立看门狗(IWDG)由专门的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效,可在停止(STOP)和待机(STANDBY)模式下工作。 窗口看门狗(WWDG)则由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 图1 独立看门狗框图 IWDG介绍 IWDG 最适合应用于那些需要看门狗作为一个正在主程序外,能够完全独立工作,并且对时间精度要求低的场合,可以在低功耗的停机和待机模式下唤醒或复位MCU。当计数器达到给定的超时值时,触发一个产生系统复位。在SPIN2x系列中,加入了IWDG中断功能。 • 自由运行的递减计数器 • 时钟由独立的振荡器提供(可在停止和待机模式下工作) • 看门狗被激活后,则在计数器计数至 0x0000 时产生复位或外部中断信号。 注:MM32不同型号IWDG中断功能和中断线的设置不同,本文仅介绍MM32SPIN2x系列。 MM32SPIN2x系列芯片的独立看门狗的时钟来源为LSI(40kHz),根据预分频寄存器的值,LSI可以最多256分频,最少4分频,配合重装载寄存器,超时时间可以设置为最少0.1ms,最多26.2s,如下图 图2 看门狗出超时时间 IWDG使用 使用IWDG的基本步骤如下: 1、(可选)配置看门狗外部中断线和中断函数; 2、配置独立看门狗的预分频系数和重装载值; 3、 重载计数值喂狗; 4、 启动看门狗。 在SPIN2x系列中,IWDG使用外部中断线24,与WWDG使用同一个中断处理函数,若使用IWDG中断,再退出中断之后需要重新配置IWDG。 下面我们简单的配置一下MM32SPIN27的IWDG中断模式: 1、(可选)配置看门狗外部中断线和中断函数 void Iwdg_Interrupt_Config() NVIC_InitSturcture.NVIC_IRQChannel = WWDG_IRQn; NVIC_InitSturcture.NVIC_IRQChannelCmd = ENABLE; GPIO_LED_Config();//使用LED显示看门狗是否进入中断 void WWDG_IRQHandler()//IWDG与WWDG使用同一个中断函数 2、配置独立看门狗 void PVU_CheckStatus(void)//查询看门狗预分频更新标志 void RVU_CheckStatus(void)//查询看门狗计数器重载值更新标志 void Interrput_Iwdg_ON(unsigned short int IWDG_Prescaler, unsigned short int Reload) PVU_CheckStatus();//配置时钟分频 RVU_CheckStatus();//配置重装载值 IWDG_EnableIT(); //启用中断模式 IWDG_ReloadCounter();//使能IWDG前先喂狗 3、时钟配置函数 void HSI_SYSCLK(void)//设置为HIS 8分频 4、main函数 int main(void) Iwdg_Interrupt_Config();//中断配置 PWR_EnterSTOPMode(0, PWR_STOPEntry_WFI);//进入STOP模式 运行结果 编译下载并运行程序,在GPIO的B4引脚上接上一个LED灯,我们可以看到LED灯在闪烁,在UART定时输出”interrupt”,如图3。使用设备记录MCU的供电电流,可以得到图4,在STOP模式下电流仅为3.8uA,持续1.36s唤醒,电流增加为1.65mA。我们可以改变Interrput_Iwdg_ON()函数中的分频值和重装载值来得到想要的唤醒间隔。 图3 UART输出 到这里,一个简单的IWDG中断程序就配置好了。 相比复位模式,在IWDG的中断模式中,我们可以根据需要,在超时的时候向外界发送一些信息,比如MCU的运行状态,更加方便的调试程序。 关于灵动微电子 灵动微电子股份有限公司(股票代码:833448,股票简称:灵动微电)是国内专注于MCU产品与MCU应用方案的领先供应商,是中国工业及信息化部和上海市信息化办公室认定的集成电路设计企业,同时也是上海市认定的高新技术企业。自2011年3月成立至今,灵动微电子已经成功完成数百余MCU产品的设计及推广,灵动微电子目前已批量供货的基于ARMCortex-M0及Cortex-M3 内核的MCU产品包括:针对通用高性能市场的MM32F系列,针对超低功耗及安全应用的MM32L系列,具有多种无线连接功能的MM32W系列,电机驱动及控制专用的MM32SPIN系列,以及针对超小尺寸及超高集成度的MM32P系列等,以满足客户及市场多领域、多层次的丰富应用场景需求。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
2248个成员聚集在这个小组
加入小组灵动微电子MM32全系列MCU产品应用手册,库函数和例程和选型表
11681 浏览 3 评论
【MM32 eMiniBoard试用连载】+基于OLED12864的GUI---U8G2
5922 浏览 1 评论
【MM32 eMiniBoard试用连载】移植RT-Thread至MM32L373PS
10955 浏览 0 评论
【MM32 eMiniBoard测评报告】+ 开箱 + 初探
4571 浏览 1 评论
灵动微课堂(第106讲) | MM32 USB功能学习笔记 —— WinUSB设备
4298 浏览 1 评论
[MM32软件] MM32F002使用内部flash存储数据怎么操作?
964浏览 1评论
792浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 08:56 , Processed in 0.508276 second(s), Total 38, Slave 31 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号