DIRECT MEMORY ACCESS UNIT

Both Requests Asserted

Channel

0

1

 

 

 

 

 

Priority

Low

Low

 

Channel 1

Channel 0

Channel 1

Channel 0

Synch

SRC

SRC

 

 

 

 

 

Etc.

Channel

0

1

 

 

 

 

 

 

 

 

 

 

Priority

High

Low

 

Channel 0

Channel 0

 

 

 

Channel 1

Channel 1

Synch

SRC

SRC

 

 

 

 

 

 

 

Channel 0 Completes

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

All Transfers

Channel

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Priority

High

Low

 

Channel 0

 

Channel 1

 

Channel 0

 

Channel 1

Synch

Dest

SRC

 

 

 

Destination Synch Releases Bus

 

 

 

 

 

 

Etc.

Etc.

A1190-0A

Figure 10-6. Examples of DMA Priority

10.1.10.1.2Rotating Priority

Channel priority rotates when the channels are programmed as both high or both low priority. The highest priority is initially assigned to channel 1 of the module. After a channel performs a trans- fer, it is assigned the lower priority. When requests are active for both channels, the transfers al- ternate between the two. Channel 1 is reassigned high priority whenever the bus is released (that is, at the end of a destination-synchronized transfer or when DMA requests are no longer active).

10.2 PROGRAMMING THE DMA UNIT

A total of six Peripheral Control Block registers configure each DMA channel.

10.2.1 DMA Channel Parameters

The first step in programming the DMA Unit is to set up the parameters for each channel.

10.2.1.1Programming the Source and Destination Pointers

The following parameters are programmable for the source and destination pointers:

pointer address

address space (memory or I/O)

automatic pointer indexing (increment, decrement or no change) after transfer

10-10

Page 265
Image 265
Intel 80C186XL, 80C188XL user manual Src, Programming the DMA Unit, DMA Channel Parameters