辉为科技 ARM主板如何设计外部看门狗电路

Atmel ARM9 系列 CPU 包括at91sam9260、 at91sam9261、 at91sam9263 等芯片都设计了内部看门狗,但由于该看门狗配置寄存器在上电后只能配置一次,而且系统启动时是开启状态。在操作系统引导程序启动时,一般都是将其直接关掉,致使在应用程序中无法使用。在应用上十分不方便。

可以为主板设计外部看门狗电路如下所示:


SP706 具有看门狗、复位功能。 K1 是重启按键, J3 方便引出复位线。74HCT125D 上的1OE、 1A 脚只需接普通的 IO 管脚即可。上电后拉低 1OE 脚电平,看门狗即处于计时状态,这时要不断的变换 1A 脚的电平来喂狗,当 1A 脚的电平保持在低电平或者高电平超过 1.6S, SP706 的 WDO 脚就会输出低电平从而使主板复位。

辉为科技已经为 SP706 设计了驱动支持,以 Linux 操作系统为例:在内核目录下执行

make menuconfig,选择 DeviceDrivers --->

Character devices --->

Watchdog Cards --->

选择 SP706 watchdog,即可将驱动支持编译入内核。


原理图设计中 1OE、 1A 所接 IO 的引脚号,可在 Linux 内核

arch/arm/mach-at91rm9200/board-sam9260k.c (以 HW9260-EK 为例)文件中的以下结

构中指定:

static struct sp706_wdt_platform_datasp706_data = {

.pin_enable = AT91_PIN_PC12,

.pin_wdi = AT91_PIN_PC15,

};

看门狗测试程序如下:

#include <stdio.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <linux/ioctl.h>

#include <linux/watchdog.h>

#include <fcntl.h>

#include <unistd.h>

#include <string.h>

#include <termios.h>

#include <errno.h>

int main(int argc, void *argv[])

{

int fd;

fd = open("/dev/misc/watchdog",O_RDWR);

if (fd < 0) {

printf("open watchdog error!%d\n", fd);

}

while(1){

ioctl(fd, WDIOC_KEEPALIVE, 0);

sleep(1);

}

close(fd);

return 0;

}

当强制结束此程序后,主板会在 1.6S 内重启,说明看门狗已经发挥了作用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值