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.

[参考译文] 在 Hercules TMS570LC4357的 eQEP 模块中使用 QPOSILAT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/595508/use-of-qposilat-in-eqep-module-in-hercules-tms570lc4357

大家好、

我对 QPOSILAT 寄存器的使用有疑问。我正在使用一个旋转编码器、我想计算节拍数和编码器旋转的次数。 我可以使用获取节拍数值  

QPOSLAT 寄存器、我已将最大计数设置为3600。 我无法通过简单的 IF 函数来计算旋转次数:--> if (ticks = 3600) { Revolution ++;}。我遇到的问题是 IF 编码器无法读取3600次滴答  (如果它错过了一些节拍,因为传感器确实有一些限制) 我得到的转数值错误。我需要有关这个问题的帮助、我是否使用寄存器 QPOSILAT 会给我它感测到索引事件的次数、并直接给我转值。

此致、

Mukesh Kumar  

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

    我不明白你有什么疑问。 您对 QPOSLAT 寄存器是否准确地表示检测到的索引数量有疑问? 您说过、似乎错过了第3600个索引、因此转数丢失。 您能否在编码器运行时在传感器输出上放置一个示波器、以查看这是传感器问题还是器件内部逻辑问题。 如果这是传感器故障、并且 eQEP 未提供脉冲、我不确定可以如何处理、而不是建议向您的软件添加一些错误条件代码、以便您可以补偿丢失的脉冲。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我对 QPOSILAT 寄存器的功能感到困惑。 我想知道它锁存了什么值?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mukesh、

    很抱歉耽误你的回答。

    QPOSILAT 寄存器将在索引输入的上升沿或下降沿锁存 QPOSCNT 寄存器的内容。 上升沿或下降沿的选择通过 QEPCTL[IEL]寄存器进行配置、其中 QEPCTL[IEL]=01为下降沿、QEPCTL[IEL]=10为上升沿。