9.2.7
Transfer Size and Increment
The μDMA controller supports transfer data sizes of 8, 16, or 32 bits. The source and destination
data size must be the same for any given transfer. The source and destination address can be
auto-incremented by bytes, half-words, or words, or can be set to no increment. The source and
destination address increment values can be set independently, and it is not necessary for the
address increment to match the data size as long as the increment is the same or larger than the
data size. For example, it is possible to perform a transfer using 8-bit data size, but using an address
increment of full words (4 bytes). The data to be transferred must be aligned in memory according
to the data size (8, 16, or 32 bits).
Table 9-5 shows the configuration to read from a peripheral that supplies 8-bit data.
Table 9-5. μDMA Read Example: 8-Bit Peripheral
Configuration
Field
8 bits
Source data size
8 bits
Destination data size
No increment
Source address increment
Byte
Destination address increment
Peripheral read FIFO register
Source end pointer
End of the data buffer in memory
Destination end pointer
9.2.8
Peripheral Interface
There are three main classes of uDMA-connected peripherals:
■ Peripherals with FIFOs serviced by the uDMA to transmit or receive data.
■ Peripherals that provide trigger inputs to the uDMA
9.2.8.1
FIFO Peripherals
FIFO peripherals contain a FIFO of data to be sent and a FIFO of data that has been received. The
uDMA controller is used to transfer data between these FIFOs and system memory. For example,
when a UART FIFO contains one or more entries, a single transfer request is sent to the uDMA for
processing. If this request has not been processed and the UART FIFO reaches the interrupt FIFO
level set in the
UART Interrupt FIFO Level Select (UARTIFLS)
register, another interrupt is sent
to the uDMA which is higher priority than the single-transfer request. In this instance, an
ARBSIZ
transfer is performed as configured in the
DMACHCTL
register. After the transfer is complete, the
DMA sends a receive or transmit complete interrupt to the
UART Raw Interrupt Status (UARTRIS)
register.
If the FIFO peripheral's
SETn
bit is set in the
DMA Channel Useburst Set (DMAUSEBURSTSET)
register, then the uDMA will only perform transfers defined by the
ARBSIZ
bit field in the
DMACHCTL
register for better bus utilization. For peripherals that tend to transmit and receive in bursts, such
as the UART, we recommend against the use of this configuration since it could cause the tail end
of transmissions to stick in the FIFO.
9.2.8.2
Trigger Peripherals
Certain peripherals, such as the general purpose timer, trigger an interrupt to the uDMA controller
when a programmed event occurs. When a trigger event occurs, the uDMA executes a transfer
defined by the
ARBSIZ
bit field in the
DMACHCTL
register. If only a single transfer is needed for a
uDMA trigger, then the
ARBSIZ
field is set to 0x1.
693
June 18, 2014
Texas Instruments-Production Data
Tiva
™
TM4C1294NCPDT Microcontroller