paradoxfx

【原创】TI C2833x介绍---系统的初始化(3)

0
阅读(16510)

看门狗计数器

在程序运行的正常、可控时,我们是不需要使用看门狗这种机制的,因为程序可以按照我们设定的流程不停的执行。然而,在有外界干扰发生的情况下,比如电压突然的距离波动、芯片周边环境剧烈的EMI干扰(经常可以看到的在DSP运行时,不太注意的人用手指去摸一下芯片,结果静电使得正常运行的DSP程序立刻崩溃)、在用仿真器运行的时候,因为仿真器经过电脑然后连接到电网上,所以如果你把一个不使用隔离电源的示波器插到插座上并开机,绝大多数时候仿真器都会崩溃导致程序失控;在一些设计不仔细的电机控制板中,甚至时IGBT的一次开通或者关断产生的EMI都可以导致运行中的DSP程序时刻。在失控时,程序的指针PC可能跳转到别的地方去了,这就是程序的跑飞了;在电机控制这样的应用中,程序失去控制是及其危险的事情,轻则使得转速、电流调节器饱和,造成系统过流,重则可能发出错误的触发信号,损坏IGBT等器件,甚至造成对使用者的危害。

看门狗计数器作为一个独立于CPU的计数器,在程序正常运行时,它的计数值是被定时或者用专门的一段代码来清零的;如果程序跑飞了,则看门狗计数器无法正常被复位,很快就将计数到溢出值。在看门狗计数器的计数值溢出之后,它就将向CPU发出复位信号,或者进入专门的中断子程序来出来这些事件,这两者究竟是哪一个被运行是由我们预先编程设定的。在CPU被看门狗计数器的溢出事件触发复位之后,所有的PWM输出都将变为高阻状态,这样就能保证在程序跑飞的同时PWM触发信号全部被封锁,所有的IGBT或者MOSFET等器件都能安全、可靠的被关闭了。