ARM+Linux下看门狗应用

  作者:冯瑞明 时间:2013-02-07来源:电子产品世界

  摘要:本文介绍了在ARM+Linux的条件下,传统的看门狗应用存在的问题及解决方案。此方案可以做为ARM+Linux条件下的一种标准解决方法。

  现象、问题描述

  笔者在设计ARM+Linux的产品中,使用了看门狗ADM706。这款IC的定时间隔为1.6s。由于使用ARM9的内核,操作系统为Linux。整个系统完全启动时间较长,超出了看门狗的喂狗时间门限。因此在CPU能完全启动开始喂狗前,看门狗又给出了复位信号,导致CPU重启。由于成本的原因,此款看门狗IC的定时复位间隔时间已经定死,不能由CPU设置。我们无法通过更改看门狗的喂狗间隔时间来满足CPU的启动要求。

  关键过程及根本原因分析

  使用的看门狗电路如图1所示。  

 

  RESET信号为看门狗输出的复位信号,WDI为CPU输出的喂狗信号。在1.6s的时间内,WDI信号有从高到低或者从低到高的变化,则看门狗内部的定时器清零,重新计数,无复位信号输出。

  由于采用Linux内核的操作系统,Bootloader采用U-Boot。在从U-Boot跳转到Linux内核的过程中,必须关闭定时器中断。CPU不能定时喂狗,且跳转执行的间隔时间都大于1.6s。因此需要关闭看门狗的复位输出信号,以使CPU能完全启动。

  改进电路

  仔细阅读此看门狗IC的Datasheet。看门狗IC的框图如图2。此看门狗IC内部包括三部分功能:

  (1)看门狗的定时器,当MR为低电平或WDI有电平变化时清零。当定时器溢出,WDO输出低电平。一旦定时器清零,WDO输出高电平。

  (2)当VCC失败或MR上有低电平,一旦上述条件消失,RESET输出一个200ms宽度的低电平信号。因此,当WDO直接连到MR管脚上后,RESET输出一个周期为1.6s,低电平宽度为200ms的复位信号。

  (3)PFI的输入电平低于1.25V时,PFO输出一个低电平。

  电路图更新为如图3所示。  

关键词: ARM Linux CPU 201301

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版