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.
我知道、TI 建议只有 CPU1使用 HRPWM。 但其他线程(尤其是这个)表明、限制仅针对必须由 CPU1完成的特定寄存器(HRCNFG、HRCONFIG2等)。 在许多情况下、配置这些寄存器后、只需访问 CMPA/CMPB/FED/RED 的高分辨率扩展。 我想知道 CPU2是否可以写入这些寄存器、是否被赋予 EPWM 通道的所有权。
我知道 SFO ()只能由 CPU1运行(可能是因为它需要访问这些配置寄存器)。 我相信,基于之前的线程,SFO()使用 ePWM1来执行校准,然后用新的 HRMSTEP 值更新所有其它通道。 因此 CPU2拥有的任何通道都不会由 SFO ()更新。 但是、用户应用程序可能会将 HRMSTEP 值从 ePWM1传输到 CPU2拥有的通道、从而解决问题、对吧?
您好!
[引用]我知道 SFO()只能由 CPU1运行(可能是因为它需要访问这些配置寄存器)。 我相信,基于之前的线程,SFO()使用 ePWM1来执行校准,然后用新的 HRMSTEP 值更新所有其它通道。 因此 CPU2拥有的任何通道都不会由 SFO ()更新。 但是、用户应用程序可能会将 HRMSTEP 值从 ePWM1传输到 CPU2拥有的通道、从而解决问题、纠正?[/引用]
是的、SFO ()使用 EPWM1来执行校准、并使用 结果更新相应的 HRMSTEP 寄存器和 MEP_ScaleFactor 变量。 生成的 MEP_ScaleFactor 值可通过共享 RAM 等方式传输到 CPU2、以更新 CPU2所拥有 ePWM 的 HRMSTEP 值。
谢谢
Vasudha
[引用 USER="Mike Twieeeg]我知道 TI 建议只有 CPU1使用 HRPWM。 但其他线程(尤其是这个)表明、限制仅针对必须由 CPU1完成的特定寄存器(HRCNFG、HRCONFIG2等)。 在许多情况下、配置这些寄存器后、只需访问 CMPA/CMPB/FED/RED 的高分辨率扩展。 我想知道 CPU2是否可以写入这些寄存器、是否被赋予 EPWM 通道的所有权。
是的、根据上述线程、只需要在 CPU1中完成与 HR 相关的初始配置、之后 ePWMx 所有权应传递给 CPU2。 在 CMPA/CMPB/FED/RED 的 HR 扩展之后、可以通过 CPU2进行访问。
谢谢
Vasudha
感谢 Vasudha 的回复、
但现在我有点困惑、因为我还回顾 了其他 e2e 线程 、其中建议 HRMSTEP 只需写入 ePWM1、并通过某种未知机制自动与 ePWM2-8共享。 您能澄清一下什么是事实吗?
暂时搁置这一点、我已经看到许多其他线程表示担心 SFO ()可能会如何干扰快速控制循环代码、但我从未见过任何人提出这种变通办法。 看起来它会完全将 SFO ()的执行与快速代码分离、但有以下限制:
CPU1应始终拥有 ePWM1。 因此、CPU2上的 PWM 控制器代码不应依赖 ePWM1。 在我的应用中、ePWM1被设置为一个固定周期/占空比、以便用作实际需要 HR 占空比调制的其他 ePWM 通道的同步源。 我认为这是可以的吗?
在 SFO ()完成后、需要将 MEP_ScaleFactor 手动复制到 CPU2所拥有 ePWM 通道上的 HRMSTEP。 在 共享 RAM 块中实例化 MEP_ScaleFactor 将有助于实现这一点。
您好!
只有少数几个 HR 寄存器仅在 EPWM1中可用。 这方面的文档不清楚。我将检查 HRMSTEP 是否也是其中之一、然后返回。
谢谢
Vasudha
Vasudha、您好、 对此有任何更新吗?
您好!
由 SFO 更新的 HRMSTEP 寄存器可由所有其他 HRPWM 实例访问、即使它由其他 CPU 拥有也是如此。 因此、如果启用了自动转换、则无需将步进值从 CPU1传递到 CPU2。 如果自动转换关闭、则需要将由 SFO 库更新的 MEP_ScaleFactor 变量从 CPU1传递到 CPU2。 这可以通过应用中的 IPC 来实现。
谢谢
Vasudha
感谢 Vasudha、
在我的情况下、自动转换打开、因此在 CPU1上执行的 SFO ()将更新所有 PWM 通道、只要 PWM1归 CPU1所有、我猜是这样。 除此之外,SFO ()和其它 PWM 通道之间是否有任何交互的可能性? 比如阻止 CPU2/CLA 访问 CMPA/CMPB HR 寄存器?
您之前还提到了以下内容:
"很少有仅在 EPWM1中可用的 HR 寄存器"
您是指"CPU1"、而不是"EPWM1"? 您能否提供此类寄存器的完整列表?
此致、
Mike
您好!
我正在检查寄存器列表、并将很快返回。
谢谢
Vasudha
尊敬的 Mike:
由于美国假期、请在下周初回复。
此致、
Marlyn
Vasudha 或 Marlyn、您好吗?您能给我一个更新吗?
您好!
有关更多详细信息、请参阅以下 e2e 帖子。
谢谢
Vasudha