工具与软件:
尊敬的专家:
我的客户使用 ePWM4 CMPC 事件来触发 CLA。
ePWM4与 ePWM1同步。 ePWM4将相位负载启用为2、CMPC 设置为1。
下面是详细配置。



它们存在这样一个问题、即一旦它们通过 AQ Force pull (__LW_AT__触发过压 TZ)、CLA 任务就不会再被触发。
CLA 由 ePWM4中的 CMPC=CMPC 触发、因此我们检查了 CTR 事件标志、但它并未设置。
(由于其以功率级运行、他们只能使用主机读取寄存器、在这里他们读取0x43A8处的 CMPC 标志、发现它为0x8、未设置标志)

他们也使用相同的方法来读取 CTR、以查看它是否等于1。 )CTR 会(__LW_AT__变化、因此他们会将其读取3000次 PRD 是599 μ s、并使用 Excel 对其进行滤波。 在(__LW_AT__图片中、您可以看到 TBCTR 在第二列、并且随机变化)μ s 预计 μ s、但当它们打开滤波器时、这些随机值中不存在"1"。

此时、我们得出结论、CTR 永远不会达到1、因此 ePWM4 CTR = CMPC 永远不会发生。
由于 ePWM4相位负载以"2"、的方式启用、因此 CTR 从不等于1似乎是合理的。
但是、CLA 可在过压之前正常触发。 过压之后无法触发 CLA、但是、如果我们手动设置 CMPC 事件标志、可以在接下来的周期中再次正常触发 CLA。
CLA 使用计算控制循环并清除 CMPC 事件标志。
虽然在相位负载设置为2时设置 CMPC=1可能是不合理的、但我无法解释为什么它首先可以正常工作、但仅在发生过压时才停止工作、并通过手动设置 CMPC 标志一次来在触发 CLA 后恢复工作。
您能帮忙解释一下吗?
此致、
挂起