Module Operation
557
SPNU503C – March 2018
Copyright © 2018, Texas Instruments Incorporated
Direct Memory Access Controller (DMA) Module
16.2.10 Debugging
The DMA supports four different behaviors in suspend mode. These behaviors can be configured by the
user as per the application requirement.
•
Immediate stop at a DMA channel arbitration boundary. Please refer to
and
for
arbitration boundary definition.
•
Finish current frame transfer and continue after suspend ends.
•
Finish current block transfer and continue after suspend ends.
•
Ignore the suspend. The DMA continues to be operational as in functional mode when debug mode is
active.
When the DMA controller enters suspend mode, it continues to sample incoming hardware DMA requests,
but the Channel Pending Register (
) is frozen from being updated. After the suspend
ends, all new requests that were received during suspend mode are reflected in the Channel Pending
Register (
Except when the DMA controller is configured to ignore suspend mode, no channel arbitration is
performed during suspend mode. The current channel under which suspend mode was entered will finish
its entire frame or block-transfer after suspend mode ends, depending how the debug option was chosen.
To facilitate debugging, a Watch Point Register (
) and a Watch Mask Register
(
) are used. The watch point register together with the watch mask register can be
configured to watch for a unique address or a range of addresses. When the condition to watch is true, the
DMA freezes its state and generates a debug request signal to the host CPU so the state of the DMA can
be examined.
16.2.11 Power Management
The DMA offers two power-management modes: run and sleep. In run mode, the DMA is fully operational.
The sleep mode shuts down the DMA if no pending channels are waiting to be serviced. If a DMA request
is received or a software request is generated by the user software, then the DMA wakes up immediately.
The sleep mode may be used to optimize the DMA module power consumption.
When the system module issues a global low power mode request, the DMA will respond to the system
module with an acknowledge if no DMA requests are pending.
NOTE:
When the DMA is in global low power mode, the clock is stopped and therefore it cannot
detect any DMA request. The device must be woken up before a peripheral can generate a
DMA request.
16.2.12 FIFO Buffer
DMA FIFO is 4 levels deep and 64-bit wide (can hold up to 4 x 64-bits of data). They are used for Data
packing and unpacking.
The DMA FIFO has two states:
•
EMPTY : The FIFO contains no data.
•
FULL : The FIFO is filled or the element count has reached zero; the read operation has to be stopped.
DMA channels can only be switched when the FIFO is empty. This also implies that arbitration between
channels is done when the FIFO is empty.
The FIFO buffer may be bypassed through the use of the bypass feature in the port control register; see
Port Control Register (
) for register details. Writing 1 to this bit limits the FIFO depth to
the size of one element. That means if the read element size is equal to or larger than the write element
size, after one element is read the write out to the destination starts. Otherwise, the write out to the
destination starts after enough reads have completed to do one write of the write element size. This
feature is particularly useful to minimize switching latency in-between channels. When bypass mode is
enabled, the DMA performs minimal bus cycles on AHB bus. In addition, the bypass feature allows
arbitration between channels that can be carried out at a source element granularity.