背景:
????這一年在做開關(guān)磁阻電機(jī)項(xiàng)目黍瞧,采用TMS320F28069芯片诸尽;近期開始啟用看門狗模塊。
分析:
????程序跑飛后電機(jī)相繞組很可能無法正常關(guān)斷印颤、并持續(xù)導(dǎo)通您机,繼而造成該導(dǎo)通相的功率開關(guān)管燒毀。為避免該現(xiàn)象的發(fā)生年局,需要及時(shí)復(fù)位已經(jīng)跑飛的程序并且確保整個(gè)過程中開關(guān)管不被燒毀往产。而看門狗模塊就可以起到復(fù)位程序的作用。
????看門狗的原理是:其模塊計(jì)數(shù)器WDCNTR不停地在自增某宪,當(dāng)自增到最大值溢出時(shí)就會(huì)復(fù)位DSP(程序自然就會(huì)重啟)仿村,如果為了避免DSP復(fù)位,需要定期清零WDCNTR兴喂,清零的方式就是向WDKEY寄存器寫入正確的數(shù)值蔼囊;程序一旦跑飛而無法執(zhí)行到WDKEY賦值語句,DSP就會(huì)在WDCNTR溢出時(shí)自動(dòng)復(fù)位衣迷。這一過程就可以保證程序跑飛時(shí)可以被復(fù)位畏鼓。
????上一段中說的“定期”清零WDCNTR,比較理想的是在定時(shí)器中斷函數(shù)中壶谒,以固定周期清零WDCNTR云矫;但該方式存在缺陷,因?yàn)槿绻绦蚺茱w汗菜,主循環(huán)跑飛的可能性較大让禀,中斷函數(shù)跑飛的可能性很小陨界;如果在中斷函數(shù)中清零WDCNTR巡揍,很可能出現(xiàn)一種情況:程序主循環(huán)已經(jīng)跑飛,中斷函數(shù)卻一直在正常執(zhí)行并且定期清零WDCNTR菌瘪,即主循環(huán)跑飛而無法及時(shí)復(fù)位腮敌。因此,主循環(huán)中必須插入WDCNTR清零的語句俏扩。
????從主循環(huán)跑飛至看門狗復(fù)位DSP存在時(shí)間差糜工,很可能程序跑飛后功率開關(guān)管因?yàn)殚L(zhǎng)時(shí)間大電流導(dǎo)通而燒毀。而如果ADC中斷函數(shù)中存在電流最大值限制功能录淡,就可以較大程度保證功率開關(guān)管的安全捌木。
????為了保證ADC中斷函數(shù)的正常執(zhí)行,則需要在其跑飛后立即復(fù)位DSP赁咙∨チ可以采用的方式有:?jiǎn)⒂肞WM模塊免钻,在PWM中斷函數(shù)函數(shù)中向看門狗的WDCR寄存器的WDCHK寫入錯(cuò)誤數(shù)值,即可立即復(fù)位DSP崔拥;而ADC中斷函數(shù)中可以不斷清零PWM模塊的TBCTR寄存器以避免PWM中斷函數(shù)的到來极舔。
拙文拋磚引玉,歡迎交流链瓦。文中如有錯(cuò)誤拆魏,也歡迎大家批評(píng)指正。
本文原創(chuàng)慈俯,轉(zhuǎn)載請(qǐng)注明出處渤刃。
知乎、新浪微博贴膘、新浪博客同名卖子。