主题中讨论的其他器件: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。
谢谢!
挪亚