+ All Categories
Home > Documents > MC68000 DMA USINGTHE MC6844 DMA...

MC68000 DMA USINGTHE MC6844 DMA...

Date post: 17-Aug-2020
Category:
Upload: others
View: 21 times
Download: 0 times
Share this document with a friend
8
MOTOROLA Semiconductor Products Inc. AN·824A Application Note MC68000 DMA USING THE MC6844 DMA CONTROLLER The MC6844 DMA Controller (DMAC) can be interfaced to the MC68000 microprocessor to provide flexible, low- cost, relatively high performance DMA control in an MC68000-based system. In designing such a system, three interface requirements must be considered: I. The DMAC should operate at maximum frequency for efficient datatransfer. High performance systems may require the use of the two megahertz device (MC68B44), so the system must allow the MC68000 to accessthe DMAC asynchronously. 2. Handshake logic must be implemented to arbitrate control ofthe system bus between the MC68000, the DMA control system,and other possible bus masters. 3. The MC6844 is an 8-bitdevice intended for use in M6800 systems, capable of direct memory access through only a 64K memory space, and also lacks certain bus strobes necessary for simple implementa- tion in an MC68000-based system. A bus interface must be designed to allow direct memory access throughout the entire 16 megabyte MC68000 memory map and to provide the required busstrobes needed for successful use in an MC68000-based system. This application note describes designs to meet each of these requirements. These designs are then combined to form a direct memory access control system for the MC68000. An implementation of the complete system is presented in block diagram form using an MC6854 Ad- vanced Data Link Controller (ADLC) and a static memory buffer. MC6844 AS\: NCHRONOUS INTERFACE OPERATION The MC6844 can be interfaced asynchronously to the MC68000 using the circuitry presented in Figure I. This circuit aHow~ the MC68000 to access a DMAC driven by an E clock that is either synchronous or asynchronous to the MC68000 clock. It generates DMAC chip select at the proper time to satisfy DMAC timing requirements, latches data to satisfy datahold time requirements, and asserts data transfer acknowledge at the proper time to ensure valid data transfer between devices. This circuit can be used to interface other MC6800 peripherals, and is used to interface to the ADLC as well as the DMAC in the system implementation presented at the end of this application note. CIRCUIT OPERATION - When the MC68000 per- forms a read or write bus cycle (access), the processor asserts one or both of the two data strobes (DS), an address strobe (AS), the read/write (R/W) signal, and an address. The processor also outputs data during write cycles. The MC68000 remains in this state until the bus cycle is terminated. Data transfer acknowledge (DTACK) is asserted by the peripheral or memory device being accessed to initiate termination of the bus cycle by the MC68000. The circuit in Figure I synchronizes MC68000 accesses to the DMAC with the E clock. Initially, flip-flops VIA and V IB are cleared causing a high DTACK output setting V2 and V3 into a transparent mode. Latch V2 isin the high- impedance state due to a high on the output enable (OE) input. Latch V3 is enabled due to a low on the OE input. At the start of a DMAC access, latch V3 remains enabled if the access is a write. If the access is a read, the high R/W and DMAC Select inputs to V4A cause U3 to go to the high- impedance state and U2 to become enabled. The DMAC Select signal is asserted when the DMAC is addressed. However, the DMAC is actuallyselected by the assertion of CS (DMAC). Flip-flop VIA isclocked high on the first fall- ing edge of E after DMAC Select and data strobe (DS) are asserted. The Q output of VIA is applied to V4D,asserting CS (DMAC). Selecting the DMAC at this time ensures that the DMAC has adequate address setup time. On the next falling edge of E, the Q output of V I B is clocked low asserting DTACK and latching data into the enabled latch. The asserted DTACK signal, inverted by V4D, deselects the DMAC by causing CS (DMAC) to go high. When the access terminates, flip-flop UI is cleared by the negation of DS, and the interface circuitry is initialized for the next access. The DTACK signal is buffered by an open-collector buffer (US) to allow assertion of DTACK by other devices when the DMAC is not being accessed.
Transcript
Page 1: MC68000 DMA USINGTHE MC6844 DMA CONTROLLERarchive.retro.co.za/...824AMC68000DMAUsingTheMC6844DMAContr… · DMA control system, and other possible bus masters. 3. The MC6844 is an

