SWCU195A December 2024 – May 2025 CC2744R7-Q1 , CC2745P10-Q1 , CC2745R10-Q1 , CC2745R7-Q1 , CC2755R10
To maintain DMA operation, software must provide new memory block start addresses each time a memory block is finished. When a block is finished, the following occurs:
For the input memory interface block:
AIFINPTR = AIFINPTRNEXT
AIFINPTRNEXT = 0x0000 0000
IRQFLAGS.AIF_DMA_IN is set to generate an I2S_IRQ interrupt.
For the output memory interface block:
AIFOUTPTR = AIFOUTPTRNEXT
AIFOUTPTRNEXT = 0x0000 0000
IRQFLAGS.AIF_DMA_OUT is set to generate an I2S_IRQ interrupt.
To handle this operation, software must either poll if the AIFINPTRNEXT and (or) AIFOUTPTRNEXT registers are zero, or use the IRQFLAGS.AIF_DMA_IN and (or) IRQFLAGS.AIF_DMA_OUT interrupt requests.
Software must write the new memory block start addresses to AIFINPTRNEXT and (or) AIFOUTPTRNEXT before the running block finishes. If the running block finishes while AIFINPTRNEXT and (or) AIFOUTPTRNEXT are zero, the affected DMA channels stop, and IRQFLAGS.PTR_ERR is set.