跟老胡學(xué)軟件_DSP看門(mén)狗應(yīng)用(原創(chuàng))

背景

????這一年在做開(kāi)關(guān)磁阻電機(jī)項(xiàng)目,采用TMS320F28069芯片;近期開(kāi)始啟用看門(mén)狗模塊。

分析:

????程序跑飛后電機(jī)相繞組很可能無(wú)法正常關(guān)斷、并持續(xù)導(dǎo)通,繼而造成該導(dǎo)通相的功率開(kāi)關(guān)管燒毀。為避免該現(xiàn)象的發(fā)生,需要及時(shí)復(fù)位已經(jīng)跑飛的程序并且確保整個(gè)過(guò)程中開(kāi)關(guān)管不被燒毀。而看門(mén)狗模塊就可以起到復(fù)位程序的作用。

????看門(mén)狗的原理是:其模塊計(jì)數(shù)器WDCNTR不停地在自增,當(dāng)自增到最大值溢出時(shí)就會(huì)復(fù)位DSP(程序自然就會(huì)重啟),如果為了避免DSP復(fù)位,需要定期清零WDCNTR,清零的方式就是向WDKEY寄存器寫(xiě)入正確的數(shù)值;程序一旦跑飛而無(wú)法執(zhí)行到WDKEY賦值語(yǔ)句,DSP就會(huì)在WDCNTR溢出時(shí)自動(dòng)復(fù)位。這一過(guò)程就可以保證程序跑飛時(shí)可以被復(fù)位。

????上一段中說(shuō)的“定期”清零WDCNTR,比較理想的是在定時(shí)器中斷函數(shù)中,以固定周期清零WDCNTR;但該方式存在缺陷,因?yàn)槿绻绦蚺茱w,主循環(huán)跑飛的可能性較大,中斷函數(shù)跑飛的可能性很?。蝗绻谥袛嗪瘮?shù)中清零WDCNTR,很可能出現(xiàn)一種情況:程序主循環(huán)已經(jīng)跑飛,中斷函數(shù)卻一直在正常執(zhí)行并且定期清零WDCNTR,即主循環(huán)跑飛而無(wú)法及時(shí)復(fù)位。因此,主循環(huán)中必須插入WDCNTR清零的語(yǔ)句。

????從主循環(huán)跑飛至看門(mén)狗復(fù)位DSP存在時(shí)間差,很可能程序跑飛后功率開(kāi)關(guān)管因?yàn)殚L(zhǎng)時(shí)間大電流導(dǎo)通而燒毀。而如果ADC中斷函數(shù)中存在電流最大值限制功能,就可以較大程度保證功率開(kāi)關(guān)管的安全。

????為了保證ADC中斷函數(shù)的正常執(zhí)行,則需要在其跑飛后立即復(fù)位DSP??梢圆捎玫姆绞接校?jiǎn)⒂肞WM模塊,在PWM中斷函數(shù)函數(shù)中向看門(mén)狗的WDCR寄存器的WDCHK寫(xiě)入錯(cuò)誤數(shù)值,即可立即復(fù)位DSP;而ADC中斷函數(shù)中可以不斷清零PWM模塊的TBCTR寄存器以避免PWM中斷函數(shù)的到來(lái)。

拙文拋磚引玉,歡迎交流。文中如有錯(cuò)誤,也歡迎大家批評(píng)指正。

本文原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處。

知乎、新浪微博、新浪博客同名。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容