MOTOROLASemiconductor Products Inc.

AN·824AApplication Note

MC68000 DMAUSING THE MC6844 DMA CONTROLLER

The MC6844 DMA Controller (DMAC) can be interfacedto the MC68000 microprocessor to provide flexible, low-cost, relatively high performance DMA control in anMC68000-based system. In designing such a system, threeinterface requirements must be considered:

I. The DMAC should operate at maximum frequency forefficient data transfer. High performance systems mayrequire the use of the two megahertz device(MC68B44), so the system must allow the MC68000 toaccess the DMAC asynchronously.

2. Handshake logic must be implemented to arbitratecontrol of the system bus between the MC68000, theDMA control system, and other possible bus masters.

3. The MC6844 is an 8-bit device intended for use inM6800 systems, capable of direct memory accessthrough only a 64K memory space, and also lackscertain bus strobes necessary for simple implementa-tion in an MC68000-based system. A bus interfacemust be designed to allow direct memory accessthroughout the entire 16 megabyte MC68000 memorymap and to provide the required bus strobes neededfor successful use in an MC68000-based system.

This application note describes designs to meet each ofthese requirements. These designs are then combined toform a direct memory access control system for theMC68000. An implementation of the complete system ispresented in block diagram form using an MC6854 Ad-vanced Data Link Controller (ADLC) and a static memorybuffer.

MC6844 AS\: NCHRONOUS INTERFACE OPERATIONThe MC6844 can be interfaced asynchronously to the

MC68000 using the circuitry presented in Figure I. Thiscircuit aHow~ the MC68000 to access a DMAC driven by anE clock that is either synchronous or asynchronous to theMC68000 clock. It generates DMAC chip select at the propertime to satisfy DMAC timing requirements, latches data tosatisfy data hold time requirements, and asserts data transferacknowledge at the proper time to ensure valid data transfer

between devices. This circuit can be used to interface otherMC6800 peripherals, and is used to interface to the ADLC aswell as the DMAC in the system implementation presented atthe end of this application note.

CIRCUIT OPERATION - When the MC68000 per-forms a read or write bus cycle (access), the processor assertsone or both of the two data strobes (DS), an address strobe(AS), the read/write (R/W) signal, and an address. Theprocessor also outputs data during write cycles.

The MC68000 remains in this state until the bus cycle isterminated. Data transfer acknowledge (DTACK) is assertedby the peripheral or memory device being accessed to initiatetermination of the bus cycle by the MC68000.

The circuit in Figure I synchronizes MC68000 accesses tothe DMAC with the E clock. Initially, flip-flops VIA andV IB are cleared causing a high DTACK output setting V2and V3 into a transparent mode. Latch V2 is in the high-impedance state due to a high on the output enable (OE)input. Latch V3 is enabled due to a low on the OE input.

At the start of a DMAC access, latch V3 remains enabledif the access is a write. If the access is a read, the high R/Wand DMAC Select inputs to V4A cause U3 to go to the high-impedance state and U2 to become enabled. The DMACSelect signal is asserted when the DMAC is addressed.However, the DMAC is actually selected by the assertion ofCS (DMAC). Flip-flop VIA is clocked high on the first fall-ing edge of E after DMAC Select and data strobe (DS) areasserted. The Q output of VIA is applied to V4D, assertingCS (DMAC). Selecting the DMAC at this time ensures thatthe DMAC has adequate address setup time.

On the next falling edge of E, the Q output of V IB isclocked low asserting DTACK and latching data into theenabled latch. The asserted DTACK signal, inverted byV4D, deselects the DMAC by causing CS (DMAC) to gohigh. When the access terminates, flip-flop U I is cleared bythe negation of DS, and the interface circuitry is initializedfor the next access. The DTACK signal is buffered by anopen-collector buffer (US) to allow assertion of DTACK byother devices when the DMAC is not being accessed.

Page 2: MC68000 DMA USINGTHE MC6844 DMA CONTROLLERarchive.retro.co.za/...824AMC68000DMAUsingTheMC6844DMAContr… · DMA control system, and other possible bus masters. 3. The MC6844 is an

U3

07 07

