Setting The Relative Priority Of A Channel - Intel 80C188EC User Manual

Hide thumbs Also See for 80C188EC:
Table of Contents

Advertisement

DIRECT MEMORY ACCESS UNIT
10.2.1.8

Setting the Relative Priority of a Channel

The priority of a channel within a module is controlled by the Priority bit in the DMA Control
Register (Figure 10-13 on page 10-20). A channel may be assigned either high or low priority. If
both channels are programmed to the same priority (i.e., both high or both low), the channels ro-
tate priority.
10.2.2 Setting the Inter-Module Priority
The inter-module priority for the DMA Unit is controlled by the DMAPA and DMAPB bits in
the DMA Module Priority Register (Figure 10-14 on page 10-24). A module may be assigned ei-
ther high or low priority. When both modules are assigned the same priority, the modules rotate
priority.
10.2.3 Using the DMA Unit with the Serial Ports
The following setup is used for DMA-serviced serial port reception.
The source pointer points at the receive buffer (SxRBUF) in the serial port.
The destination pointer points to the area in memory where the message will be saved.
The DMA channel is programmed for serial channel requests.
The transfer count register holds the length of the memory buffer.
The serial port DMA request pulses high after each byte is received. The DMA unit then fetches
the received byte from the receive buffer (SxRBUF) register and deposits it in memory. Typical-
ly, the channel is programmed to interrupt the CPU when the memory buffer is full (i.e., when
the transfer count reaches zero).
The following setup is used for DMA-serviced serial port transmission.
The source pointer points to the area of memory where the message resides.
The destination pointer points to the transmit buffer (SxTBUF) for the serial channel.
The DMA channel is programmed for serial channel requests.
The transfer count register holds the length of the memory buffer.
The serial port DMA request pulses high after each byte is transmitted. The DMA unit then fetch-
es the next byte of the message from memory and deposits it in the transmit buffer (initiating an-
other transfer). Typically, the channel is programmed to interrupt the CPU when the memory
buffer is empty (i.e., when the transfer count reaches zero).
DMA-driven transmissions must be "primed" by sending the first byte manually, thus generating
the first transmit interrupt.
10-26

Advertisement

Table of Contents
loading

This manual is also suitable for:

80c186ec

Table of Contents