EasyManua.ls Logo

NXP Semiconductors MPC5606S - Features

NXP Semiconductors MPC5606S
1344 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Enhanced Direct Memory Access (eDMA)
MPC5606S Microcontroller Reference Manual, Rev. 7
Freescale Semiconductor 471
Throughout this document, n is used to reference the channel number. Additionally, data sizes are defined
as byte (8-bit), halfword (16-bit), word (32-bit) and doubleword (64-bit).
15.2.2 Features
The DMA module supports the following features:
All data movement via dual-address transfers: read from source, write to destination
Programmable source, destination addresses, transfer size, plus support for enhanced
addressing modes
Transfer control descriptor organized to support two-deep, nested transfer operations
—An inner data transfer loop defined by a “minor” byte transfer count
—An outer data transfer loop defined by a “major” iteration count
Channel service request via one of three methods:
Explicit software initiation
Initiation via a channel-to-channel linking mechanism for continuous transfers
– Independent channel linking at end of minor loop and/or major loop
Peripheral-paced hardware requests (one per channel)
For all three methods, one service request per execution of the minor loop is required
Support for fixed-priority and round-robin channel arbitration
Channel completion reported via optional interrupt requests
One interrupt per channel, optionally asserted at completion of major iteration count
Error terminations are optionally enabled per channel, and logically summed together to form
a small number of error interrupt outputs
Support for scatter/gather DMA processing
Support for complex data structures
Support to cancel transfers via software or hardware
The structure of the transfer control descriptor is fundamental to the operation of the DMA module. It is
defined below in a ‘C’ pseudo-code specification, where int refers to a 32-bit variable (unless noted
otherwise) and short is a 16-bit variable.
NOTE
To compile these structures, change any periods '.' in the variable name to
underscores '_'.
typedef union {
struct { /* citer.e_link = 1 */
unsigned short citer.linkch:6; /* link channel number, */
unsigned short citer:9; /* current (“major”) iteration count */
} minor_link_enabled; /* channel link at end of the minor loop */
struct { /* citer.e_link = 0 */
unsigned short citer:15; /* current (“major”) iteration count */
} minor_link_disabled; /* no linking at end of the minor loop */
} t_minor_link_citer;

Table of Contents

Related product manuals