Product Specification 28410/Z84C10 NMOS/CMOS Z80 DMA Direct Memory Access Controller FEATURES @ Transfers, searches, and search/transfers in Byte-at-a- a CMOS version for the designs requiring low power Time, Burst, or Continuous modes. Cycle length and consumption edge timing can be programmed to match the speed of any port. a NMOS Z0841004 - 4MHz Dual port addresses (source and destination) generated for memory-to-I/O, memory-to-memory, or 1/O-to-I/O operations. Addresses may be fixed or automatically incremented/decremented. a CMOS 284C1006 - DC to 6.17 MHz, Z84C1008 - DC to 8 MHz m 6 MHz version supports 6.144 MHz CPU clock opera- m Next-operation loading without disturbing current tion clock. operations via buffered starting-address registers. An entire previous sequence can be repeated automatically. @ Standard Z80 Family bus-request and prioritized interrupt-request daisy chains implemented without external logic. Sophisticated, internally modifiable interrupt vectoring. m Extensive programmability of functions. CPU can read complete channel status. = NMOS version for cost sensitive performance solutions @ Direct interfacing to system buses without external logic. GENERAL DESCRIPTION The Z80 DMA (Direct Memory Access), hereaiter referred function of managing CPU-independent transfers between to as Z80 DMA or DMA, is a powerful and versatile device for two ports is augmented by an array of features that optimize controlling and processing transfers of data. Its basic transfer speed and control with little or no external logic in systems using an 8- or 16-bit data bus and a 16-bit address } Op se - bus. r] D, a- -?] 2 & -. system | . 1 0, As > DATA : gus ) <>] &- ie 1 QL oO A te] Os ae aM 2 x ay +] 04 Ag -> a3 ae] SYSTEM wn ge | O, 47 | popress a {4 37 C] intiPucse Ma f | sus aC s 3 [] 160 < >| sUSREG A }> aot s 95 L] bp CONTROL oy ai A cx (7 up} o, . _] 50 au - wets 330] o2 Z80DMA = An F fC) 9 321] 0s ats FORG ( 10 nO om Ate }-_> +sv(} 11 260 DMA 21] ano | Mi As MREG Cj 12 29 [7] 0s system | +>] fa 540 C13 20] CONTROL ( | MREG avy J~-. | oma Gai] 14 27] oy pus | sd aa ciwart |} f CONTROL ausrea CL 1 26] mi o p fff ee tee: is Figure 2b. 28410 NMOS 280 DMA 44-Pin PLCC Pinout w ; 8 2 vv 7 ww wr & o zZeieaeceaee alk uw MOOOON MINI 6 5 43 2 1 444342 4140 Ao Li 391] % ceux Je 381} = 37) WO Lf10 36[}% ora fit 35} % feser (12 284C10 34 [7] GND +5v (13 33[]0, ~ WREG [14 32[[J9, pao L}15 31 Jo, paLfie 307) Wi Busreg [_}17 2o[]N.c 18 19 20 21 22 23 24 2526 27 28 QUOUWUUOOO Eb 2s ae 7 oe => oO <<4 lg fff eFzZ2 |< 13 >| T >| ' ' +zcvcLe}-| EARLY ENDING a.cvcLe + FOR CONTROL SIGNALS < 4-cCLe _______}| Figure 5. Variable Cycle LengthThe DMA shares the Z80 Family's elaborate interrupt scheme, which provides fast interrupt service in real-time applications. In a Z80 CPU environment, the DMA passes its internally modifiable 8-bit interrupt vector to the CPU, which adds an additional eight bits to form the memory address of the interrupt-routine table. This table contains the address of the beginning of the interrupt routine itself. In this process, CPU control is transferred directly to the interrupt routine, so that the next instruction executed after an interrupt acknowledge is the first instruction of the interrupt routine itself. Pulse Generation. External devices can keep track of how many bytes have been transferred by using the DMA's pulse output, which provides a signal at 256-byte intervals. The interval sequence may be offset at the beginning by 1 to 255 bytes. The Interrupt line outputs the pulse signal in a manner that prevents misinterpretation by the CPU as an interrupt request, since it only appears when the Bus Request and Bus Acknowledge lines are both active. PIN DESCRIPTION Ap-A15. System Address Bus (output, 3-state). Addresses generated by the DMA are sent to both source and destination ports (main memory or I/O peripherals) on these lines. BAI. Bus Acknowledge In (input, active Low). Signals that the system buses have been released for DMA control. In multtiple-DMA configurations, the BAI pin of the highest priority DMA is normally connected to the Bus Acknowledge pin of the CPU. Lower-priority DMAs have their BAT connec- ted to the BAO of a higher-priority DMA. BAO. Bus Acknowledge Out (output, active Low). In a multiple-DMA configuration, this pin signals that no other higher-priority DMA has requested the system buses. BAI and BAO form a daisy chain for multiple-DMA priority resolution over bus control. BUSREQ. Bus Request (bidirectional, active Low, open- drain). As an output, it sends requests for control of the system address bus, data bus, and control bus to the CPU. As an input when multiple DMAs are strung together in a priority daisy chain via BAT and BAO, it senses when another DMA has requested the buses and causes this DMA to refrain from bus requesting until the other DMA is finished. Because it is a bidirectional pin, there cannot be any buffers _ between this DMA and any other DMA. It can, however, have a buffer between it and the CPU because it is unidirectional into the CPU. A pull-up resistor is connected to this pin. CE/WAIT. Chip Enable and Wait (input, active Low). Normally this functions only as a CE line, but it can also be programmed to serve a WAIT function. As a CE line from the CPU, it becomes active when WR or RD andIORQ are ac- tive and the I/O port address on the system address bus is the DMA's address, thereby allowing a transfer of control, command bytes from the CPU to the DMA, or status bytes from the DMA to the CPU. As a WAIT line from memory or VO devices, after the DMA has received a bus-request acknowledge from the CPU, it causes wait states to be inserted in the DMA's operation cycles thereby slowing the DMA to a speed that matches the memory or I/O device. CLK. System Clock (input). Standard Z80 single-phase clock. Do-D7. System Data Bus (bidirectional, 3-state). Commands from the CPU, DMA status, and data from memory or 1/0 peripherals are transferred on these lines. IE. Interrupt Enable in (input, active High). This is used with IEO to form a priority daisy chain when there is mote than one interrupt-criven device. A High on this line indicates that no other device of higher priority is being serviced by a CPU interrupt service routine. IEO. interrupt Enable Out (output, active High). EO is High only if tl is High and the CPU is not servicing an interrupt- from this DMA. Thus, this signal blocks lower-priority devices from interrupting while a higher-priority davice is _being serviced by its CPU interrupt service routine. INT/PULSE. interrupt Request (output, active Low, open- drain). While the CPU is the bus master, this output requests a CPU interrupt. The CPU acknowledges the interrupt by pulling its IORQ output Low during an M1 cycle. It is typically connected to the INT pin of the CPU with a pullup resistor and tied to all other INT pins in the system. This pin can also be used to generate periodic pulses to an mere device when the DMA is bus master (i.e., the CPU's B SREQ and BUSACK lines are both Low and the CPU cannot see interrupts). While the DMA is the bus master, this outout can be programmed to pulse each time 256 transfers have occurred. | TORQ. Input/Output Request (bidirectional, active Low, 3-state). As an input, this indicates that the lower half of the address bus holds a valid /O port address for transfer of contro! or status bytes from or to the CPU, respectivaly; this DMA is the addressed port if its CE pin and its WR or RD pins are simultaneously active. As an output, after the DMA has taken control of the system buses, it indicates that the lower half of the address bus holds a valid port address for another I/O device involved in a DMA transfer of data. When IORQ andM1 are both active simultaneously, an interrupt acknowledge is indicated. MT. Machine Cycle One (input, active Low). Indicates that the current CPU machine cycle is an instruction fetch. It is used by the DMA to decode the return-from-interrupt instruction (RETI, ED-4D) sent by the CPU. During two-byte instruction fetches, M7 is active as each opcode byte is fetched. An interrupt acknowledge is indicated when both M1 and IORQ are active. On CMOS DMA, M1 signal has another function. When Mi occurs without an active RD or (GRO for at least two clock cycles, the DMA is respt. 45MREQ. Memory Request (output, active Low, 3-state). This indicates that the address bus holds a valid address for a memory read or write operation. After the DMA has taken control of the system buses, it indicates a DMA transter request from or to memory. RD. Read (bidirectional, active Low, 3-state). As an input, this indicates that the CPU wants to read status bytes from the DMAs,read registers. As an output, after the DMA has taken control of the system buses, it indicates a DMA-controlled read from a memory or I/O port address. RESET. Reset (CMOS PLCC version only: input, active Low). A low on this line resets the DMA. RDY. Ready (input, programmable active Low or High). This is monitored by the DMA to determine when a peripheral device associated with a DMA port is ready for a read_or write operation. Depending on the mode of DMA operation (Byte, Burst, or Continuous), the RDY line indirectly controls DMA activity by causing the BUSREQ line to go Low or High. . WR. Write (bidirectional, active Low, 3-state). As an input, this indicates that the CPU wants to write control or command bytes to the DMA write registers. As an output, after the DMA has taken control of the system buses, it indicates a DMA-controlled write to a memory or I/O port address. INTERNAL STRUCTURE The internal structure of the Z80 DMA includes driver and receiver circuitry for interfacing with an 8-bit system data bus, a 16-bit system address bus, and system control lines (Figure 6). Ina 280 CPU environment, the DMA can be tied directly to the analogous pins on the CPU (Figure 7) with no additional buffering, except for the CE/WATT line. The DMASs internal data bus interfaces with the system data . bus and services all internal logic and registers. Addresses generated from this logic for Ports A and B (source and destination) of the DMAs single transfer channel are multiplexed onto the system address bus. Specialized logic circuits in the DMA are dedicated to the various functions of external bus interfacing, internal bus control, byte matching, byte counting, periodic pulse generation, CPU interrupts, bus requests, and address generation. A set of 21 writable control registers and seven readable status registers provides the means by which the CPU. governs and monitors the activities of these logic circuits, All registers are eight bits wide, with double-byte information stored in adjacent registers. The two address counters (two bytes each) for Ports A and B are buffered by the two starting addresses. The 21 writable control registers are organized into seven base-register groups, most of which have multiple registers. The base registers in each writable group contain both controlicommand bits and pointer bits that can be set to address other registers within the group. The seven readable status registers have no analogous second-level registers. The registers are designated as follows, according to their base-register groups: WRO-WR6Write Register groups O through 6 (7 base registers plus 14 associated registers) RRO-RR6Read Registers 0 through 6 Writing to a register within a write-register group involves first writing to the base register, with the appropriate pointer bits set, then writing to one or more of the other registers within the group. All seven of the readable status registers are accessed sequentially according to a programmable mask contained in one of the writable registers. The section entitled Programming explains this in more detail. A pipelining scheme is used for reading data in. The programmed block length is the number of bytes compared to the byte counter, which increments at the end of each cycle. in searches, data byte comparisons with the match byte are made during the read cycle of the next byte. Matches are, therefore, discovered only after the next byte is read in. PULSE Logic INTERRUPT AND BUS PRIORITY Loaic BYTE COUNTER PORTA ADDRESS tn } DMA INACTIVE Figure 16. Bus Release (Byte-at-a-Time Mode) INACTIVE BUSREQ LAST BYTE | t-- OPERATION IN BLOCK INACTIVE Figure 17. Bus Release at End of Block (Burst and Continuous Modes)cLK | | f ACTIVE RDY INACTIVE BUSREQ |-cunsens BYTE ; OPERATION st eerivE Figure 18. Bus Release When Not Ready (Burst Mode) e TLL LLL, ACTIVE oS fo Too howe ele RDY L INACTIVE Ifa BUSREQ Sf BYTE yo BYTEn+1 READ oe READ IN AND INACTIVE MATCH FOUND ON BYTEn Figure 19. Bus Release on Match {Burst and Continuous Modes)ABSOLUTE MAXIMUM RATINGS Voltages on Voc with respect to Vsg ..... -0.3V to +7.0V Voltages on all inputs with respect toVgg oe eee 0.3V to Voc + 0.3V Storage Temperature.............. -65C to + 150C Stresses greater than those listed under Absolute Maximum Ritings may cause permanent damage to the device. This is a stress rating only; operation of the device at any condition above those indicated in the Operational sections of these specifications is not implied. Exposure to absolute maximum tating conditions for extended periods tay affect device reliability. STANDARD TEST CONDITIONS The characteristics below apply for the following test conditions, unless otherwise noted. All voltages are referenced to GND (OV). Positive current flows into the referenced pin. Available operating temperature range is: a S=0C to +70C, V., Range NMOS: +4.75V S Voc $+5.25V CMOS: +4.50V SV,,.S+5.50V m E=-40C to 100C, +4.50V Min - Max Unit Test Condition Cc Clock Capacitance 35 pF Unmeasured pins C,, Input Capacitance 10 pF returned to ground. Cour Output Capacitance 10 pF Note: Over specified temperature range; f =1 MHz 61AC CHARACTERISTICS (z8410 / NMOS Z80 DMA) (Inactive State) D,b, (NTERRUPT ACTIVE INACTIVE NOTE: Signals in this diagram bear no retation to one another unless specifically noted as a numbered item.AC CHARACTERISTICS (28410 / NMOS Z80 DMA) (Active State) * LP PIAA DDR AS KO aD, < x |~<(4) >} _ (5) INPUT x x x Do-D7 te a _ + ee) OUTPUT _ im \ lon am @ }+_@>| Lo iB \ y \ / Sf > wa Z @ f/f >| | @ L285 *@) _ _/ tora =a an Lo \ f\ L i \ [S_ <(9)__>| f-e~ ) @ want LG) @ susREG x NOTE: Signats In this diagram bear no relation to one another unless specifically noted as a numbered Item. 20841004 Ft Number Symbol Parameter Min(ns) Max(ns) 1 TeC Clock Cycle Time 250 2 TWCh Clock Width (High) 110 2000 3 WCl Clock Width (Low) 410 2000 4 re Clock Rise Time 30 5 TIC Clock Fall Time 30 NOTES: Numbers in parentheses are other parameter-numbers in this table; their values should be substituted in equations. + All equations imply DMA default (standard) timing. t+ Data must be enabled onto data bus when RD is active. * Parameter is not illustrated in the AC Timing Diagrams.AC CHARACTERISTICS (28410 / NMOS Z80 DMA) (Active State) 20841004 *tt Number Symbol Parameter Min(ns) Max(ns) 6 TdA Address Output Delay 110 7 TdC(Az) Clock t to Address Float Delay 90 8 TsA(MREQ) Address to MREQ $ Setup (Memory Cycle) (2) + (5)- 75 9 TsA(IRW) Address Stable to ORO, RD, WR Setup (I/O Cycle) (1)-70 "10 TdRW(A) RD, WR t to Addr. Stable Delay (3) +(4)~50 11 TdRW(Az) RD, WR t to Addr. Float (3) +(4)~45 42 TdCt(DO) Clock 4 to Data Out Delay 150 "13 TdCr(Dz) Clock t to Data Float Delay (Write Cycle) 90 14 TsDI(Cr) Data In to Clock t Setup (Read cycle when . rising edge ends read) 35 15 TsDK(Cf) Data In to Clock 4 Setup (Read cycle when falling edge ends read) 50 "16 TsDO(WfM) Data Out to WR Setup (Memory Cycle) (1)-170 17 TsDO(WE) Data Out to WR 4 Setup (I/O cycle) 100 "18 TdWr(DO) WR to Data Out Delay (3) +(4)-70 19 Th Hold Time for Any Specified Setup Time 0 20 TdCr(Mf) Clock t to MREQ + Delay 85 21 TdaCh(Mf) Clock $10 MREQ $ Delay 85 22 TdCr(Mr) Clock t to MREO Delay 85 23 TdCt(Mn) Clock + to MREO Delay 85 24 TwM1 MREG Low Pulse Width (1)-30 *25 TwMh MREO High Pulse Width (2)+(5)- 20 26 TACK Ciock + to IORG + Delay 85 27 TdCri(If} Clock t to (ORG + Delay 75 28 TdCri(ir) Clock to IORG Delay 85 29 TdCi(tr) Clock + to TORO t Delay 85 30 TACr(RA) Clock t to RD | Delay 85 31 TdCKRA Clock $ to RD 4 Delay 95 32 TdCr(Rr) Clock t to RD t Delay 85 33 TdCi(Rr) Clock $ to RD t Delay 85 34 TdCriwh) Clock t to WR 4 Delay 65 35 TdcKws Clock 4 to WR Delay 80 36 TdCrwr) Clock t to WR t Delay 80 37 TACKWr) Clock 4 to WR t Delay 80 38 Ww WR Low Pulse Width (1)-30 39 TswaA(Ch WAIT to Clock 4 Setup 70 40 TdCr(B) Clock t to BUSREQ Delay 100 41 TdCr(lz) Clock t to ORO, MREQ, RD, WR Float Delay 80 NOTES: + All AC equations imply DMA dofautt (standard) timing. * Numbers In parenth ers in this table; their values should be substituted in equations. 64AC CHARACTERISTICS (284010 / CMOS 280 DMA) (Inactive State) 284C 1006 Z84C 1008 Number Symbol! Parameter Min Max Min Max _- Unit 1 TcC Clock Cycle Time 162 DC 125 DC 2 TwCh Clock Width (High) 65 pc 55 oc 3 Wel Clock Width (Low) 65 oC 55 DC 4 TC Clock Rise Time 20 10 5 TiC Clock Fall Time 20 10 6 Th Hold Time for Any Specified Setup Time 0 0 ns 7 TsC(Cr) TORG, WR, CE } to Clock t Setup 60 45 ns 8 TdDO(RDF) RD } to Data Output Delay 300 220 ns 9 TsDI(Cr) Data In to Clock t Setup (WR or M1) 30 20 ns 10 TADOWIOf) TORQ 4 to Data Out Delay (INTA Cycle) 110 85 ns 1 TdRDr(Dz) RD t to Data Float Delay (output buffer disable) 70 50 ns 12 TsIEKIORQ/ IEI to IORQ + Setup (INTA Cycle) 100 80 ns 13 TdlEOr(tEir) IEI t to IEO t Delay 100 70 ns 14 TdlEOKIEIf) IEI + to IEO Delay 100 70 ns 15 TdM1K(IEOR) MT 4 to 1EO 4 Delay (interrupt just prior to MT 4) 100 80 ns 16 TsM1f(Cr) M7 4 to Clock t Setup 70 45 ns 17 TsM1r(Cf) M7 t to Clock Setup -15 -15 ns 18 TsRDI(CH) RD } to Clock t Setup (M7 Cycle) 60 45 ns 19 Tdl(INTA Interrupt Cause to INT + Delay (INT generated only when DMA is inactive) 450 400 ns 20 TdBAIr(BAOr) BAT t to BAO t Delay 100 70 ns 21 TABAI(BAO?) BAI + to BAO $ Delay 100 70 ns 22 TsRDY(Cr) RDY Active to Clock t Setup 50 50 ns NOTE: Negative minimum setup values mean that the first-mentioned event can come after the second-mentioned event. * M1 must be active for a minimum of two clock cycles to reset the DMA (This feature Is only with C-MOS Z80 DMA). 65