UM10360 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2013. All rights reserved.
User manual Rev. 3 — 19 December 2013  611 of 841
NXP Semiconductors
UM10360
Chapter 31: LPC176x/5x General Purpose DMA (GPDMA)
7. When the destination DMA request goes active and there is data in the DMA 
Controller FIFO, transfer data into the destination peripheral.
8. If an error occurs while transferring the data, an error interrupt is generated, the DMA 
stream is disabled, and the flow sequence ends.
9. If the transfer has completed it is indicated by the transfer count reaching 0. The 
following happens:
– The DMA Controller responds with a DMA acknowledge to the destination 
peripheral.
– The terminal count interrupt is generated (this interrupt can be masked).
– If the DMACCxLLI Register is not 0, then reload the DMACCxSrcAddr, 
DMACCxDestAddr, DMACCxLLI, and DMACCxControl Registers and go to back 
to step 2. However, if DMACCxLLI is 0, the DMA stream is disabled and the flow 
sequence ends.
31.6.2.3 Memory-to-memory DMA flow
For a memory-to-memory DMA flow the following sequence occurs:
1. Program and enable the DMA channel.
2. Transfer data whenever the DMA channel has the highest pending priority and the 
DMA Controller gains mastership of the AHB bus.
3. If an error occurs while transferring the data, generate an error interrupt and disable 
the DMA stream.
4. Decrement the transfer count.
5. If the count has reached zero:
– Generate a terminal count interrupt (the interrupt can be masked).
– If the DMACCxLLI Register is not 0, then reload the DMACCxSrcAddr, 
DMACCxDestAddr, DMACCxLLI, and DMACCxControl Registers and go to back 
to step 2. However, if DMACCxLLI is 0, the DMA stream is disabled and the flow 
sequence ends.
Note: Memory-to-memory transfers should be programmed with a low channel priority, 
otherwise other DMA channels cannot access the bus until the memory-to-memory 
transfer has finished, or other AHB masters cannot perform any transaction.
31.6.3 Interrupt requests
Interrupt requests can be generated when an AHB error is encountered or at the end of a 
transfer (terminal count), after all the data corresponding to the current LLI has been 
transferred to the destination. The interrupts can be masked by programming bits in the 
relevant DMACCxControl and DMACCxConfig Channel Registers. The interrupt requests 
from all DMA channels can be found in the DMACRawIntTCStat and DMACRawIntErrStat 
registers. The masked versions of the DMA interrupt data is contained in the 
DMACIntTCStat and DMACIntErrStat registers. The DMACIntStat register then combines 
the DMACIntTCStat and DMACIntErrStat requests into a single register to enable the 
source of an interrupt to be found quickly. Writing to the DMACIntTCClear or the 
DMACIntErrClr Registers with a bit set to 1 enables selective clearing of interrupts.