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.

[参考译文] TMS320F28379D:eQEP 门控索引锁存问题、以及清除状态位

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172580/tms320f28379d-eqep-gated-index-latch-issues-and-clearing-status-bits

器件型号:TMS320F28379D

您好!

我想对 eQEP 模块的一些问题进行一些澄清。 不幸的是、我的试验设置很远程、运行起来不便宜、因此我需要尽力在办公桌上完成这些工作。

COEF 和 CDEF 被锁存

您能否确认此旧主题中的信息是否正确? https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/488827/f28377s----eqep-unable-to-clear-capture-timer-overflow-error-flag

具体而言、该帖子说:

"看起来文档不正确。 您需要写入 QEPSTS 的"1" CEF 位以将其清除。"

如果这确实正确、则该器件的最新文档中仍不存在:"SPRUHM8I"。 我不认为文件中说该位是通过这种方式在任何地方清零的、也不说它是锁存的。 但是、在同一寄存器中有一个关于清除该位的注意事项、即 UPEVNT 标志。

我假设 CDEF 会表现出类似的行为、那么您能否确认 COEF 和/或 CDEF 确实已锁存、并且需要用写"1"清除。  

此外、同一文档的第2176页还有一个拼写错误"QEPCTZ"。

QEPI 门控到 A 和 B 会导致索引锁存器发生晃动

我在512 PPR 轮上使用以下相关设置、索引门控至 A 和 B:

  • 正交计数模式
  • 同步 GPIO (无四路)
  • 两个边沿进行计数
  • QPOSMAX = 2047
  • PCRM = 2
  • IEL= 1.
  • 正向旋转

这导致 QPOSILAT 每秒在2047和2046之间切换多次***。  在更高的速度6k RPM +下、表现明显更好、但并未完全消失。  如果发生位置计数器错误、我只想使用索引来重置计数。 我的应用在每次旋转时可以承受几个误差计数、但如果计数器误差随着时间的推移而累积、绝对不能承受重大漂移。  需要记录和报告任何 QEP 计数器问题。

在 MCU 平面上、信号看起来都很干净、并且边沿之间实际上没有明显的时间差(当然小于5ns SYSCLK)。

将 IEL 更改为3是否有帮助? 这是我的最佳猜测、任何建议都值得赞赏。  我愿意尝试许多事情。  我正在考虑在指数中添加几 ns 延迟、以确保它始终略高于第一个正边沿、但我认为必须有更好的方法来解决这一问题。

编辑: 我的问题似乎也与此类似: e2e.ti.com/.../tms320f28388d-eqep-module-index-detection

注意:我通过 CAN HMI 查看该线程中的值、而不是通过调试器查看缓冲值。

***-我目前无法确认是否有其他值被锁定,但我将在下一次测试中添加一些调试代码来检查这一点。

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

    您好、Wil、

    感谢您深入探讨这一问题。 我将需要仔细查看我们的错误跟踪、以查看是否曾正式记录过此问题、尽管自从您提到的 E2E 主题已经有很长一段时间了、但我怀疑是这样。 请允许我更详细地探讨这一点

    作为额外的调试注意事项、您是否在将索引信号引入 eQEP 外设之前对其进行了任何输入限定? 该软件功能应作为 GPIO MUX 的一部分提供、有助于缓解索引锁存问题

    此致、

    Peter

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

    尊敬的 Peter:

    我使用的同步模式没有对 GPIO MUX 进行限定(列表中的第2个项目符号)。  我可以尝试添加3个合格时钟、但我已经验证了信号非常干净(在读取为12V 差分后进行隔离)。 它似乎只是增加了不必要的延迟。

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

    您好、Wil、

    [引用 userid="88556" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172580/tms320f28379d-eqep-gated-index-latch-issues-and-clearing-status-bits ]如果确实正确,则该器件的最新文档中仍然没有"SPRUHM8I"。 我不认为文件中说该位是通过这种方式在任何地方清零的、也不说它是锁存的。 但是、在同一寄存器中、UPEVNT 标志有一条关于清零该位的说明。[/QUERP]

    最初、在 TRM 中向该寄存 器添加了一条注释、说明"向 QCLR 寄存器中的相应位写入"1"即可将该位清零。" 由于没有相应的位、这个注释后来被删除、并且这些位是可读/写的、所以它们可以通过写入这些位来清除。  

    该原始注释似乎被错误地注释、因此为什么稍后将其删除。 我可以提出一个修正、以便在该寄存器中添加更合适的描述、从而阐明如何重置标志。

    [引用 userid="88556" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172580/tms320f28379d-eqep-gated-index-latch-issues-and-clearing-status-bits "]此外,同一文档的第2176页中还有一个拼写错误"QEPCTZ"。

    你是对的、我认为这应该是 QEPCTL[IEL]。 我们将努力纠正这种情况

    [引用 userid="88556" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172580/tms320f28379d-eqep-gated-index-latch-issues-and-clearing-status-bits/4415114 #4415114"]我可以尝试添加3个合格时钟,但我已经验证了信号非常清晰[/quot]

    使用 QEPCTL[IEL]= 11软件索引标记也可能是您提到的另一种解决方案。 您刚刚遇到了晃动、但没有错过的索引信号、对吧? 如果您遇到一些丢失的索引信号、资质认证可以帮助您、但您可以在这种情况下对其进行测试、以查看您是否也更一致地锁存。

    此致、

    Peter