我尝试求解 ePWM 0%~100% PWM 占空比输出。
我还阅读了有关该问题的应用手册。 结果 AQCTLx (x=A、B、动作限定符控制寄存器)未被缓冲。
应用手册"SPRAAI1"还在 ISR 开头修改了 AQCTLx、然后在 ISR 末尾再次修改了 AQCTLx 以解决此问题、请参阅 第8页"SPRAAI1"中的图2软件流程图。
但是、这意味着 AQCTLx 不会被缓冲、并且会在 CPU 执行时间不满足"要求"时受到影响
为了解决这个问题、ISR 需要一个一次性写入端解决方案、因此这意味着需要缓冲 AQCTLx。
一种潜在的解决方案是:
使用 ePWM 来创建一个 CMPx 事件来触发 DMA、以便将一个值从缓冲区加载到 AQCTLx 中、CMPx 事件应考虑 DMA 的延迟。
这是可能的吗? 我的 ePWM 设置是
TB:递增-递减计数,使用
CMPA:占空比、TBCNT=0上的负载
AQCTLA:
0向上,CAU 向下,CAD 向上,CMPA=1~PRD,如果需要占空比>0
当所需占空比=0时、递减零、CAU 递减、针对 CMP=1、CAD 递减(当 TBCNT=0时、必须加载此值)