This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,
我们的F2.8335万 eZdsp经常遇到问题。
有时,编码器模块在操作过程中似乎不会检测Z标志,无论电机完成360度旋转的次数是多少次。 我们甚至在UC引脚处使用示波器进行测量,事实上,输入处存在脉冲。
我们找到的唯一解决方案是使用CCS 3.3 重置CPU,然后我们能够再次检测Z标志!
是否有人对这款处理器有类似的体验? 欢迎就可能是什么原因提出任何建议。
谢谢
阿布杜尼
您好,
我假设您正在尝试将编码器的QEP输出连接到eQEP模块和
当您说模块未检测到Z-Flag时,是否意味着位置计数器未重置?
您是否可以共享eQEP配置?
-Bharathi。
您好,
我忘了提到我们使用Matlab Simulink生成代码。 请在下面找到生成的代码
/*为所选引脚启用内部上拉*/
GpioCtrlRegs.GPAPUD.bit.GPIO20 = 0; /*在GPIO20 (EQEP1A)*/上启用上拉
gpioCtrlRegs.gpapud.bit.gpIO21 =0;/* 在GPIO21 (EQEP1B)*/上启用上拉
gpioCtrlRegs.gpapud.bit.gpIO22 =0; /*在GPIO22 (EQEP1S)*/上启用上拉
GpioCtrlRegs.GPAPUD.bit.GPIO23 = 0; /*在GPIO23 (EQEP1I)*/上启用上拉
/*使用GPIO regs*/配置eQEP-1引脚
GpioCtrlRegs.GPAMUX2.bit.GPIO20 =1;/*将GPIO20配置为EQEP1A*/
GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 1;/*将GPIO21配置为EQEP1B */
gpioCtrlRegs.GPAMUX2.bit.GPIO22 =1;/*将GPIO22配置为EQEP1S*/
gpioCtrlRegs.GPAMUX2.bit.GPIO23 =1;/*将GPIO23配置为EQEP1I*/
EDIS;
EQep1Regs.QPOSINIT= pcInitialvalue; /*eQEP初始化位置计数*/
EQep1Regs.QPOSMAX= pcmaximumvalue; /*eQEP最大位置计数*/
EQep1Regs.QUPRD=单位周期; /*eQEP单位周期登记*/
EQep1Regs.QWDPRD=监视计时器; /*eQEP监视计时器寄存器*/
EQep1Regs.QDECCTL.ALL = qdecctl; /*eQEP解码器控制(QDECCTL)寄存器*/
EQep1Regs.QEPCTL.ALL = qepctl; /*eQEP控制(QEPCTL)寄存器*/
EQep1Regs.QPOSCTL.ALL = qposctl; /*eQEP位置比较控制(QPOSCTL)寄存器*/
EQep1Regs.QCAPCTL.ALL = qcapctl; /*eQEP捕获控制(QCAPCTL)寄存器*/
EQep1Regs.QEPCTL.bit.FREE_SOFT = 2;/* 不受仿真暂停*/影响
EQep1Regs.QPOSCMP = comparevalue; /*eQEP position-compare*/
EQep1Regs.QEINT.ALL = qeint; /*eQEPx中断启用寄存器*/
位置
pcmmaximumvalue = 2047U;
pcInitialvalue = 0U;
unittimerperiod = 0;
comparevalue = 0;
监视计时器=0;
qdecctl =0;
qepctl =136;
qposctl = 3.2768万;
qcapctl =119;
qeint = 0;