看似乖巧的
看门狗,也有比较调皮的一面,在烧录无法喂狗的特殊情况下仍会毫不留情的复位
芯片,造成烧录失败,该如何避免这种情况的发生吗?
初识看门狗
嵌入式产品设备在电源瞬变、电磁干扰、静电放电、极端温湿度等复杂环境的干扰下可能会造成程序异常,从而使系统陷入瘫痪状态,这时候我们就希望设备能够自动复位,而不需要人工干预,看门狗定时器可以帮助捕获和重置已经“失控”的设备,实现无人值守,提高系统可靠性。看门狗又叫 watchdog timer,是一个定时器电路,一般有一个输入端用来喂狗,一个输出端RST接到芯片的复位引脚,芯片正常工作的时候,每隔一段时间输出一个信号到喂狗端,给看门狗清零,如果超过规定的时间不喂狗,看门狗溢出,就会给出一个复位信号,拉低RST引脚使得芯片复位。ZL6300是广州致远微电子有限公司自行设计的一款集欠压监测复位、手动复位和超时复位功能的看门狗芯片,具有以下特性:-
上电复位脉冲200mS;
-
支持手动复位;
-
看门狗定时器溢出周期1.7S;
-
低功耗仅9uA;
-
欠压复位。
图1 ZL6300内部结构
应用电路
通过之前对看门狗的初步认识,好的看门狗设计可以大大提升产品的稳定可靠性,我司基于该理念,核心板上均板载独立看门狗,为适应各种复杂环境保驾护航。下面以我司性能卓越的M3568核心板为例,看下它如何灵活设计看门狗电路,对应的原理图如下图2所示,看门狗芯片选型ZL6300,支持手动按键复位和看门狗溢出复位,当系统正常运行时从芯片上电启动到加载看门狗喂狗驱动所需时长约为1S左右,ZL6300溢出周期为1.7S,可以在看门狗溢出周期内及时喂狗清除定时器。
图2看门狗电路
当芯片处于烧录状态时因内核停止工作,喂狗程序不能正常运行,不能及时喂狗,看门狗溢出拉低芯片复位引脚,导致程序下载失败。为应对这种特殊情况,预留了跳线冒选项,插上短路帽即可禁用看门狗,当J2插上短路帽时,WDO_EN被拉至低电平,Q1三级管处于关断状态,WDI引脚处于高组态,当WDI引脚检测到它处于高阻抗状态时将产生自己的WDI脉冲,对应的喂狗波形如下图3所示。
图3 看门狗禁能时喂狗波形
当烧录完成后拔掉跳线帽,Q3处于导通状态,芯片产生的喂狗脉冲WDI_GPIO可通过Q3传递到WDI引脚,实现正常喂狗,对应的喂狗波形如下图4所示。
图4看门狗使能时喂狗波形
总结
下面简单汇总看门狗电路设计注意事项-
看门狗复位脉冲时长要大于CPU的最少复位时间;
-
看门狗溢出周期要大于系统启动到加载看门狗驱动时长,并留有一定的余量;
-
充分利用WDI引脚在高阻态时看门狗定时器功能禁用;
-
避免通过使能看门狗的电源来控制看门狗工作与否,否则会造成系统一直重启,看门狗芯片上电后会输出一个时长200mS的POR信号。
关联产品
技术交流群长按识别如下二维码可加入“工控板/核心板技术交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信:zlgmcu-888。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
原文标题:【技术分享】"喂狗",也要讲究方法
文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
相关推荐
今天咋们要讲的是SPI与4G模组的技术要领,以低功耗模组Air724UG为例,展示给大家学习。
发表于 11-20 23:25
•33次阅读
;: WDT.WDT_DEVICE_0})machine.WDT类为WDT对象提供了feed()方法,用于对WDT对象进行喂狗操作,feed()方法如下所示:WDT.feed()feed()方
发表于 10-15 14:32
运放输入端不是以信号幅值为主吗?为什么有些应用输入也要匹配到50Ω?
另外,对于AB类的MOSFET来说,如果负载需求的功率超过了它能提供的范围,MOS管会怎样?
发表于 09-24 07:08
工程师您好,请问双极性运放的同向输入端也要提供偏置电流的工作点吗,什么情况下可以直接加信号的输入,而不用提供偏流电阻!谢谢
发表于 09-24 06:00
我用如下电路。
我想把两路DA产生的两个信号经这个差分放大器放大。IC:THS4131
这THS4131空载也要消耗32mA 左右的电流,发热严重。
当然,当有信号输入的时候,它是可以放大信号的。
请问是这是什么原因?怎解决?
谢谢!!
发表于 08-30 07:07
我使用OPA567做了一个可调电源,电流限制已经设定到最大。但是当接上负载打开负载开关时总是容易报OCP,而且ocp_flag(PIN7)引脚一直在保持active状态.即便断开负载还是会有这个flag.
问:是不是OCP flag active之后必须要讲EN脚disable之后flag才会复位?
发表于 08-13 07:35
SPC582B的芯片,用SPC5Studio打开SWT后,哪一个是喂狗函数啊?还是要自己写?
发表于 05-31 08:25
该专利主要讲述如何通过特定方法优化内存管理效率,包括确定N个具有相同虚拟地址但权限各异的进程(N必须为大于或等于2的整数),并据此建立特定映射关系表以及权限表,每一进程均对应一个权限表。
发表于 04-16 09:51
•377次阅读
STM32_USB_Device_Library和STM32_USB_Host_Library。请问下,H750既要实现主机,也要实现从机功能,要怎么实现呢?有什么资料可以参考下吗?
发表于 03-19 06:46
这次的例子,主要讲述如何基于PYTHON的 MQTT 客户端的使用方法
发表于 03-14 11:45
•742次阅读
为什么PWM模式输出不能执行喂狗操作,喂狗已初始化,Keil示波器显示一秒中断?
发表于 03-08 06:03
:
如果我在我的app1里面加入了看门狗, 我的app0没有喂狗操作。 当我的程序有app1跳转到app0后,是否会因为不喂狗而导致复位。 另外我的app1如果引起了看门狗复位,那么是复位到app0的入口开始执行还是复位到app1的入口开始执行。
发表于 02-21 06:50
开启看门狗后不喂狗也不会出现复位的现象,用官方例程也是一样的效果,有人遇到过这个情况吗?
发表于 02-19 07:06
使用TC275CPU看门狗,定时器设为1.3秒,在不喂狗的情况下只能复位一次,然后再次复位时,就直接死机了,程序不能重启运行。这是什么情况
发表于 02-05 07:10
开启 INAPPMIC TLF 35584 看门狗(WWD),配置进入 normal模式,在 normal中没有喂狗,会让 rot 产生 resetsentiSettiNoun 号吗?现在不给狗喂东西的情况下,量化测试没有重置信号产生,怎么能让 rot 产生重置信号?
发表于 01-19 08:26
评论