Cirrus Logic EP93xx User Manual
Page 402

10-8
DS785UM1
Copyright 2007 Cirrus Logic
DMA Controller
EP93xx User’s Guide
1
0
1
0
10
CE:
Channel (Peripheral) Error
ICE:
CONTROL[6] - Ignore Channel Error. This bit may be set
for data streams whereby the end user can tolerate
occasional bit errors. If it is not set then the DMA will abort
its transfer in receipt of a peripheral error.
ABORT:
CONTROL[5]
10.1.9.1.1 DMA_IDLE
The DMA Channel FSM always resets to the DMA_IDLE state.
The DMA Channel FSM always enters the DMA_IDLE state when the channel is disabled
(CONTROL[4]).
10.1.9.1.2 DMA_STALL
The DMA Channel FSM enters the DMA_STALL state when the channel enabled, no STALL
interrupt is generated for this condition.
The DMA Channel FSM enters the DMA_STALL state if a memory buffer completes in the
ON state. A DMA_STALL interrupt is generated for this condition.
The DMA Channel FSM enters the DMA_STALL state and terminates the current memory
buffer if there is a peripheral error (TxEnd/RxEnd indication) while in the DMA_ON state, and
ICE is not active.
The DMA Channel FSM enters the DMA_STALL state and terminates the current memory
buffer if there is a peripheral error (TxEnd/RxEnd indication) while in the DMA_NEXT state,
and ABORT is active, and ICE inactive. No STALL interrupt is generated for this condition.
No data transfers occur in this state.
10.1.9.1.3 DMA_ON
The DMA Channel FSM enters this state when a base address is written in the stall state.
Data transfers occur in this state.
The DMA Channel FSM enters this state when the current memory buffer expires, or when a
peripheral error occurs that does not cause an abort, while in the DMA_NEXT state. The
transition from DMA_NEXT to DMA_ON state results in a NFB interrupt being generated.
10.1.9.1.4 DMA_NEXT
The DMA Channel FSM enters this state when a base address register is written in the
DMA_ON state (that is, for buffer Y). The DMA will continue to transfer using the buffer (that
is, buffer X) that it began with in the DMA_ON state. When buffer X expires or when a
peripheral error occurs, then the DMA will automatically switch over to using the next buffer
(buffer Y). It will generate an interrupt (NFBint) to signal to the processor that it is switching
over to a new buffer and that the old buffer descriptor (buffer X) is available to be updated.
Data transfers occur in this state.