3 dma operations, 1 memory-to-memory channels, 3 dma operations -3 – Cirrus Logic EP93xx User Manual

Page 397: 1 memory-to-memory channels -3

Advertising
background image

DS785UM1

10-3

Copyright 2007 Cirrus Logic

DMA Controller

EP93xx User’s Guide

1

0

1

0

10

The DMA controller memory-to-memory channels can also be used in “Memory to External
Peripheral” mode with handshaking protocol. A set of external handshake signals DREQ,
DACK and TC/DEOT are provided for each of 2 M2M channels.

DREQ (input) can be programmed edge or level active, and active high or low. The

peripheral may hold DREQ active for the duration of the block transfers or may
assert/deassert on each transfer.

DACK (output) can be programmed active high or low. DACK will cycle with each read

or write, the timing is to coincide with the nOE or nWE of the EBI.

TC/DEOT is a bidirectional signal, the direction and the active sense is programmable.

When configured as an output, the DMA will assert TC (Terminal Count) on the final
transfer to coincide with the DACK, typically when the byte count has expired. When
configured as an input, the peripheral must assert DEOT concurrent with DREQ for the
final transfer in the block.

Transfer is completed either on DEOT being asserted by the external peripheral or the byte
count expiring. Status bits will indicate if the actual byte count is equal to the programmed
limit, and also if the count was terminated by peripheral asserting DEOT. Completion of
transfer will cause a DMA interrupt on that channel and rollover to the “other” buffer
descriptor if configured.

For byte or word wide peripherals, the DMA will be programmed to request byte or word wide
AHB transfers respectively. The DMA will not issue an AHB HREQ for a transfer until it has
sampled DREQ asserted after DACK of the previous transfer has been asserted for the
duration of the programmed wait states in the SMC (and possibly DREQ is sampled in the
cycle DACK is deasserted).

10.1.3 DMA Operations

The operation of the DMA controller can be defined in terms of channel functionality. Two
types of channels exist:

Memory-to-Memory (M2M) channel

Memory-to/from-Internal-Peripheral (M2P/P2M) channel.

10.1.3.1 Memory-to-Memory Channels

The two M2M channels support data transfers between:

Memory locations which may be located in any accessible system memory banks.

These memory to memory moves can be initiated by software, in which case the

transfer will begin as soon as the channel is configured and enabled for memory to
memory move. For this transfer type, the DMA first fills the internal 16-byte data bay by
initiating read accesses on the source bus. It then empties the data from the data bay to
the destination bus by initiating write accesses.

Memory locations related to IDE or SSP.

Advertising