隨著能源的日益短缺,科技的日趨智能化,高精度的脈沖測(cè)量,已日趨成為人們生產(chǎn)生活必然趨勢(shì)。中科昊芯順應(yīng)時(shí)代要求,推出適用于高精度工業(yè)自動(dòng)化運(yùn)動(dòng)控制的新版HXS320F28034PNT數(shù)字信號(hào)處理器DSP,芯片QEP模塊以16位T法與32位M法,適配于較低與較高速度等級(jí)測(cè)速,更加有效助力于工程師實(shí)現(xiàn)高精度脈沖測(cè)量,廣泛應(yīng)用于電動(dòng)車、電動(dòng)汽車、軌道交通、全電飛機(jī)、新能源發(fā)電、機(jī)器人等工業(yè)自動(dòng)化高精度控制領(lǐng)域。
自平頭哥半導(dǎo)體有限公司的劍池集成開發(fā)環(huán)境(簡(jiǎn)稱“CDK”)支持HX2000系列芯片調(diào)試以來(lái),本期以QEP測(cè)速實(shí)例對(duì)QEP電機(jī)測(cè)速展開介紹。
HX2000系列QEP測(cè)速的實(shí)現(xiàn)方式如下:采用GPIO MUX定義引腳:獲取差分編碼器正交脈沖QEPA與QEPB、索引QEPI信號(hào);通過(guò)QDECCTL[XCR]選擇,上升沿、下降沿或雙邊沿捕獲計(jì)數(shù)方式,得到時(shí)鐘信號(hào)xCLK;經(jīng)解碼QDU邏輯處理,得到方向的高低電平信號(hào)iDIR;通過(guò)QDECCTL[QSRC]選擇引腳模式:正交、方向、增或減計(jì)數(shù),讀取方向QDIR、時(shí)鐘QCLK信號(hào);通過(guò)QEPCTL[PCRM]選擇,位置計(jì)數(shù)控制PCCU模式:索引位置事件、最大位置鎖存、單位超時(shí)鎖存;使能QEPCTL[QPEN],捕獲N線光電編碼器輸出雙邊沿脈沖,使位置計(jì)數(shù)器產(chǎn)生計(jì)數(shù),從而計(jì)算電機(jī)轉(zhuǎn)速,常用方法如下:
(1)T法:一個(gè)脈沖周期fclk內(nèi),捕獲脈沖計(jì)數(shù),載入16位定時(shí)器QCTMR。單位事件發(fā)生時(shí),更新載入QCPRDLAT,電機(jī)轉(zhuǎn)速n=60*fclk/(4N*QCPRDLAT)。QCTMR上溢時(shí),位置方向QDIR將變化,使捕獲單元QEPSTS[COEF]發(fā)生錯(cuò)誤標(biāo)志,故僅適用于低速測(cè)量。
(2)M法:規(guī)定檢測(cè)事件Tc內(nèi),捕獲脈沖計(jì)數(shù)。單位事件發(fā)生時(shí),鎖存到32位QPOSILAT和QPOSSLAT,故電機(jī)轉(zhuǎn)速n=60*QPOSSLAT/(4N*Tc),適用于高速測(cè)量。
由此設(shè)計(jì)QEP測(cè)速實(shí)例:EPWM配置1KHz PWM波,模擬1000線編碼器旋轉(zhuǎn),EQEP采用M法與T法測(cè)量60rpm與6000rpm下旋轉(zhuǎn)的轉(zhuǎn)速,單位周期為SysFreq*100,采用上升沿計(jì)數(shù),捕獲得到脈沖計(jì)數(shù),實(shí)現(xiàn)轉(zhuǎn)速測(cè)量,采用定時(shí)器中斷實(shí)現(xiàn)三種不同功能切換,故硬件連接如下:GPIO0-GPIO20,GPIO1-GPIO21。
基于以上分析,在CDK上開發(fā)QEP脈沖捕獲輸出,代碼包括:EPWM與EQEP的GPIO引腳配置,EPWM 1KHz兩路互差90°的PWM波輸出配置,EQEP單位時(shí)間鎖存計(jì)數(shù)捕獲功能配置,定時(shí)器Timer0配置,計(jì)數(shù)捕獲、M法與T法測(cè)速程序及其功能切換的定時(shí)器中斷服務(wù)程序,主程序調(diào)用執(zhí)行。
1.intmain(void)2.{3. /*初始化系統(tǒng)控制*/4. InitSysCtrl();5. /*初始EPWMGPIO*/6. InitEPwm1Gpio();7. /*EQEP1引腳配置*/8. InitEQep1Gpio();9. /*初始化LED配置,用于指示實(shí)際轉(zhuǎn)速是否到達(dá)給定轉(zhuǎn)速*/10. InitLED();11. /*關(guān)中斷*/12. InitPieCtrl();13. /*清中斷*/14. IER=0x0000;15. IFR=0x0000;16. /*初始化PIE中斷向量表*/17. InitPieVectTable();18. /*定時(shí)器配置*/19. Timer0_init();20. EALLOW;21. /*將timer0_ISR入口地址賦給TINT0,執(zhí)行M法、T法測(cè)速切換中斷服務(wù)程序*/22. PieVectTable.TINT0=&timer0_ISR;23. EDIS;24. /*電機(jī)轉(zhuǎn)速初始化*/25. MotorSpeed_init();26. EALLOW;27. /*禁用TBCLK同步,允許EPWM初始化配置*/28. SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;29. EDIS;30. /*配置epwm1,用于模擬編碼器旋轉(zhuǎn)*/31. EPWM1_Config();32. EALLOW;33. /*使能TBCLK同步,EPWM配置功能起作用*/34. SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;35. EDIS;36. /*EQEP脈沖捕獲配置*/37. EQEP_pulseCap();38. /*使能打開相應(yīng)的CPUIER中斷*/39. IER|=M_INT1;40. /*使能打開相應(yīng)的PIEIER中斷*/41. PieCtrlRegs.PIEIER1.bit.INTx7=1;42. /*使能打開全局中斷*/43. EINT;44. while(1)45. {}46. return0;47.}
CDK上開發(fā)QEP測(cè)速程序,其編譯結(jié)果為:
編譯通過(guò)后,就可以開始調(diào)試了,其中M法測(cè)速調(diào)試結(jié)果如下:
T法測(cè)速調(diào)試結(jié)果如下:
所捕獲的光電編碼器QEP正交脈沖波形為:
-
芯片
+關(guān)注
關(guān)注
455文章
50815瀏覽量
423605 -
電機(jī)
+關(guān)注
關(guān)注
142文章
9021瀏覽量
145491
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論