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: How to use DMA to create a buffered AQCTRLA?

Part Number: TMS570LS1224

I'm trying to solve the ePWM 0%~100% PWM duty output.

I've also read the application note about the issue. It turns out that AQCTLx(x=A,B, Action Qualifier Control register) is not buffered.

The application note "SPRAAI1" also modified the AQCTLx in the beginning of the ISR, and then modified in the end of the ISR again to solve the issue, please refer the Figure 2 software flow chart in Page 8, "SPRAAI1".

However, this means AQCTLx isn't buffered, and will be affected when CPU execution time doesn't meet the "requirement"

To solve this problem, ISR need a one-time-write-in-the-end solution, so it means AQCTLx needs to be buffered.

A potential solution is: 

    Use ePWM to create a CMPx event to trigger DMA to load a value from a buffer into AQCTLx, CMPx event should considerthe delay of DMA.

Will this be possible? My ePWM set up is

TB:Up-Down counting, use

CMPA:duty, Load on TBCNT=0

AQCTLA:

Zero Up, CAU Down, CAD Up ,CMPA=1~Prd, when desired duty>0

Zero Down, CAU Down, CAD Down for CMP=1, when desired duty=0(This must be loaded when TBCNT=0)