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.

[参考译文] TMS320F280025C-Q1:eQEP QCPRDLAT 寄存器在 QCTMR 溢出时不会复位为0xFFFF

Guru**** 2392905 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1438742/tms320f280025c-q1-eqep-qcprdlat-register-does-not-reset-to-0xffff-on-qctmr-overflow

器件型号:TMS320F280025C-Q1
主题中讨论的其他器件:SysConfig

工具与软件:

根据数据表设置 eQEP 边沿捕获单元时似乎遇到了困难。 我将使用 SysConfig 设置模块。 我的目的是通过 ePWM 外设触发一个20kHz 控制环路、然后再读取 QPOSCNT 和 QCPRDLAT 寄存器以确定编码器位置和速度。 锁存已经设置为在读取 QPOSCNT 寄存器时发生。 据我所知、锁存似乎工作正常、但是、当编码器未处于运动状态时、QCPRDLAT 寄存器不会复位为0xFFFF、而是保持捕获到的最后一个值。 此外、当编码器处于一定速度时、QEPSTS (COEF)位永远不会复位为0、始终保持为1。

此行为似乎与 TRM 背道而驰、TRM 会说(第2125页)"如果 QEP 捕捉计时器在单元位置事件之间溢出、那么计时器会设置 STATUS 寄存器中的 QEP 捕捉溢出标志(QEPSTS[COEF])并将 QCPRDLAT 寄存器设置为0xFFFF。 如果在单元位置事件之间发生方向变化、则状态寄存器(QEPSTS[CDEF])中的错误标志被设置、QCPRDLAT 寄存器被设置为0xFFFF。"

关于溢出机制的工作原理、我是否遗漏了一些内容? 下面是在编码器静止的情况下调试寄存器时设置的 SysConfig 屏幕截图。 Coef 似乎设置正确、但 QCPRDLAT 未设置为0xFFFF。

谢谢!

挪亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价用户 id="516885" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1438742/tms320f280025c-q1-eqep-qcprdlat-register-does-not-reset-to-0xffff-on-qctmr-overflow ] QCPRDLAT 寄存器不会复位为0xFFFF、而是保留捕捉到的最后一个值[/QUOT]

    你好、Noah、

    我正在研究这个问题,因为我能够复制你的发现。 请等待我对此作出响应。

    此致!

    Ryan Ma

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

    你好、Noah、

    我们需要更新我们的 TRM 相关内容。 我已经和我们的设计团队进行了验证。

    如果 QEP 捕捉定时器在单元位置事件之间溢出、它将置位 QEP 捕捉溢出标志

    (QEPSTS:COEF)添加到状态寄存器中。  

    当 QEPSTS 时、QCPRDLAT 寄存器不会复位为0xFFFF。 COEF = 1。

    此致!

    Ryan Ma