通用计时器的使用 看门狗wdt实验
Watchdog Timer 详细资料:光盘目录\DSP5509开发板\应用资料\官方手册\ TMS320VC5509 DSP Timers Reference Guide.pdf Chapter 2 Watchdog Timer
Wdt看门狗概念 硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。常用的WDT芯片如MAX813 ,5045, IMP 813等,价格4~10元不等. 软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,用DSP的片上外设资源定时器timer来对主程序的运行进行监控。
Watchdog Timer 看门狗的作用: 监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使DSP复位。 即:防止因为软件死循环而造成的系统死锁。 HX-5509看门狗的结构: Watchdog Timer包括一个16bit的预定标计数器+一个16bit的主计数器 从而提供一个32bit动态范围的计数器
看门狗事件 当主计时器减为0时,产生超时事件,引发以下的可编程事件: 00b,一个看门狗定时器中断 01b,DSP复位 10b,一个非屏蔽中断(NMI) 11b,不发生任何事件 所产生的超时事件,通过编程控制寄存器WDTCR中的WDOUT域来控制
看门狗事件 每当预定标计数器减为0,就会重新装入,并重新开始计数 装入的值由WDTCR中TDDR位+ WDTCR2中的预定标模式PREMD位 来决定 PREMD=0该模式下,4位TDDR直接装入,提供20bit动态范围
看门狗寄存器 0x4000 WDTIM 计数器寄存器 0x4001 WDPRD 周期寄存器 0x4002 WDTCR 控制寄存器 注意:一旦看门狗使能,其寄存器都处于写保护状态。 前三个寄存器写无效, WDTCR2某些域写无效
看门狗配置 WDTIM_Config:配置看门狗WDTIM的结构体, CSL中定义的Structure Structure WDTIM_Config Members For C5509/5509A only Uint16 wdprd Period register Uint16 wdtcr Control register Uint16 wdtcr2 Secondary register 声明的2个实体: myConfig 用作配置,写 getConfig 读
看门狗配置 在c语句WDTIM_service(); /* enable watchdog */ 之前: 控制寄存器(WDTCR)的值应该为 1 WDOUT: 01b,输出内部链接到非屏蔽中断NMI PSC:看门狗预定标计数器 TDDR: 预定标值0xF,即1111b