历史上的今天
今天是:2024年08月30日(星期五)
2021年08月30日 | 飞思卡尔MC9S12G系列内部看门狗
2021-08-30 来源:eefocus
最近几天在研究飞思卡尔watchdog的问题,发现网上没有很详细的资料,就想把自己知道的东西记录一下,防止自己忘记,也供别人参考。
什么是watchdog?
watchdog就是一个计数器,这个计数器有一个限值,开启watchdog功能后,当计数器从0自增到该限值或从该限值自减到0,就认为此计数器超时了(称为计时器溢出),这时就产生一个复位信号,重启系统。
从watchdog的含义来看,其应该包含两个条件:1)一个自增或自减的计数器;2)为防止计数器溢出,将计数器重置的操作(称为喂狗)。
飞思卡尔MC9S12G的watchdog
和MC9S12G watchdog相关的寄存器主要包括CPMUCLKS、CPMUCOP和CPMUARMCOP这三个。
1)CPMUCLKS寄存器涉及到时钟的选择;这和watchdog的超时时间相关;
2)CPMUCOP寄存器当然是watchdog相关的寄存器了;
3)CPMUARMCOP寄存器主要和喂狗操作相关。

图1 watchDog的时钟源
如图1所示,不同寄存器取值对应不同的时钟源,不同时钟源的主频不一样,计算watchdog超时时间就不一样,要计算watchdog超时时间,首先根据这个表格确定其时钟源。这些参数取值都在寄存器CPMUCLKS中;

图2 CPMUCOP寄存器
1)WCOP决定了watchdog的工作模式,0是正常工作模式,1是窗口工作模式;这两种模式的区别是正常工作模式内,在计时器超时之前重置计时器就可以;但在窗口工作模式,必须要某个特定时间段内重置计时器,否则就会导致立即reset。
2)RSBCK决定了watchdog在调试环境下是否还有效,0表示有效,在调试时仍然运行(这就会导致调试出错,因为watchdog在不停的重启系统),1表示无效,在调试时watchdog不工作;
3)CR[2:0]记录的是看门狗的时钟分频,其值和所选的时钟频率相关,具体取值见下图:


图3 COP的时钟分频
CPMUARMCOP寄存器主要是和喂狗操作相关,通过先将该寄存器值赋为0x55,再赋值为0xAA,便实现了计数器的重置操作。
飞思卡尔MC9S12G watchdog超时时间的计算方法
超时时间的计算公式如下:
fwdt = fwdtclc/CR[2:0]
举例:
实际clcok配置如下:

例一:

PCE=0,COPOSCSEL0 = 1,对应图1,满足条件的两项对应的Clock Source都是OSCCLK,即为晶振时钟,对应clock frequence为16.0MHz;CR[2:0]取值为100,对应值为2^20,则fwdt = 16Mhz/1024/1024 = 16*1000000/1024/1024=15.2587hz;对应的超时时间为T=1/fwdt = 1000ms/15.2587 = 65.536ms;
例二:

PCE=0,COPOSCSEL1 = 1,对应图1,得到其时钟为ACLK,其频率固定为10KHz,CR[2:0]为010,对应分频值为2^9=512,那么fwdt=10Khz/512=10000hz/512=19.53hz,对应的超时时间为T = 1/fwdt=1000ms/19.53=51.2ms
上一篇:飞思卡尔看门狗详解
下一篇:飞思卡尔普通看门狗与窗口看门狗
史海拾趣
|
摘要:针对高压钠灯工作特点以及工作在高频状态下的缺陷,采用电流跟踪技术,设计了一种低频高压钠灯电子镇流器,并设计了可靠的逻辑控制启动电路。最后,给出实验结果。 关键词:高压钠灯;电子镇流器;闭环;电流跟踪 0 引 ...… 查看全部问答> |
|
在Protel中利用向导创建贴片元件时,你会发现SOP的管脚焊盘默认的是50milX100mil(毫英寸),而TSOP的参数书册给出的是18milX33mil,所以,我想问下是否TSOP(T-Type II)是SOP封装的浓缩型,尺寸有了压缩? 很多SDRAM(比如电脑上的内存条用的芯 ...… 查看全部问答> |
|
我用的是ylp2440的开发板,其cpu是s3c2410,买的时候带来的是linux2.6.12的内核,以及arm-linux-gcc的交叉编译工具。现在我想让这个板子跑uclinux的系统,那样怎么弄?是不是把uclinux移植到板子上,然后找个交叉编译工具,在linux的虚拟机上编程? ...… 查看全部问答> |
|
基于WINCE 5.0操作平台,在VC2005 开发MFC智能设备应用软件 在VS2005开发平台下,开发的软件直接通过Microsoft ActiveSync 同步软件下载到2440开发扳上可以运行(通过开发环境) ;单独生成Release版本的,脱离开发环境下载到开发板上就不能运行了. 而使用eVC开发的应用程序就不存在这个问题. &nbs ...… 查看全部问答> |




