你的位置:首页 > 电路保护 > 正文

【原创】网友热议:一个外置看门狗的不断复位问题

发布时间:2014-09-08 责任编辑:sherryyu

【导读】本文分享一位研发工程师在研发产品运行中的遇到一个异常:一个外置看门狗的不断复位问题,上电后反复重启(时间间隔大概7秒),不能正常启动,断开外置看门狗复位信号后就正常了。这是为什么,该如何解决呢?众网友发表了各种看法。
 
最近,研发产品运行中的遇到一个异常,表现为:上电后反复重启(时间间隔大概7秒),不能正常启动,断开外置看门狗复位信号后就正常了。
 
看门狗部分图纸如下:
看门狗部分图纸
启动过程如下:初始化cpu及部分硬件-》启动ucos-》创建2个任务,1个可以复位看门狗,1个完成系统的初始化。
 
因为是3.3V系统,使用的外置看门狗型号为SP706TE,特征如下:
经过仔细测试,cpu是输出的WDI信号是正常的,250ms间隔的脉冲,没有问题。
 
测量SP706的供电等,也都是正常的。但是WDO上每隔6.18s会有一个20uS的低电平脉冲。
 
经测试,在C32上并一个47uF的电容,效果会好一些。由此,怀疑是3.3V上的干扰在某个瞬时会低于3.08V的RESET阀值。将SP706T改为SP706RE后,问题解决;
 
总结:
 
外置看门狗检测电压VCC,灵敏度很高。如果vcc上纹波大,建议使用低阀值的芯片,或者使用PFI功能来检测电压,当然也可以采用更优质的电源方案;
产品上电后,尽早启动看门狗,系统的可靠性会高一些,可以避免系统启动过程中发生的异常;
 
喂狗避免放到中断中,也尽量不要放到优先级高的任务中。
[page]
众网友热议:
 
网友A:
 
1. 尽管选择低阈值 S 系列解决问题, 是正确的方向. 但是仍然揭示了电源环境中可能存在的异常波动, 而且是被描述为大约7秒的波动. 可检查系统事件, 此时是否 mcu 是否全面唤醒,开启了各clock闸门. 或系统出现如射频等瞬间大电流事件启动. 可以增进了解. C32 的 10uF 似乎选高, 10uF电容的价格是 100nF 的 10倍左右. 似无必要. 根据"单片机复位电路的可靠设计(版权周立功公司)"一文, 似应将 10uF 电容移至 nRST 信号对地, 因为优化上电时延(当然 706 本身亦有上电时延), 这根据您的测试效果而选择.这里是典型的 RC 时延特性用法. 如果加入了这颗电容构成 RC 电路, 那么文章中典型用法是使用 4148 构成电容的反向放电, 和你的降低阈值的需求相反, 反向放电将在电压瞬降时迅速使电容放电, 到达瞬时反应的目的. 网络上相信能查到这种电路图, 这是继续优化的方向. 另外要注意的一点是信号限流. 特别是对于这种任何 IC pin脚形式的使用, 常见的用法是不管有木有效果, 在信号线上(此处是 nRST), 加上一颗阻值较小的限流电阻(举例说 360R). 
 
2. 尽早启动看门狗, 可靠性会高, 原则上没有错误, 但其实使用时常常遇到系统延时启动保证输入电压稳定的设计. 这个延时是否能满足马上启动复位IC 后的第一个 feed watchdog 信号.此外,理论上, 你提出的第二点, 应该不是提高"系统可靠性"的必要充分条件, 应该说甚至是无关的. 理论上, 只要复位 IC 能够正常准确的捕捉每个 mcu 的 dead loop 或 freezing. "尽量提前启动"复位 IC 就显得无意义, 除非是一个特别强调 realtime 系统安排. 因此理论上, 我们应重视的是启动时序, 而异常时序能够被复位IC唤醒(最好异常能被记录).
 
 3.喂狗不能放在中断或者高优先级任务, 必须放在 superloop 的说法, 我听说了很多. 我个人非常怀疑这种说法. 比方说, 你可以假设 interrupt 在没有充分启动的 mcu 中异常运行而导致 interrupt 失效或至少不能响应 interrupt vector 的跳转. 但这种异常的执行环境下, 继续让系统执行而不进行复位的意义在哪里呢? 特别是假如这个中断特别重要的话? 同样, 所谓高优先级的 task 如果崩溃, 但是我们却费力保证不让复位 IC 对此反应... 我个人就觉得实在是太不应该了. 所以, 我个人对"喂狗应该放在哪里放在哪里"的说教看法持极强烈的否定看法. 在您自己的系统中, 您应该根据您的情况进行分析吧. 假设某个重要的优先级task 与中断在您的系统中是如此重要, 以至于无法缺失, 为何不可将您的硬件喂狗放置于此? 如果不放心的话, 您可以选择将软件喂狗放在 superloop. -- 这不应该是某个定论, 而应该是出自于贵研发团队的系统设计需求, 与实测效果及客户现场反馈.
 
4.您在 nRST 信号上没有上拉, 我们说的 RC 优化 nRST 信号线, 都是基于 R 上拉的基础上的, 不上拉的话, 意味者对信号微扰的敏感, 这可能也是您的"易复位"现象的重要成因. 尽管 706 的 datasheet 上没有标识这个上拉的用法, 但作为一个尝试和现实的"不妨碍性"的使用, 似乎是值得一试的.
 
网友B:
 
还是建议测查电路的本质问题,而非那种治标不治本的解决问题方式。既然怀疑电源上有干扰,至少用示波器捕捉一下,搞不好问题正如6楼所说的看门狗芯片输出驱动浮空等问题引起,那不是冤枉电源的质量了。
 
网友C:
 
我的做法是找到你所说的脉冲哪里来的。我还需要模拟脉冲怎么影响看门狗狗。不然,永远都不算解决问题,永远都处于初级工程师阶段。
 
要采购射频么,点这里了解一下价格!
特别推荐
技术文章更多>>
技术白皮书下载更多>>
热门搜索
 

关闭

 

关闭