UM10850
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2016. All rights reserved.
User manual
Rev. 2.4 — 13 September 2016
147 of 464
NXP Semiconductors
UM10850
Chapter 12: LPC5410x DMA controller
can range from a single transfer to many transfers. A transfer that is started by a trigger
can still be paced using the channel’s DMA request. This allows sending a string to a
serial peripheral, for instance, without overrunning the peripheral’s transmit buffer.
Each DMA channel has an output that can be used as a trigger input to another channel.
The trigger outputs appear in the trigger source list for each channel and can be selected
through the DMA_INMUX registers as inputs to other channels.
12.5.2 DMA Modes
The DMA controller doesn’t really have separate operating modes, but there are ways of
using the DMA controller that have commonly used terminology in the industry.
Once the DMA controller is set up for operation, using any specific DMA channel requires
initializing the registers associated with that channel (see
), and supplying at
least the channel descriptor, which is located somewhere in memory, typically in on-chip
SRAM (see
). The channel descriptor is shown in
The source and destination end addresses, as well as the link to the next descriptor are
just memory addresses that can point to any valid address on the device. The starting
address for both source and destination data is the
specified end address minus the transfer
length (XFERCOUNT * the address increment as defined by SRCINC and DSTINC).
The link to
the next descriptor is used only if it is a linked transfer.
After the channel has had a sufficient number of DMA requests and/or triggers, depending
on its configuration, the initial descriptor will be exhausted. At that point, if the transfer
configuration directs it, the channel descriptor will be reloaded with data from memory
pointed to by the “Link to next descriptor” entry of the initial channel descriptor.
Descriptors loaded in this manner look slightly different the channel descriptor, as shown
in
. The difference is that a new transfer configuration is specified in the reload
descriptor instead of being written to the XFERCFG register for that channel.
This process repeats as each descriptor is exhausted as long as reload is selected in the
transfer configuration for each new descriptor.
Table 177: Channel descriptor
Offset
Description
+ 0x0
Reserved
+ 0x4
Source data end address
+ 0x8
Destination end address
+ 0xC
Link to next descriptor
Table 178: Reload descriptors
Offset
Description
+ 0x0
Transfer configuration.
+ 0x4
Source end address. This points to the address of the last entry of the source address range if the address is
incremented. The address to be used in the transfer is calculated from the end address, data width, and transfer
size.
+ 0x8
Destination end address. This points to the address of the last entry of the destination address range if the address
is incremented. The address to be used in the transfer is calculated from the end address, data width, and transfer
size.
+ 0xC
Link to next descriptor. If used, this address must be aligned to a multiple of 16 bytes (i.e., the size of a descriptor).