我想使用28379D 精确地仿真 QEP 传感器 ABZ (或 ABI)差动输出、并希望该信号从外部反馈到 QEP 调节电路、最终返回到 MCU。 我希望能够在运行时更改输出频率、并且希望指数(Z、从现在开始)与每次旋转时精确对齐一次。 我认为使用三个 ePWM 模块(共6个信号)最简单、但我乐于提供建议。
为了生成 A 和 B、我将它们配置为 UpDown 计数器、链接 TBPRD 和 CMPA 值、然后向 B 添加 TBPRD/2相位延迟。每当需要更改输出频率时、都会更新 TBPRD、CMPA 和 TBPHS (B)。
当 QEP 的 PPR 很大时、我发现最大的挑战是正确调整指数(目前、我正在使用512、但我希望有一个灵活的解决方案)。 下面是我修整的一些东西、以及我遇到的一些挑战:
QEP 位置中断(janky McJankyPants)
- 配置 PWM 模块的 Z、使其与 A 完全相同、并确保影子加载 AQS。
- 通过 AQ 将 Z 的输出设置为禁用。
- 配置 QEP 位置比较中断、以便在 PPR-1 PWM 周期触发。
- 在中断中、使用 AQS 启用 Z 的输出并将位置比较设置为0、以便在下一个周期立即触发。
- 在下一个中断中、执行2。
此处的挑战:
- 添加新的中断和 QEP 配置、它们不会包含在实验控制代码中(即使在单独的内核上也是如此)。
- 中断频率可在低 PPR 和/或高频输出下较高。
大草原的女王(大草原的女王)
- 配置 PWM 模块以使 Z 的时钟分频器为 PPR -(假设 A 和 B 的分频器都为1)。 如果 PPR=512、ClkDiv=128、HSPCLK=4。
- 将 Z 配置为向上(或向下)计数器并设置 AQ、以便其在结束时(与 A 对齐时)开启。
此处的挑战:
- 此解决方案仅适用于可使用时钟分频器创建的某些 PPR。
- 在某些条件下不可能将 Z 与 A 对齐、因为 Z 的最小分辨率是 PPR 比 A 差。
对我来说,两个人都吸了,有什么建议吗?