首页 > 代码库 > SDRAM和重定位(一)---看门狗详解
SDRAM和重定位(一)---看门狗详解
看门狗(watch dog timer),是s5pv210芯片内部的一种外设,其本质从名字也可以看出就是一种16位的定时器。
看门狗定时器(WDT)有两种用法:
- 在某些情况下,当出现了芯片中的程序跑飞了或者设备由于外界影响出现错误执行的情况时,我们希望设备能够自动进行复位操作(因为可能这种情况下,人为复位操作很难实现)。看门狗就是这种设备,能够自动进行复位操作。
- 看门狗定时器也可以用作于普通的定时器中断。
看门狗(WDT)的工作原理:
当开启看门狗后,经过一段时间(看门狗就是定时器)后,看门狗就会产生复位信号或者产生一个中断信号,让cpu进行自动复位或者进入中断。而正常工作的时候,我们不希望看门狗自动复位,就要在看门狗定时时间到达之前,进行喂狗操作(重新给定时器赋值)。
s5pv210数据手册中与看门狗相关的硬件原理图和相关特殊功能寄存器:
从WDT的逻辑图可以看出,看门狗(WDT)的源时钟是 PCLK 时钟,然后 PCLK 时钟经过预分频(prescaler,大小范围是 0~2^8-1)后,再除以一个因子,便得到最终定时器的时钟。由此可以得出看门狗定时时钟的周期:
=====================================================
WTCON寄存器:
bit[0]:用来控制看门狗是否产生复位信号(自动复位功能开关)
bit[2]:用来控制是否产生中断信号(中断功能开关)
bit[3-4]:选择除数因子的大小
bit[5]:用来控制看门狗定时器是否开启(总开关)
bit[8-15]:预分频的大小
WTDAT寄器:
用来存放定时器的初始值。当刚开启看门狗定时器的时候,WTDAT中的值不会被自动加载到WTCNT寄存器中(开启之后,如果定时器再溢出会自动被加载到WTCNT中),所以在开启看门狗之前,必须要给WTCNT一个初始值。
WTCNT寄存器:
用来存放定时器的当前值,每经过一个定时器时钟,该寄存器中的值便减 1 ,当此寄存器中的值减为 0 的时候,便根据WTCON中的设置产生一个复位信号或者是一个中断信号。
SDRAM和重定位(一)---看门狗详解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。