06 06

05 05

us C04 04

03 03

02 02

01 01

'" DO 00OE LE

SN74LS373

U2

07 07

06 064LSOO 05 05

04 04

03 03

02 02

01 01

00 DOS~OO N LE

_ _ VCC_1 }-R/W==:J '- U4BU4A _____

elect SN7407

OTACK .U5

SN74LSOO

VCC VCC ~SN74LS112 f SN74LS112 r

S • OMAC Select J So Q J So Q NC

U1A U1B

E CP ,......---(l CP

~K Q NC~

Ko______

CD CD OTACK

SN74LSOO Y T- 1:=J U4C '-'Open Call

.....--Tos

MC68000Data B

OSVCC

MC6844Data Bus

BUS ARBITRATION INTERFACE

The MC6844 is an 8-bit, 4-channel DMA Controller capa-ble of performing direct memory transfers of a user definednumber of data bytes (data block) within a 64K byte memoryspace. Associated with each channel of the controller are:

• A transfer request (TxRQ) input which is asserted by aperipheral controller or a processor to request DMAservice.

• A 16-bit address register which is initialized with thebeginning address of the data block to be transferred.

• A 16-bit byte count register which is initialized with thedesired number of data bytes (size of the data block) tobe transferred.

Each channel can perform DMA transfers in one of threemodes: TSC Steal, Halt Steal, and Halt Burst. Two of thesemodes, TSC Steal and Halt Steal, are single-byte transfermodes in which the DMAC returns control of the system busto the processor after each transfer, while the Halt Burst

mode is a block transfer mode in which the DMAC retainscontrol of the system bus until the last byte of the data blockhas been transferred.

The bus arbitration circuit presented in Figure 2 is de-signed for the Halt Steal and Halt Burst modes of operation.The TSC Steal mode is intended for use with the MC6800and offers no advantage over the Halt Steal mode inMC68000 applications.

In the Halt Steal mode the DMAC responds to a transferrequest by asserting DMA request halt steal (DRQH). TheDMAC then waits until DMA grant (DGRNT), a DMACinput, is asserted. At this time, one transfer of data isinitiated and transfer strobe (TxSTB) is asserted, followedby the negation of DRQH. This sequence is repeated until alldata has been transferred.

The same sequence is followed in the Halt Burst modewith the exception that DRQH is negated only after the lastbyte of the data block has been transferred. In this mode,bus mastership is arbitrated once, then data transfers occurin succession until all data has been transferred.

Page 3: MC68000 DMA USINGTHE MC6844 DMA CONTROLLERarchive.retro.co.za/...824AMC68000DMAUsingTheMC6844DMAContr… · DMA control system, and other possible bus masters. 3. The MC6844 is an

5VMC68000 MC6844

U5 SN74LS32 U7SN74LS04

BR 6B DRQH TxRQ

5 V 5V

SN74LSl38

'IT U4 SN74LS04BG

AS E3 U6

DTACK AO

BGACK A1

A2 SN74LSOO03

DGRNT

5VSN74LSOO

SN74LSOOTxSTB

*Open Collector Output

Note: 10 kn Pullup Resistors

CIRCUIT OPERATION - For either a Halt Steal orHalt Burst DMA transfer by the control systems presented inthis application note, three conditions must be met:

1. Transfer request (TxRQ) must be asserted.2. DRQH must be asserted.3. All bus masters must have relinquished the bus to

ensure that DMA grant (DGRNT) is asserted.Initially DGRNT is low, bus grant acknowledge

(BGACK) is not asserted by the interface, and TxSTB ishigh. The DMAC responds to a transfer request by assertingDRQH. Once DRQH is asserted, it remains asserted untilthe DMAC performs a byte transfer in the Halt Steal modeor until the last byte of a designated memory block is trans-ferred in the Halt Burst mode.

Transfer request (TxRQ) is coupled through UI and U2 sothat MC68000 bus request (BR) is asserted when TxRQ isasserted. By requesting a DMA transfer and bus arbitrationsimultaneously (disregarding gate propagation delay), DMAlatency time is minimized. The MC68000 responds to a busrequest by asserting bus grant (BG) and relinquishing thebus.

When DRQH is asserted and all bus masters are off thesystem bus, indicated by the negation of AS, DTACK, andBGACK, flip-flop U3A-U3B is set by the assertion of the 03output of U4. The setting of flip-flop U3A-U3B assertsDGRNT to initiate DMA transfer(s), and also assertsBGACK to keep other bus masters off the bus. Bus grant

(BG) is negated by the MC68000 soon after BGACK isasserted. _

Flip-flop U3A-U3B is cleared on the rising edge of TxSTBafter it is asserted during each DMA cycle in the Halt Stealmode, and during the last cycle of a block transfer in theHalt Burst mode. Clearing flip-flop U3A-U3B negatesBGACK to release the system bus, and negates DGRNT tostop DMAC transfer activ_it~y.__

The MC68000 BR and BGACK signals are driven by opencollector gates to allow other devices to also request thesystem bus. A pullup resistor is used to hold AS in thenegated state during transitions in bus ownership.

BUS INTERFACE REQUIREMENTSA general direct memory access controller for an

MC68000-based system must allow direct memory accessthroughout the entire 16 megabyte memory map of theMC68000. In addition, it must assert the appropriate datastrobe(s) and an address strobe. The MC6844 does not sat-isfy these requirements; therefore, TTL devices must be usedto meet these needs.

The MC68000 can perform three types of data transfers:word transfers (DO-DI5), byte transfers to/from lower databytes (DO-D7), and byte transfers to/from upper data bytes(D8-DI5). When transferring a byte, the MC68000 assertseither the upper data strobe (UDS) or the lower data strobe(LDS), depending on whether an upper or a lower data byteis being transferred; and when transferring a word, it asserts

Page 4: MC68000 DMA USINGTHE MC6844 DMA CONTROLLERarchive.retro.co.za/...824AMC68000DMAUsingTheMC6844DMAContr… · DMA control system, and other possible bus masters. 3. The MC6844 is an

/ ystem Bus

SN74LS75 SN74LS367S03 7 U4 lLi U5 5 D5S /

/ S02 6 lQ..-l 3 UDS /V

SOl 3 - /.l§..E 11 LOS/ SOO 2 ~ 13 UOSV - - -E E E013,4 15 1

MC6844Ul - 2 -0CS

4 SA1/AOSA2/Al

5

A2 6 SA3/

A3 7 SM /

IRQ/.~ M 8 SA5/

DEND 36 A5 9 SA6/

ORQf-i~ A6 10 SA7/ORaT -j§- A7

11 SA8/

RESET~ A812 SA9/

SA10E ----:::.A9

13

~

14 SAll/Al0.....:. U9 34TxSTB All

15 SA12/AS 16 SA13/

" SOO 28 A1217 SA14/00

SOl 27 A1318 SA15/Dl A14r\. S02 26 SA16/02 A1519 SN74LS86S03 25

03 3 SR/W/ SR/W 1S04 24 R/W 1 f"... :1 1 _SN74LSOO 2..lJ U6

304 35

S05 23 TxAKA U7 "-' 2JU8A}>-L05 .-S06 22

06 SN74LS04 1 -OGRNTS07 21 07 T 4_

OGRNT 51u8B)o-38

