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