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.

[参考译文] TMS320F2.8335万:Z-Flag检测问题

Guru**** 2032800 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/572751/tms320f28335-z-flag-detection-issue

部件号:TMS320F2.8335万

您好,

我们的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;