SN74LS373SOO 3 U2 2 SA17SOl 4 5 SA18 /S02 7 6 SA19 /S03 8 9 SA20 /S04 13 12 SA21 /S05 14 15 SA22 /S06 17 16 SA23 /

18 ~¢ -LE OE

011 11 CHAN 0 SELECT

A SN74LS373SOO 3 U3 2 SA17 /SOl 4 5 SA18S02 7 6 SA19S03 8 9 SA20 /S04 13 12 SA21 /S05 14 15 SA22S06 17 16 SA23 /

~

19-LE OE .&) 11 CHAN 1 SELECT

R/W To PeripheralController

Page 5: MC68000 DMA USINGTHE MC6844 DMA CONTROLLERarchive.retro.co.za/...824AMC68000DMAUsingTheMC6844DMAContr… · DMA control system, and other possible bus masters. 3. The MC6844 is an

both UDS and LDS. The MC68000 asserts AS during eachtype of transfer.

The following are general designs which can be modifiedto meet individual system requirements. The two designspresented differ in the types of transfer they perform.

Only two of the four DMAC channels are used in eachdesign. However, these interfaces can be easily modified forfour-channel operation.

WORD AND NON-SEQUENTIAL BYTETRANSFER INTERFACE SYSTEM

An MC68000 DMA control system capable of wordtransfers and byte transfers to/from upper byte or lowerbyte memory locations is presented in Figure 3.

