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.

[参考译文] TMS570LS1224:如何使用 DMA 创建缓冲 AQCTRLA?

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1043390/tms570ls1224-how-to-use-dma-to-create-a-buffered-aqctrla

器件型号:TMS570LS1224

我尝试求解 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时、必须加载此值)  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yutin、

    听起来不错。 如何使用 CMPx 事件触发 DMA?