DMA Operation
350
SLAU367P – October 2012 – Revised April 2020
Copyright © 2012–2020, Texas Instruments Incorporated
DMA Controller
DMA Priority
Transfer Occurs
New DMA Priority
DMA0
→
DMA1
→
DMA2
DMA1
DMA2
→
DMA0
→
DMA1
DMA2
→
DMA0
→
DMA1
DMA2
DMA0
→
DMA1
→
DMA2
DMA0
→
DMA1
→
DMA2
DMA0
DMA1
→
DMA2
→
DMA0
11.2.7 DMA Transfer Cycle Time
The DMA controller requires one or two MCLK clock cycles to synchronize before each single transfer or
complete block or burst-block transfer. Each byte or word transfer requires two MCLK cycles after
synchronization, and one cycle of wait time after the transfer. Because the DMA controller uses MCLK, the
DMA cycle time is dependent on the MSP430 operating mode and clock system setup.
If the MCLK source is active but the CPU is off, the DMA controller uses the MCLK source for each
transfer, without reenabling the CPU. If the MCLK source is off, the DMA controller temporarily restarts
MCLK, sourced with DCOCLK, for the single transfer or complete block or burst-block transfer. The CPU
remains off and, after the transfer completes, MCLK is turned off. The maximum DMA cycle time for all
operating modes is shown in
(1)
The additional 5 µs are needed to start the DCOCLK. It is the t
(LPMx)
parameter in the data sheet.
Table 11-3. Maximum Single-Transfer DMA Cycle Time
CPU Operating Mode
Clock Source
Maximum DMA Cycle Time
Active mode
MCLK = DCOCLK
4 MCLK cycles
Active mode
MCLK = LFXT1CLK
4 MCLK cycles
Low-power mode LPM0 or LPM1
MCLK = DCOCLK
5 MCLK cycles
Low-power mode LPM3 or LPM4
MCLK = DCOCLK
5 MCLK 5 µs
(1)
Low-power mode LPM0 or LPM1
MCLK = LFXT1CLK
5 MCLK cycles
Low-power mode LPM3
MCLK = LFXT1CLK
5 MCLK cycles
Low-power mode LPM4
MCLK = LFXT1CLK
5 MCLK 5 µs
(1)
11.2.8 Using DMA With System Interrupts
DMA transfers are not interruptible by system interrupts. System interrupts remain pending until the
completion of the transfer. NMIs can interrupt the DMA controller if the ENNMI bit is set.
System interrupt service routines are interrupted by DMA transfers. If an interrupt service routine or other
routine must execute with no interruptions, the DMA controller should be disabled before executing the
routine.
11.2.9 DMA Controller Interrupts
Each DMA channel has its own DMAIFG flag. Each DMAIFG flag is set in any mode when the
corresponding DMAxSZ register counts to zero. If the corresponding DMAIE and GIE bits are set, an
interrupt request is generated.
All DMAIFG flags are prioritized, with DMA0IFG being the highest, and combined to source a single
interrupt vector. The highest-priority enabled interrupt generates a number in the DMAIV register. This
number can be evaluated or added to the program counter (PC) to automatically enter the appropriate
software routine. Disabled DMA interrupts do not affect the DMAIV value.