In this system, address lines AO-AI5 from the DMAC areconnected to MC68000 system address lines SAI-SA23 andas the DMAC address lines increment or decrement (accord-ing to user option), the system address is mcremented/decremented by words, rather than bytes; that is, the systemaddress changes in increments of two bytes.

The system upper address lines SAl7-SA23, are latchedinto transparent latches U2 and U3 during initialization,which' are enabled during a DMA transfer. Latch U2 is thechannel 0 upper address latch, with its chip select labeled A;latch U3 is the channel I upper address latch, with llS chipselect labeled B. During a direct memory access, transferacknowledge A (TxAKA) from the DMAC is asserted duringchannel I transfers, and negated during channel 0 transfers.This DMAC output is used to enable the proper addresslatch during a direct memory access.

The type of direct memory access transfer (word or byte)is determined by the state of latch U4 during the access.Latch U4 with its chip select labeled C, is connected tosystem data bus lines SDO-SD3 and, through three-statebuffer U5, to system data strobes LDS and UDS. Whenwriting to latch U4 during initialization, the states of SD2and SD3 determine the states of the data strobes during achannel I direct memory access, and the states of SDOandSD I determine the states of the data strobes during a channelo direct memory access. For word transfer both of the datastrobes must be asserted, while for byte transfers either theLDS or UDS is asserted, depending on whether a lower databyte (DO-D7) or an upper data byte (D8-Dl5) is being trans-ferred.

Note that in memory organized in 16-bit words, bytetransfers are to/from either the upper byte or the lower byteof memory during each DMA block transfer.

During a direct memory access the appropriate U4 latchstates are gated onto the system bus by U5. The appropriateU5 buffers are enabled by latch U2 during channel 0 access,and by latch U3 during channel I access.

When DGRNT is a"sserted, the R/W signal to the periph-eral controller is inverted by exclusive OR gate U6.

Transfer strobe (TxSTB) is fed through an open collectorbuffer to the system AS line. During a direct memory accesstransfer the AS output of the MC68000 is in the high-impedance state and TxSTB is used as the system addressstrobe. Transfer strobe is asserted by a DMAC operating at 2megahertz for at least 370 nanoseconds to indicate a validaddress during a direct memory access, and may requireconditioning for use as an address strobe during direct mem-ory access in some systems.

SEQUENTIAL MEMORY BYTETRANSFER INTERFACE SYSTEM

An MC68000 DMA control system capable of bytetransfers to/from sequential memory locations in a memoryorganized in 16-bit words is presented in Figure 4.

In this system, address lines A5-A15 from the DMAC areconnected to MC68000 system address lines SA5-SAI5. Dur-ing a direct memory access, address lines AI-A4 from theDMAC are connected to MC68000 system address lines SAI-SA4 through buffer U9. Address line AOfrom the DMAC isconnected through inverters U4 to generate the data strobes.

Only one data strobe is asserted at a time. Each time theDMAC increments/decrements, the state of UDS and LDSalternate. System address line SAI changes state only aftereach data strobe is asserted for one DMA cycle and negatedfor one DMA cycle. By doing this, data is transferredto/from consecutive byte locations in the word-dimensionedmemory map.

When the MPU has to access the DMAC, buffer U8 isenabled by CS and address lines AO-A4 are connected toMC68000 system address lines SAI-SA5.

Latches U2 and U3 latch upper system address linesSAI6-SA23 during initialization and their operation is iden-tical to the circuit presented in Figure 3.

COMPLETE SYSTEM IMPLEMENTATIONA block diagram of a complete MC68000 DMA system

using the MC6844 DMAC for controlling DMA between anMC6854 ADLC and a block of memory is presented inFigure 5. Data transfer in this system is between the ADLCand lower memory byte locations (DO-D7).

