
DMA Split Mode
11-20
11.5 DMA Split Mode
The DMA split mode (see Figure 11–7) allows one DMA channel to be used
for both reading and writing data to a communications port. Split mode essen-
tially transforms one DMA channel into two DMA channels:
Primary Channel:
dedicated to reading data from a location in the
memory map (external/internal) and writing it to a communication port out-
put FIFO.
Auxiliary Channel:
dedicated to receiving data from a communication
port input FIFO and writing it to a location in the memory map.
To select split mode, set the SPLIT MODE bit (bit 14 of the DMA channel con-
trol register, Figure 11–2) to one.
All six DMA channels support this split mode to accommodate all of the com-
munication ports. The COM PORT field (bits 15–17 as shown in Figure 11–2)
of the DMA channel control register defines which communication port is used
(port 0–5
)
. A DMA channel in split mode can be used with any communication
port; however, read/write synchronization is restricted to signals from the com-
munication port with the same number as the DMA channel being used; in oth-
er words, DMAican synchronize only with signals coming from communication
port i (see Section 11.10, DMA and Interrupts for more information).
Figure 11–7 shows typical split mode operation with one communication port.
A split mode word transfer is similar to that of the unified mode except for the
following differences:
The primary channel reads a word from the address pointed to by the
source address register and writes it to a temporary register within the
DMA coprocessor. It then writes the temporary register value to the output
FIFO on the communication port specified in the COM PORT field. The
registers that control the primary channel are the DMA channel control
register, source address register, source index register (added to source
address register), transfer-counter register, and link pointer register.
The auxiliary channel reads a word from the input FIFO on the commu-
nication port specified in the COM PORT field and writes it to a temporary
register within the DMA coprocessor. It then writes the temporary register
value in the address pointed to by the destination address register. The
registers that control the auxiliary channel are the DMA channel control
register, destination address register, destination index register (added to
the destination address register), auxiliary transfer-counter register, and
auxiliary link pointer register.