用dsPIC30F的QEI模塊測量交流電機速度和位置(05-100)
使能數(shù)字濾波器
本文引用地址:http://www.ex-cimer.com/article/91537.htm使能數(shù)字濾波器在增量編碼器信號中濾波其他信號。對本例所用的結構,圖4說明了輸入信號的濾波作用。
濾波器計算時,編碼器最小脈沖寬度為最高電機速度。在這個實例中,最小脈沖寬度由下式確定:
所配置的濾波器濾出任何小于15祍的脈沖,運行14.75MIPS,能夠滿足濾波器的要求,濾波器分頻器由下式計算:
在QEI模塊中有可選擇參數(shù),選擇64分頻,13祍以下的脈沖將被濾出。
增量脈沖計數(shù)器
在每個QEn引腳輸入增量脈沖計數(shù)器信號。為了盡可能提高分辨率,QEI配置成×4。×4計數(shù)模式時,每個QEA和QEB信號沿到來時,POSCNT寄存器增量計數(shù)或減量計數(shù),圖5是×4配置的定時信號。
復位脈沖計數(shù)器
脈沖計數(shù)器由INDEX引腳復位。圖6是INDEX脈沖復位脈沖計數(shù)器的定時圖。
代碼實例
下面是QEI模塊初始化的代碼實例:
實例1:QEI模塊初始化
void InitQEI(viod)
{
ADPCFG|=0x0038;
//配置QEI引腳作為數(shù)字輸入
QEICONbit.QEIM=0; //禁止QEI模塊
QEICONbit.CNTERR=0; //清除計數(shù)錯誤
QEICONbit.QEISIDL=0; //睡眠期間連續(xù)工作
QEICONbit.SWPAB=0; //QEA和QEB交換
QEICONbit.PCDOUT=0; //標準I/O引腳工作
QEICONbit.POSRES=1;
//標志脈沖復位位置計數(shù)器
DELTCONbits.CEID=1; //禁止計數(shù)錯誤中斷
DELTCONbits.QEOUT=1;
//允許QEn引腳數(shù)字濾波器輸出
DELTCONbits.QECK=5;
//對QEn數(shù)字濾波器1:64時鐘分頻
DELTCONbits.INDOUT=1;
// 允許INDEX引腳數(shù)字濾波器輸出
DELTCONbits.INDCK=5;
//對INDEX數(shù)字濾波器1:64時鐘分頻
POSCNT=0;
//復位位置計數(shù)器
QEICONbit.QEIM=6;
//用INDEX位置計數(shù)器復位×4模式
Return;
}
分頻器相關文章:分頻器原理
評論