The ADLC assem receiver data service request (RDSR)each time the receiver FIFO register requires servicing, andtransmitter data service request (TDSR) each time the trans-mitter is ready for data. These outputs are tied to transferrequest channel 0 (TxRQO) and transfer request channel I(TxRQI) of the DMAC so that DMAC channel 0 services theADLC receiver, and DMAC channel I services the ADLCtransmitter.

The block labeled "MC6854 Register Select, R/W Con-trol" is used to address the ADLC transmit or receive regis-ter and to imert the read/v. rite signal during a direct mem-ory access. This circuit puts the address bus from the ADLCin the high-impedance state during the direct memory accessand forces ADLC register select zero (RSO)to a low state andregister select one (RSI) to a high state, so that during adirect memory access either the transmit FIFO register or thereceiver FIFO register is selected according to the state of theR/W signal. The circuit uses DMAC DtND to select theframe terminate register of the ADLC during the last byte ofa DMA block transfer when ~ervicing the transmitter FIFO.During a direct memory access, the ADLC is selected byassertion of TxSTB to ensure that the ADLC is selected onlyduring valid direct memory access cycles.

System memory is connected directly to the system bus.The" Memory DTACK Gen." consists of a counter drivenby the MC68000 clock. and enabled by an asserted addressstrobe when memory is accessed by the processor. Datatransfer acknowledge (DTACK) is "picked off" one of thecounter pins so that it is asserted at some preset time intervalafter memory is accessed.

Memory address decoding is the same for both direct

Page 6: MC68000 DMA USINGTHE MC6844 DMA CONTROLLERarchive.retro.co.za/...824AMC68000DMAUsingTheMC6844DMAContr… · DMA control system, and other possible bus masters. 3. The MC6844 is an

IRO/OENO

OROH

DRafRESET

E

- System Bus/

SN74LS368U4- 11UOS 12

2ep

14 ~ 13 1LOS ~

MC6844 - 15 '\E

Ul CS 1.15 SA1/AO 40S/SAl 3 E 2

Al 5 SA1/SA2 5 4 SA2/

A2 6 SA2/SA3 7 6 SA3/33 A3 7 SA3/SA4 9 U8 10 SA4/

A4 8 SA4/SA5 11 12");A5/

36 A5 9 SA5 /- 37 10 SA6 / SN74LS367A6

.•.. 39 A7 11 SA7 /40 A8 12 SA8

A 1 153~SA1/A9 13 SA9 2

~

E5~ SA2/1 34

TxSTB Al0 14 SA10 ~15 SAll / 6 7 SA3/All U9

SN7407 I'\.SOO 28DO A12 16 SA12 ~ 10 9 SA4

4SOl 27

01 A1317 SA13 / l SN74LS04

I\..S022602 A14 18 SA14 ~

I\..S032503 A15 19 SA15 / 5 SN74LS367

I\..S0424 04 R/W 3 SR/W I\. 3 SR/W 1 _ 3 R/W ToI'\.S0523

05 TxAKA35

1 "'- 21 SN74LSOO 2 ~ Peripheral

I'\.S0622 U5A -2lU6A Controller06 3 SN74LS86

'S0721 07 SN74LS04 1 - - OGRNTOGRNT T4_

1

38 "51U6B»;;-_ 6

SN74LS373

'SOD 3 U2 2 SA16 /

'SOl 4 5 SA17 /

,S02 7 6 SA18 /

,S03 8 9 SA19 /

S04 13 12 SA20 ~t\.S05 14 15 SA2l ~f\..S06 17 16 SA22 /f\..S07 18 19 SA23 /-LE OE

110 11 CHAN 0 SELECT

A SN74LS373f\..SOO 3 U3 2 SA16 /

f\..SOl 4 5 SA17 /f\..S02 7 6 SA18 /f\..S03 8 9 SA19

S0413 12 SA20 /

S0514 15 SA2l /

50617 16 5A22 ~50718 19 SA23 ~

LE -OE

0 11 CHAN 1 SELECT·Open Collector Output

Page 7: MC68000 DMA USINGTHE MC6844 DMA CONTROLLERarchive.retro.co.za/...824AMC68000DMAUsingTheMC6844DMAContr… · DMA control system, and other possible bus masters. 3. The MC6844 is an

