用dsPIC30F的QEI模塊測量交流電機速度和位置(05-100)
使能數字濾波器
本文引用地址:http://dyxdggzs.com/article/91537.htm使能數字濾波器在增量編碼器信號中濾波其他信號。對本例所用的結構,圖4說(shuō)明了輸入信號的濾波作用。
濾波器計算時(shí),編碼器最小脈沖寬度為最高電機速度。在這個(gè)實(shí)例中,最小脈沖寬度由下式確定:

所配置的濾波器濾出任何小于15祍的脈沖,運行14.75MIPS,能夠滿(mǎn)足濾波器的要求,濾波器分頻器由下式計算:

在QEI模塊中有可選擇參數,選擇64分頻,13祍以下的脈沖將被濾出。
增量脈沖計數器
在每個(gè)QEn引腳輸入增量脈沖計數器信號。為了盡可能提高分辨率,QEI配置成×4。×4計數模式時(shí),每個(gè)QEA和QEB信號沿到來(lái)時(shí),POSCNT寄存器增量計數或減量計數,圖5是×4配置的定時(shí)信號。
復位脈沖計數器
脈沖計數器由INDEX引腳復位。圖6是INDEX脈沖復位脈沖計數器的定時(shí)圖。
代碼實(shí)例
下面是QEI模塊初始化的代碼實(shí)例:
實(shí)例1:QEI模塊初始化
void InitQEI(viod)
{
ADPCFG|=0x0038;
//配置QEI引腳作為數字輸入
QEICONbit.QEIM=0; //禁止QEI模塊
QEICONbit.CNTERR=0; //清除計數錯誤
QEICONbit.QEISIDL=0; //睡眠期間連續工作
QEICONbit.SWPAB=0; //QEA和QEB交換
QEICONbit.PCDOUT=0; //標準I/O引腳工作
QEICONbit.POSRES=1;
//標志脈沖復位位置計數器
DELTCONbits.CEID=1; //禁止計數錯誤中斷
DELTCONbits.QEOUT=1;
//允許QEn引腳數字濾波器輸出
DELTCONbits.QECK=5;
//對QEn數字濾波器1:64時(shí)鐘分頻
DELTCONbits.INDOUT=1;
// 允許INDEX引腳數字濾波器輸出
DELTCONbits.INDCK=5;
//對INDEX數字濾波器1:64時(shí)鐘分頻
POSCNT=0;
//復位位置計數器
QEICONbit.QEIM=6;
//用INDEX位置計數器復位×4模式
Return;
}
分頻器相關(guān)文章:分頻器原理
評論