關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 用dsPIC30F的QEI模塊測量交流電機(jī)速度和位置(05-100)

用dsPIC30F的QEI模塊測量交流電機(jī)速度和位置(05-100)

——
作者:Microchip公司 Jorge Zambada 時間:2009-02-23 來源:電子產(chǎn)品世界 收藏

  使能數(shù)字濾波器

本文引用地址:http://m.butianyuan.cn/article/91537.htm

  使能數(shù)字濾波器在增量編碼器信號中濾波其他信號。對本例所用的結(jié)構(gòu),圖4說明了輸入信號的濾波作用。

  濾波器計算時,編碼器最小脈沖寬度為最高電機(jī)速度。在這個實例中,最小脈沖寬度由下式確定:

  

 

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

  

 

  在中有可選擇參數(shù),選擇64分頻,13祍以下的脈沖將被濾出。

  增量脈沖計數(shù)器

  在每個QEn引腳輸入增量脈沖計數(shù)器信號。為了盡可能提高分辨率,QEI配置成×4。×4計數(shù)模式時,每個QEA和QEB信號沿到來時,POSCNT寄存器增量計數(shù)或減量計數(shù),圖5是×4配置的定時信號。

  復(fù)位脈沖計數(shù)器

  脈沖計數(shù)器由INDEX引腳復(fù)位。圖6是INDEX脈沖復(fù)位脈沖計數(shù)器的定時圖。

  代碼實例

  下面是初始化的代碼實例:

  實例1:初始化

  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; //標(biāo)準(zhǔn)I/O引腳工作

  QEICONbit.POSRES=1;

  //標(biāo)志脈沖復(fù)位位置計數(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;

  //復(fù)位位置計數(shù)器

  QEICONbit.QEIM=6;

  //用INDEX位置計數(shù)器復(fù)位×4模式

  Return;

  }

分頻器相關(guān)文章:分頻器原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