"- "- MC6854MC6854

Tx DataSA1-SA2 Register } To SerialSelect, r Rx Data Link

R/W RSO-RSlR/Vii "-

Control -R/W I~

f0- r DO-D7 RDSR - I§z I~ "- TDSR -a:: C")MC68000 ~ CS

N

Cl E «

"(f)

MC6854 CS I I ,..:.

L -~ System ~-<Address '" i'Ci5S DMA

Al-A23 Address I\.. R/W Asynch. MC6844 Upper

/ Decoder Interface DO-D7 Address,Address I\.. SDO-SD7 DEND AS,AS, lDS '" DTACK r Data

V Periph Select SA1-SA16AO-A15 StrobeTxAKA

~ System - "- TxAKA GeneratorData / ....--- Periph CS DGRNT DGRNT

DO-D7

/ - R/WTXSi'B TxRQOTxRQl

r5'fACi( / r DO-D7 DRQH I~E "- -

lDS / E Clock TxSTB - I~~.AS Generator CS E

RIW I IBR '" MC6844CS IBG '" DMA System Latch Selects

~GKACK '"I~

"---TxSTB

Memory DTACK BR DRQHClK DTACK BG Bus TxRQl

Gen. DGRNT 'B'GACi< Arbitration TxRQ2

I) DTm" DGRNTAS Memory

I~ OGRNT

~I\.. SOO-SD7 r 00-07

1_ I\.. R/W "-L1L)o- WE

,SA1-SA10 r"- AOOR

"""""I' CS

Page 8: MC68000 DMA USINGTHE MC6844 DMA CONTROLLERarchive.retro.co.za/...824AMC68000DMAUsingTheMC6844DMAContr… · DMA control system, and other possible bus masters. 3. The MC6844 is an

memory access and processor data transfers. However, dur-ing a direct memory access, memory is deselected by theNOR or DGRNT and E. This ensures that, during a directmemory access, the memory will latch written data at the fallof E, when ADLC data is valid.

ADDITIONAL SYSTEM ENHANCEMENTSTwo enhancements to the direct memory access control

systems presented in this application note should be consid-ered. One improvement increases ADLC throughout, andthe other allows memory to memory DMA data transfers.

THROUGHPUT ENHANCEMENT - Worst-caseDMA latency of the systems described in this applicationnote are 1.18 microseconds for MC68000 systems that do notimplement the Read-Modify-Write instruction, and 1.68 mi-croseconds for systems that do implement the instruction.This is the worst-case delay between assertion of TxRQ andthe beginning of the direct memory access cycle to service thechannel, and allows for propagation delay through the gatesin the bus arbitration handshake logic. These times assume 8megahertz processor operation, and 2 megahertz controller

operation.The ADLC service latency can be reduced by designing a

FIFO buffer to handle data transfers between the ADLC andthe rest of the system. In this technique, the FIFO bufferservices the ADLC, and direct memory access transfer isbetween the FIFO buffer and system memory.

MEMORY TO MEMORY DMA - The direct memoryaccess designs presented in this application note can be easilymodified to perform memory to memory data transfer.

The DMAC will perform a direct memory access transferfor each cycle in the Halt Burst mode while TxRQ is as-serted, until the block transfer is complete. In this way, anMC68B44 clocked at 2 megahertz can perform a direct ac-cess at a 2 megahertz rate. For memory to memory transfer,all that is needed is to allow one memory block to be ad-dressed directly by the DMAC during direct memory access,and transpose the address to access the other memory block.During a direct memory access, the DMA R/W signal to oneof the memory blocks must be inverted so that during eachdirect memory access cycle data is read from one memorylocation in one memory block, and is written into anotherlocation in the other memory block.

This information has been carefully checked and is believed to be entirely reliable However no responsibility is assumed for inaccuracies. Motorola reservesthe right to make changes to any products herein to improve reliability. function or design. Motorola does not assume any liability arising out of the applicationor use of any product or circuit described herein. No ficense is conveyed under patent rights in any form. When this document contains information on a newproduct. specifications herein are subject to change without notice.

MOTOROLA Semiconductor Products Inc.Colvilles Road, Kelvin Estate - East Kilbride/Glasgow - SCOTLAND


Recommended