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.

[参考译文] LAUNCHXL-F28379D:eQEP 初始化

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1163618/launchxl-f28379d-initialization-of-eqep

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:LVSERVOMTR

各位专家、您好!

编码器的初始化:
QDECCTL = 0x0000;              //正交计数模式
QEPCTL[FREE_SOFT]=2;
QEPCTL[PCRM]= 0;              //索引事件时位置计数器复位
QEPCTL[IEI]=0;                 //索引事件上位置计数不初始化
QEPCTL[IEL]= 0x3;              //索引事件标记上的锁定
QPOSMAX = 4000-1;             //编码器1.
//QPOSMAX = 10000-1;           //编码器2.

它在2种不同的编码器类型上进行了测试(请参阅图片)。


问题:
方向的每次反转都会出现错误"位置计数器错误"(QFLG[PCE]=1)。 可以在两个编码器上看到这种现象。 此外、对于编码器2、该误差会随着运动方向"逆时针"而不时发生、尽管此处的运动方向没有变化。 这是我的初始化错误还是两个编码器错误、还是 F2837x 的一般行为?


我还注意到、中断"索引事件锁存中断"(QDL[IEL])和 QPOSCNT 的锁存只能在运行模式"索引事件上的位置计数器复位"(QEPCTL[PCRM]= 00)下实现。 在其他运行模式下(QEPCTL[PCRM]= 01、10、11)、无论编码器是如何初始化的、中断(QDL[IEL])还是 QPOSCNT 锁存都不可能实现。 我发现的是正确的吗?


您有什么提示或提示吗?


提前感谢- Bui

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

    您好、Bui、

    您能告诉我您使用的编码器是什么、并看到此位置计数器错误吗? 我认为我在与 LVSERVOMTR 连接时没有看到过这一点。 位置计数器错误中断标志 QFlG[PCE]只能在索引事件锁存的值不等于0或配置的最大位置计数器时置1。 这可能发生在位置计数器与编码器同步之前的第一个完整旋转上、但我不认为应该在方向反转上发生、具体而言是因为必须通过软件清除此错误。  

    关于第二个问题、QCFL[IEL]应在所有操作模式下可用。 您是否配置了索引事件锁存位(QEPCTZ[IEL])? 请参阅 TRM 的以下摘录:

    索引事件锁存位在"PC 在索引事件上复位"模式下被忽略、因此您只能在00模式下看到它、而不能在其他模式下看到它。


    此致、

    Peter

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

    尊敬的 Peter:

    使用的编码器价格低廉、没有名称。 我认为这可能是我测试中出现错误行为的原因。 我想再次运行测试、但这次使用的是信誉良好的制造商提供的编码器。
    我的所有其他问题到目前为止都得到了解决。 我的源代码有几个错误。


    非常感谢您的支持和问候- Bui