隨著能源需求的日益短缺,科技的日趨智能化,高精度的模擬量準(zhǔn)確采集,已日趨成為當(dāng)今社會(huì)迅速發(fā)展的必然需求。昊芯順應(yīng)時(shí)代要求,推出適用于高精度工業(yè)自動(dòng)化運(yùn)動(dòng)控制的新版HXS320F28034PNT數(shù)字信號(hào)處理器DSP,芯片EPWM模塊DC以空窗濾波功能,濾除數(shù)字比較誤動(dòng)作事件,更加有效助力于工程師實(shí)現(xiàn)高精度信號(hào)采集,廣泛應(yīng)用于電動(dòng)車(chē)、電動(dòng)汽車(chē)、軌道交通、全電飛機(jī)、新能源發(fā)電、機(jī)器人等工業(yè)自動(dòng)化高精度控制領(lǐng)域。
平頭哥半導(dǎo)體有限公司劍池集成開(kāi)發(fā)環(huán)境(簡(jiǎn)稱“CDK”)支持HX2000系列芯片調(diào)試,本期將對(duì)EPWM_DC空窗濾波功能應(yīng)用展開(kāi)介紹。
HX2000系列EPWM_DC信號(hào)濾波可用于DC數(shù)字比較錯(cuò)誤聯(lián)防誤動(dòng)作事件濾除,過(guò)流誤動(dòng)作期間ADC采樣潛在噪聲濾除。實(shí)現(xiàn)方法如下:
通過(guò)DCFCTL[SRCSEL]選擇,濾除數(shù)字比較DCAEVT1/2或DCBEVT1/2空運(yùn)行事件噪聲;配置DCBCTL[EVT1SRCSEL]對(duì)數(shù)字比較事件濾波;通過(guò)DCBCTL[EVT1FRCSYNCSEL]選擇同/異步采樣;通過(guò)DCFCTL[PULSESEL]位配置濾波起始偏移點(diǎn)為CTR=0或CTR=PRD,從而在CTR=0或CTR=PRD處,偏移DCFOFFSET位置,產(chǎn)生長(zhǎng)度為DCFWINDOW個(gè)TBCLK的空窗濾波信號(hào)??沾捌陂g,被選擇濾除的數(shù)字比較事件信號(hào)被屏蔽,導(dǎo)致其產(chǎn)生的SOC信號(hào)、同步、中斷與強(qiáng)制信號(hào)均被屏蔽,空窗結(jié)束后,數(shù)字比較事件可以產(chǎn)生SOC信號(hào)、同步、中斷與強(qiáng)制信號(hào),因而可用于DC過(guò)流誤動(dòng)作信號(hào)濾除,以有效濾除空窗期間ADC啟動(dòng)轉(zhuǎn)換前潛在噪聲,從而實(shí)現(xiàn)更精確的模擬量信號(hào)采集,與PWM限流動(dòng)作觸發(fā)。
由此設(shè)計(jì)EPWM_DC模擬量過(guò)流信號(hào)濾波實(shí)例:EPWM2_SOCA觸發(fā)ADCINA2采樣,假設(shè)輸入采樣電流超越閾值,則比較器COMP1輸出低電平給TZ3,再將TZ1引腳置高,將TZ1,TZ3輸入給DC模塊:由DCAH與DCAL產(chǎn)生數(shù)字比較事件DCAEVT2,觸發(fā)EPWM2A置高;由DCBH與DCBL信號(hào)輸入,產(chǎn)生數(shù)字比較事件DCBEVT1,觸發(fā)EPWM2B置低;在EPWM2 CTR=0處,偏移500TBCLK處,產(chǎn)生200TBCLK長(zhǎng)度空窗,對(duì)EPWM2_DCAEVT1信號(hào)濾波,以濾除過(guò)流誤動(dòng)作信號(hào),防止PWM限流誤動(dòng)作觸發(fā)。
因此,硬件連接為5V-ADCINA2,GPIO1-GPIO17,3.3V-TZ1(GPIO12)如上圖所示。
基于CDK V2.12.1開(kāi)發(fā),代碼包括:EPWM 及TZ GPIO、COMP1 GPIO與ADC模擬量采集AIO引腳配置,ADC初始化上電,EPWM2_SOCA事件功能配置,EPWM2_DC觸發(fā)動(dòng)作及空窗信號(hào)濾波配置、ADC單觸發(fā)源順序采集配置、COMP1比較器比較閾值檢測(cè)功能配置,ADC模擬量采集轉(zhuǎn)換結(jié)果存儲(chǔ),DC觸發(fā)EPWM動(dòng)作中斷程序,主程序調(diào)用執(zhí)行。
1.intmain(void)2.{3. /*初始化系統(tǒng)控制:PLL,WatchDog,使能外設(shè)時(shí)鐘*/4. InitSysCtrl();5. /*初始化GPIO,復(fù)用為EPwm功能*/6. InitEPwm2Gpio();7. /*初始化TZ故障保護(hù)模塊*/8. InitTzGpio();9. /*初始化Adc*/10. InitAdc();11. /*初始化GPIO,復(fù)用為comp功能*/12. InitComp1Gpio();13. /*初始化LED配置*/14. InitLED();15. /*關(guān)中斷*/16. InitPieCtrl();17. /*清中斷*/18. IER=0x0000;19. IFR=0x0000;20. /*初始化PIE向量表*/21. InitPieVectTable();22. EALLOW;23. /*執(zhí)行帶有空窗的DC事件觸發(fā)EPWM2A,DC事件觸發(fā)EPWM2B*/24. PieVectTable.EPWM2_TZINT=&epwm2_tz_isr;25. /*將adc_isr入口地址賦給ADCINT3,執(zhí)行ADC采樣*/26. PieVectTable.ADCINT3=&adc_isr;27. EDIS;28. EALLOW;29. /*每個(gè)啟用的ePWM模塊中的TBCLK(時(shí)基時(shí)鐘)均已停止。*/30. SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;31. EDIS;32. /*初始化EPWM2*/33. InitEpwm2_Example();34. EALLOW;35. /*所有使能的ePWM模塊同步使用TBCLK*/36. SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;37. EDIS;38. /*初始化ADC*/39. ADC_Init();40. /*初始化comp1*/41. InitComp1();42. /*使能相對(duì)應(yīng)的中斷*/43. IER|=M_INT2|M_INT10;44. PieCtrlRegs.PIEIER2.bit.INTx2=1;45. PieCtrlRegs.PIEIER10.bit.INTx3=1;46. EINT;47. while(1)48. {}49. return0;50.}
CDK上開(kāi)發(fā)信號(hào)濾波實(shí)例程序,編譯結(jié)果為:
編譯通過(guò)后,就可以開(kāi)始調(diào)試了,調(diào)試后DC觸發(fā)前后的EPWM輸出如下:
-
芯片
+關(guān)注
關(guān)注
455文章
50714瀏覽量
423131
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論