Communication Processor Module
MOTOROLA
MPC823 USER’S MANUAL
16-91
IDMA
COMMUNICATION
16
PROCESSOR
MODULE
16.6.1 Features
The following is a list of the MPC823 IDMA’s main features:
Two independent, fully programmable DMA channels
Dual address or single address transfers with 32-bit address and data capability
32-bit byte transfer counters
32-bit address pointers that can increment or remain constant
Efficient operand packing and unpacking for dual address transfers
All bus-termination modes are supported
Provides DMA handshake for cycle steal and burst transfers
Buffer handling modes (auto buffer and buffer chaining)
16.6.2 IDMA Interface Signals
The MPC823 IDMA has two dedicated control signals per channel—DMA request and DMA
acknowledge. IDMA accepts DMA requests from the DREQ1 and DREQ2 signals and
acknowledges the request with the SDACK1 and SDACK2 signals. The peripheral used with
these signals can either be a source or destination of the IDMA transfers. The DREQx
signals are also used for memory-to-memory request generation and, in this case, should
be connected to the timer that controls the transfer.
16.6.2.1 DREQx AND SDACKx. These are the handshake signals between the MPC823
and the peripheral that needs to be serviced. When the peripheral asks for IDMA service, it
asserts DREQx and the MPC823 begins the IDMA process. While the service is in progress,
SDACKx is asserted during accesses to the device. DREQx can be configured to be either
edge or level sensitive by programming the DRxM field in the RCCR. The DRQP field in the
RCCR control IDMA channel priority in relation to the serial channels. To enable the DREQx
signals, the corresponding DREQx bit in the PCSO register should be set. When the DREQx
signals are configured as edge-sensitive requests, the edge on which a request is generated
16.6.3 IDMA Operation
Every IDMA operation involves the following series of events—IDMA channel initialization,
data transfer, and block termination. In the initialization phase, the core loads the
IDMA-specific parameter RAM with control information, initializes the IDMA buffer
descriptors, and starts the channel. In the transfer phase, IDMA accepts requests for
operand transfers and provides addressing and bus control for the transfers. The
termination phase occurs when the operation is complete and IDMA interrupts the core if
interrupts are enabled. To initialize a block transfer operation, you must initialize the IDMA
registers. The IDMA buffer descriptors must be initialized with information describing the