自昊芯推出專(zhuān)題講解芯片電機(jī)過(guò)流跳閘保護(hù)以來(lái),第一期主要講解EPWM_TZ錯(cuò)誤聯(lián)防,第二期主要講解EPWM_DC數(shù)字比較,本期主要講解比較器超閾值檢測(cè)。
HX2000系列COMP模塊工作原理如下,通過(guò)DACCTL[DACSOURCE]拉低,選擇DAC數(shù)字保護(hù)閾值比較。通過(guò)COMPCTL[COMPSOURCE]置低,選擇模擬量閾值比較輸出,用于電機(jī)電流過(guò)流檢測(cè)與保護(hù):輸入模擬信號(hào)Vo,不斷與經(jīng)10位DAC轉(zhuǎn)換所得,模擬量比較閾值DACVAL/1024*3.3相比較,輸出高低電平信號(hào)。通過(guò)COMPCTL[SYNCSEL]選擇,采用系統(tǒng)時(shí)鐘異步采樣輸出,或經(jīng)(COMPCTL[QUALSEL]+1)*SYSCLK同步濾波采樣輸出。根據(jù)EPWM_DC所配故障觸發(fā)類(lèi)型與條件,通過(guò)COMPCTL[CMPINV]選擇,是否對(duì)輸出信號(hào)取反,產(chǎn)生EPWM_TZ錯(cuò)誤聯(lián)防的DC數(shù)字比較、周期CBC限流,或單次OST過(guò)流跳閘信號(hào)。通過(guò)EPWM_DC所配觸發(fā)引腳,輸入錯(cuò)誤聯(lián)防模塊,觸發(fā)EPWM動(dòng)作,關(guān)斷過(guò)流輸出MOSFET橋臂,實(shí)現(xiàn)限流與跳閘保護(hù)。
由此設(shè)計(jì)COMP_DC輸出實(shí)例:模擬信號(hào)ADCINA2輸入比較器使用閾值比較GPIO42輸出:輸入(GPIO17),觸發(fā)CBC周期與DC數(shù)字比較錯(cuò)誤聯(lián)防,按優(yōu)先級(jí)觸發(fā)EPWMxA置高、EPWMxB置低;輸入(GPIO16),觸發(fā)OST單次錯(cuò)誤聯(lián)防,觸發(fā)EPWMxA置高、EPWMxB置低,硬件連接如圖左與圖右所示:
基于CDK V2.12.1開(kāi)發(fā),代碼包括:EPWM、COMP GPIO與ADC模擬量采集AIO引腳配置、EPWM SOCA、DC錯(cuò)誤聯(lián)防三重保護(hù)功能配置、ADC單觸發(fā)源順序采集配置、ADC模擬量采集轉(zhuǎn)換數(shù)字量結(jié)果存儲(chǔ)的中斷服務(wù)程序,COMP模擬量閾值比較配置,TZ觸發(fā)EPWM動(dòng)作的中斷服務(wù)程序,主程序調(diào)用執(zhí)行。
intmain(void){ /*初始化系統(tǒng)控制:PLL,WatchDog,使能外設(shè)時(shí)鐘*/InitSysCtrl(); /*初始化GPIO,復(fù)用為EPwm功能*/InitEPwm1Gpio();InitEPwm2Gpio();InitEPwm3Gpio(); /*初始化TZ錯(cuò)誤聯(lián)防Gpio引腳配置*/InitTzGpio(); /*初始化ADC,使用ADC單觸發(fā)源順序采樣*/InitAdc(); /*初始化GPIO,復(fù)用為comp功能*/InitComp1Gpio(); /*初始化LED配置,用于指示DC錯(cuò)誤聯(lián)防觸發(fā)*/InitLED(); /*關(guān)中斷*/InitPieCtrl(); /*清中斷*/IER=0x0000;IFR=0x0000; /*初始化PIE中斷向量表*/InitPieVectTable();EALLOW; /*將epwm1_tz_isr入口地址賦給EPWM1_TZINT,執(zhí)行OST單次觸發(fā)*/PieVectTable.EPWM1_TZINT=&epwm1_tz_isr; /*將epwm2_tz_isr入口地址賦給EPWM2_TZINT,執(zhí)行CBC周期觸發(fā)*/PieVectTable.EPWM2_TZINT=&epwm2_tz_isr; /*將epwm3_tz_isr入口地址賦給EPWM3_TZINT,執(zhí)行DC數(shù)字比較超越閾值觸發(fā)*/PieVectTable.EPWM3_TZINT=&epwm3_tz_isr; /*將adc_isr入口地址賦給ADCINT3*/PieVectTable.ADCINT3=&adc_isr;EDIS;EALLOW; /*禁用TBCLK同步,允許EPWM初始化配置*/SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;EDIS; /*初始化EPWM1,錯(cuò)誤聯(lián)防配置為單次OST觸發(fā)*/InitEpwm1_Example(); /*初始化EPWM2,錯(cuò)誤聯(lián)防配置為周期CBC觸發(fā)*/InitEpwm2_Example(); /*初始化EPWM3,錯(cuò)誤聯(lián)防配置為DC數(shù)字比較超越閾值觸發(fā)*/InitEpwm3_Example();EALLOW; /*使能TBCLK同步,EPWM配置功能起作用*/SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;EDIS; /*初始化ADC*/ADC_Init(); /*初始化comp1*/InitComp1(); /*使能打開(kāi)CPUIER對(duì)應(yīng)中斷*/IER|=M_INT2|M_INT10; /*使能打開(kāi)對(duì)應(yīng)中斷*/PieCtrlRegs.PIEIER2.bit.INTx1=1;PieCtrlRegs.PIEIER2.bit.INTx2=1;PieCtrlRegs.PIEIER2.bit.INTx3=1;PieCtrlRegs.PIEIER10.bit.INTx3=1; /*使能全局中斷*/EINT; while(1){ if(EPwm_CBC_flag>EPwm_DC_flag){GpioDataRegs.GPBSET.bit.GPIO44=1;} else{GpioDataRegs.GPBCLEAR.bit.GPIO44=1;}} return0;}
CDK上開(kāi)發(fā)COMP_DC輸出程序,編譯結(jié)果為:
編譯通過(guò)后,就可以開(kāi)始調(diào)試了,其中CBC周期錯(cuò)誤聯(lián)防的調(diào)試結(jié)果如下:
CBC觸發(fā)前與故障消除后的EPWM波形如圖左,觸發(fā)后的EPWM波形如圖右:
DC數(shù)字比較錯(cuò)誤聯(lián)防的調(diào)試結(jié)果如下:
DC觸發(fā)前與故障消除后的EPWM波形如圖左,觸發(fā)后的EPWM波形如圖右:
單次OST錯(cuò)誤聯(lián)防跳閘的調(diào)試結(jié)果如下:
OST觸發(fā)前后的EPWM波形如下:
-
芯片
+關(guān)注
關(guān)注
456文章
51004瀏覽量
425254 -
電機(jī)
+關(guān)注
關(guān)注
142文章
9048瀏覽量
145888
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論