Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14244
  • 博文数量: 7
  • 博客积分: 131
  • 博客等级: 入伍新兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-04 22:19
文章分类

全部博文(7)

文章存档

2012年(7)

我的朋友

分类:

2012-02-09 10:24:18

ARM S3C44B0X 之 看门狗定时器 篇
   当受到故障,如噪声或系统错误的干扰时,s3c44b0x看门狗定时器能够产生复位信号,使CPU复位,它也可以用作一个普通的16位定时器使用,计算完产生中断信号。如果用作复位信号,可以产生一个长达128MCLK时钟周期的复位信号。
    S3C44B0X 内部的watchdog结构如下图所示:
    在S3C44B0X内部由3个16位的特殊功能寄存器控制看门狗定时器:
    WTCON Reg: 功能控制器
    WTDATA Reg:数据存储器
    WTCNT Reg: 计数存储器
    16位的WTCON寄存器在S3C44B0X复位时的地址为:0x01D3_0000,可读/写,初始值为0x8021,各位的功能如下:

【15~8】设置预分频器值,初始值0x80

【7~6】 保留位,但是在正常模式下必须设置为00,初始值00

【5】   0=关闭看门狗,1=打开看门狗,初始值1

【4~3】 设置除法因子,00=1/16, 01=1/32, 10=1/64, 11=1/128,初始值00

【2】 中断使能位,0=打开中断,1=关闭中断,初始值0,用于定时器功能,初始值0

【1】保留位,但是在正常模式下必须设置位0,初始值0

【0】复位使能位,0=关闭复位功能,1=打开复位功能,用于复位功能,初始值1

    16位的WTDATA寄存器复位地址为:0x01D3_0004,可读/写,初始值为0x8000

    16位的WTCNT寄存器复位地址为:0x01D3_0008,可读/写,初始值为0x8000

    在打开看门狗后,WTDATA数据不能自动装入WTCNT,因此在打开前需要手段装入。

    定时器的频率(产生中断或者复位信号的周期)计算公式如下:

    f=MCLK/(Prescaler +1 )/除法因子

    时钟周期为:t=1/f,即t(ns)计数一次

在Bootloader阶段禁用看门狗,程序如下:

WTCON EQU 0x01d30000

 ...

ldr r0, =WTCON

ldr r0, =0

str r0, [r0]

...

阅读(873) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~