SDAA545 October 2026 AM2752-Q1 , AM2754-Q1 , AM620-Q1 , AM623 , AM625 , AM625-Q1 , AM625SIP , AM62A1-Q1 , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62D-Q1 , AM62L , AM62P , AM62P-Q1
This application note introduced the CDD DMA driver for Texas Instruments' MCAL embedded software. The following key points summarize everything a developer needs to get started:
| Topic | Key Takeaway |
|---|---|
| What is DMA? | Hardware-managed data transfer; frees the CPU to run other tasks in parallel |
| Block Copy DMA | Memory-to-memory; uses TRPD descriptors; application allocates descriptor memory |
| Peripheral DMA | Memory↔Peripheral via PSIL threads; driver manages HPD descriptors; peripheral driver calls CDD DMA internally |
| Polling versus Interrupt | Polling: simple but CPU-intensive. Interrupt: efficient and real-time-friendly |
| Channel Chaining | Trigger channel auto-starts chained channel on completion; |
| RINGACC | Hardware queue manager; FQ ring submits work, CQ ring signals completion; all memory 128-byte aligned in DDR |
| PSIL | Peripheral interconnect fabric; thread pairing done automatically at ChEnable/ChDisable |
| Descriptors | TRPD for BCDMA (app allocates); HPD for PKTDMA (driver manages) |
| Interrupt Aggregator | Consolidates DMA events into CPU interrupts; supports shared VINTR for multiple channels |
| Flash DMA | DMA accelerates DAC-mode reads; Cdd_Dma_Init() must precede Fls_Init(); TCM buffers fall back to CPU |
| Memory Rules | 128-byte alignment; DDR only (not TCM); applies to ring mem, descriptors, and data buffers |
| Init Order | Register interrupt → Cdd_Dma_Init() → peripheral Init() → transfers → peripheral DeInit() → Cdd_Dma_DeInit() |