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.

[参考译文] TMS320F28377S:QEP

Guru**** 2473270 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/887220/tms320f28377s-qep

器件型号:TMS320F28377S

我与 Mary West 合作、所以这个问题与同一个系统有关。 我们在正交模式下使用 QEP 来读取编码器输入。 在大多数情况下、这种方法是完美的、但在长时间的多小时运行期间、我们在一个轴上观察到、编码器指示的位置有许多计数关闭(>1000) -两次、误差的幅度几乎相同。 来自编码器的 A 和/或 B 输入是否有任何原因? 我们已经观察 到、断开 A 或 B 输入会导致编码器输出保持其最新值、但这不是我们在两个观察中看到的结果。 我们读取的值完全不同。

如果有任何见解,将不胜感激

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

    您好、Timothy、

    您能否澄清几个问题、以便更好地理解问题?

    1.您是否使用了 eQEP 的索引或选通输入(即 eQEPI 和 eQEPS)?

    2.如何知道位置计数器已关闭、您是否在常规间隔读取 QPOSCNT?  

    3.您是否使用 QCTMR 作为参考时间? 如果是、您是否在每次读取 QPOSCNT 时锁存 QCTMRLAT? 您如何处理 UPEVENT?

    如果您可以发送 eQEP 配置和观察到的结果、则有助于缩小问题范围。

    此致、

    Nirav

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

    你好,Nirav

    以下是您的问题的答案:

    1) 1)我们不使用索引线或选通线进行编码器运动跟踪操作。  但是、我们在电机归零过程中使用选通信号线。  传感器连接到此线路、并进行设置、以便在传感器改变状态时锁存编码器读数。  这在每个仪器功率循环中在一个轴上完成一次。  我们看到的误差在轴归零几个小时后发生。

    2) 2)µsec 以100 μ s 的间隔读取 QPOSCNT。  然后、我们将 QPOSCNT 转换为以 mm 为单位的参考位置(实际单位)。

    我们知道位置计数器已关闭、因为我对 轴位置的观察和报告在一个实例中是一个特定的值(121 mm)、在下一个实例中 、它报告的是134 mm。  它的物理 尺寸仍然为121 mm。

    3) 3) 我们不使用 QCTMR 寄存器。  我们没有使用 QEP 捕获控制。

    4) 4)以下是初始化代码:

    //---- eQEP 解码器控制寄存器的初始化状态- QDECCTL--
    #define QDECCTL_INIT_STATE (XCR_X2/* B11:(0)外部时钟速率、2倍分辨率:计算上升/下降沿*/+\
    QSRC_Quad_MODE)/* B15、B14:(00)正交计数模式(QCLK = iCLK、QDIR = Idir)*///---
    
    eQEP 控制寄存器的初始化状态- QEPCTL ---
    #define QEPCTL_INIT_STATE (QEP_emulation_free// B15、B14:(10)仿真挂起不会影响位置计数器*/+\
    PCRM_POSMAX/* B13、B12:(01)位置计数器在最大位置上复位*/+\
    SEL_Rising//* B6:(0)位置编码器在上升沿锁存的选通事件锁存-使用 QSP */+\进行反相
    IEL_Rising//* B5、b4:(01)索引事件锁存在索引信号的上升沿*/+\
    QPEN_ENABLE/* B3:(1) eQEP 位置计数器启用*/+\
    TOP_DISABLE)/* B1:(1)禁用 eQEP 单元计时器*//
    
    - eQEP 位置比较控制寄存器的初始化状态- QPOSCTL-
    #define QPOSCTL_INIT_STATE PCE_DISABLE/* B12:(0)位置比较禁用*/
    
    //- eQEP 捕捉控制寄存器的初始化状态- QCAPCTL ---
    //用于使用编码
    器#define QCAPCTL_INIT_STATE 执行慢速测量 CEN 禁用/* B15:(0)禁用 eQEP 捕捉*/
    
    void ConfigureQEP (QEP* QEP)
    {
    QEP->qepReg ->QDECCTL.ALL= QDECCTL_INIT_STATE;
    QEP->qepReg ->QEPCTL.ALL= QEPCTL_INIT_STATE;
    QEP->qepReg ->QPOSCTL.ALL= QPOSCTL_INIT_STATE;
    QEP->qepReg->QCAPCTL.ALL= QCAPCTL_INIT_STATE;
    QEP->qepReg ->QPOSMAX= QEP->resData.posScaleCounts;
    QEP->countsPerElectRev= QEP->countsPerMotorRev /((float) QEP->numPolePairs);
    QEP->rawEncCount= 0;
    QEP->先前 的 RawEncCount= 0;
    QEP->electicalACCUM= 0;
    if (QEP->motor2EncoderSign == 1)
    {
    QEP->qepReg ->QDECCTL.bit.swap= 1;
    }
    QEP->encoderHalfPeriod= QEP->resData.posScaleCounts / 2;
    QEP->qepReg ->QCLR.bit.PHE= 1;
    QEP->qepPhaseErrCount= 0;
    QEP->countsPerElectRevInverse= 1.0/QEP->countsPerElectRev;
    QEP->resData.posScaleCountsInverse= 1.0/QEP->resData.posScaleCounts;
    } 

    为您提出的问题:

    我不担心 QEP 初始化。  我们已在多个产品中的多个轴上成功使用了该编码器系统。  对于该特定轴、我们使用的电缆是可疑问题、并尝试了解什么情况会导致我们看到的结果。  我们断开了其中一条编码器线路 、但未看到该结果。  在本例中、 编码器计数在我们手动移动轴时保持其值。  这是预期行为。  哪些情况可能会导致 我们的间歇性读数不佳?

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

    您好、Timothy、

    好的、我可以想象的一种情况是、如果您怀疑通过电缆进入 F28377的 eQEP 信号有噪声、那么它可能会破坏位置计数。  

    您是否在传感器和微控制器之间使用任何滤波器电路? 您可以使用 GPIO 滤波器并根据系统中的噪声配置设置。  

    此致、

    Nirav

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

    你好,Nirav

    我目前正在使用 GPIO 鉴定。  

    QUALPRD2 = µs;//这给出了两个样本之间的~0.2 μ s

    GPAQSEL2 = 2; //六个样本

    我们也在考虑可疑电缆上的噪声、但有兴趣了解您是在轴上还是在示波器上看到过这种噪声。

    谢谢-

    Mary

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

    Nirav、您好!

         感谢您的回答。 除了 Mary 的 GPIO 鉴定外、 A 和 B 信号在电缆上差分传输、然后在包含 F28377S 的电路板上转换回单端信号。 我同意噪声可能会导致问题、但 差动会降低可能性-此外、我在示波器上查看了信号、它们看起来不错。 如果是噪声、那么我们在两种情况下都得到几乎相同的误差幅度、我感到很惊讶。

           除噪音之外还有其他可能的怀疑吗?

    谢谢、

    Tim

      

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

    您好、Tim、

    您是否仍然看到此问题?  

    此致、

    Nirav

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

    是的。 如果有任何见解,将不胜感激。

    谢谢、

    Tim

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

    您好、Tim、

    由于您提到 eQEP 配置工作正常、并且安装的新电缆导致了此问题、我怀疑它与系统相关。 在我们这边、我们无法仿真与您完全相同的设置、因此很难重复问题。

    您是否可以连续监控 QPOSCNT、同时监控通过可疑电缆的 eQEP 信号、以查看 QPOSCNT 在线路上出现干扰时是否损坏、这将有助于隔离问题。  

    此致、

    Nirav