用dsPIC30F的QEI模块测量交流电机速度和位置(05-100)
使能数字滤波器
本文引用地址:http://www.amcfsurvey.com/article/91537.htm使能数字滤波器在增量编码器信号中滤波其他信号。对本例所用的结构,图4说明了输入信号的滤波作用。
滤波器计算时,编码器最小脉冲宽度为最高电机速度。在这个实例中,最小脉冲宽度由下式确定:
所配置的滤波器滤出任何小于15祍的脉冲,运行14.75MIPS,能够满足滤波器的要求,滤波器分频器由下式计算:
在QEI模块中有可选择参数,选择64分频,13祍以下的脉冲将被滤出。
增量脉冲计数器
在每个QEn引脚输入增量脉冲计数器信号。为了尽可能提高分辨率,QEI配置成×4。×4计数模式时,每个QEA和QEB信号沿到来时,POSCNT寄存器增量计数或减量计数,图5是×4配置的定时信号。
复位脉冲计数器
脉冲计数器由INDEX引脚复位。图6是INDEX脉冲复位脉冲计数器的定时图。
代码实例
下面是QEI模块初始化的代码实例:
实例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时钟分频
DELTCONbits.INDOUT=1;
// 允许INDEX引脚数字滤波器输出
DELTCONbits.INDCK=5;
//对INDEX数字滤波器1:64时钟分频
POSCNT=0;
//复位位置计数器
QEICONbit.QEIM=6;
//用INDEX位置计数器复位×4模式
Return;
}
分频器相关文章:分频器原理
评论