×
嵌入式 > 嵌入式开发 > 详情

英飞凌XC2336 B单片机看门狗编程――基于DAVE2.0平台

发布时间:2020-06-20 发布时间:
|

DAVE——数字应用工程师,出自Infineon科技。它能帮我们准确而快速地进行基于Infineon8位、16位或32位单片机的嵌入式系统设计。由于Infineon的嵌入式为控制器的寄存器的数量非常大,大约有一千多个。所以对大量寄存器的初始化是一件相当棘手的事,而有了DAVE的平台就能很轻松地完成这些事情。同时DAVE还可完成单片机的其它初始化工作,与Keil或、Tasking等编译软件实现链接,轻松完成嵌入式系统的软件开发工作。

XC2336B是Infineon的16位微控制器XC2000家族中的一员,它将功能和性能都得到扩展的C166SV2内核、功能强大的片上外设子系统和各种片上存储器进行了完美结合。执行速度更快、稳定性更好、操作更简单。

1 XC2336B单片机特殊的看门狗工作模式

1.1 正常模式

正常模式是应用复位或内部应用复位后的缺省模式。只有当执行ENWDT指令时,才能从禁用模式进入正常模式。

1.2 禁用模式

对于完全不需要WDT功能的应用,可采用禁用模式。执行指令DISWDT进入禁用模式:若CPUCON1.WDTCTL=0,在初始化结束前执行该指令;若CPUCON1.WDTCTL=1,可在任意时刻执行该指令。

1.3 预警模式

检测到看门狗错误时,始终进入预警模式。若正常模式下定时器溢出,则进入预警模式。此时,WDT不会立即请求对芯片复位,它会首先发送预警输出,确保系统在复位之前进入安全的状态。接收到预警信号后,CPU和系统完成当前挂起的操作请求,不产生新的操作请求。通过中断告知CPU出现预警,CPU可通过寄存器INTSTAT识别WDT预警中断。完成所有挂起的操作后,在复位之前CPU应执行IDLE指令以终止所有进一步的操作。

1.4 恒复位

如果看门狗引发两次复位(应用或内部应用复位),则认为出现了严重的系统故障,XC2336B保持由RSTCON1.WDT配置的复位状态,直至发生上电复位。例如,当器件和外部存储器的连接丢失,以致于无法完成系统初始化时,器件会被周期性复位。这种双复位检测方式可防止各种情况引起的器件周期性复位。

该单片机WDT与其它单片机WDT不同的地方之一就是引入了预警模式中断,这使软件可以在发生异常复位之前处理一些必要的数据;另一个不同的地方就是引入了恒复位状态,使单片机在发生严重的系统故障时,各端口保持非输出状态,同时不产生周期性复位。

如果在某些场合不希望单片机出现恒复位状态,或者不希望单片机在两次WDT复位后就进入恒复位状态,则软件必须在WDT预警模式中断中写入代码。文章后面会有实例说明。

2 单片机初始化结束后WDT有效的工作方式

如图2所示,如果在DAVE软件的WDT初始化选择中选中该项,则软件在复位初始化结束后,WDT应该使能。

但是,如果不在DAVE自动生成的工程文件中,将WDT选项勾选的话,WDT将永远无效。即使你已经勾选了该选项,下次DAVE自动修改工程文件时该选项也会被清除。因此在该工作方式下,软件中可以没有启动WDT的语句,但每次用DAVE自动修改工程文件时都要重新勾选。该选项在工程文件的Start_V3.A66中,位置如图3所示。

在这种工作方式下,在DAVE自动生成的工程文件中,对WDT来说只有如下语句起作用:

_srvwdt_();//服务WDT

3 WDT始终有效的工作方式

如图4所示,如果在DAVE软件的WDT初始化选择中选中该项,则WDT始终有效,随时可以使能和禁止。

在这种工作方式下,应该在DAVE自动生成的工程文件中写入如下语句:

_diswdt_(); //禁止WDT

_asm{ENWDT;} //使能WDT

_srvwdt_(); //服务WDT

4 去掉WDT恒复位状态的方法

在以上两种WDT的工作方式下,当发生两次WDT复位时,单片机都会进入恒复位状态。如果想要去除这种状态,那就必须首先开通WDT预警中断。

然后在预警中断中写入如下代码。

5 结束语

本文对XC2336B单片机WDT的特殊功能进行了讲解,并介绍了两种工作方式。最后还用实际例程说明了如何将XC2336B单片机WDT的特殊功能给去掉,使其能等同与一般单片机的看门狗一样使用。这样,编程人员就可以在读EEPROM、调试和运行等不同环境下熟练运用该单片机的WDT了。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
探讨CAN总线的抗干扰能力