Académique Documents
Professionnel Documents
Culture Documents
~
Zilog
Produc:t
Spec:ilic:ation
February 1980
Features
General
Description
"~.(=
--DATA
BUS
BUS
A,
A,
As
A.
A.
A,
Os
As
A,
lEI
0,
A,
A,
iNT
0,
A,
SYSTEM
A,
lEO
A,
BUS
-----.
{---
SYSTEM
CONTROL
A,
0,
0,
{--
CONTROL
A,
0,
~ D.
--
BUS
0,
A,
BUSRQ
BAi
BAa
ClK
A10
zso DMA
Mi
D,
D,
A"
A"
A13
lORa
Au
MREQ
Os
A15
BAa
BAi
0,
D,
BUSRQ
Mi
+5V
CEJWAIT
w}
lEO
GND
D,
0,
~ lORa
~ MREQ
...--.. RD
+5V
INTERRUPT
CONTROL
RDY
A15
A,
Au
A,
A13
A10
A"
A"
ClK
ADDRESS
A,
General
Description
(Continued)
Functional
Description
SYSTEM
BUSES
I;t------\
Iv
CPU
v
DMA
INT - . - - '
INT
ROY
lEI
+5V
T
lEI
zellO,
CTC
INT
ZClT02
lEO
ZBO OMA
lEI
RxCA
TxCA
INT
INT
I
lEO
RxeB
TxCB
W/RDYA
WIRDYB
1/0
PERIPHERAL
lEO
lEI
ROY
110
PERIPHERAL
SIO
'--4--+--
DMA
JL------J\
\r
1.
2.
3.
4.
5.
Search memory
Transfer memory-Iamemory (optional search)
Transfer memory-to-lID (optional search)
Search 1/0
Transfer 1I0to1I0 (optional search)
C8037-0128
Functional
Description
(Continued)
C80370129
I-T'_I-T,-I-T'_I__ T'-I
2'CYCLE~~
---,--EARLY ENDING
aCYCLE
4-CYCLE
I ~I
Functional
Description
(Continued)
Pin
Description
Anyof these interrupts cause an interruptpending status bit to be set, and each of them
can optionally alter the DMA's interrupt vector. Due to the buffered constraint mentioned
under "Modes of Operation," interrupts on
Match at End of Block are caused by matches
to the byte just prior to the last byte in the
block.
The DMA shares the 2-80 Family's elaborate
interrupt scheme, which provides fast interrupt service in real-time applications. In a
2-80 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 interruptroutine table. This table contains the address
of the beginning of the interrupt routine itself.
Ao-AIS' 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.
Pin
Description
(Continued)
Internal
Structure
PULSE
LOGIC
BYTE
COUNTER
SYSTEM (L-..w...-'--'\
DATA
MUX
BUS \r-~-r--'/
CONTROL \ r - - - - , j
BUS
CONTROL
AND
STATUS
REGISTERS
BYTE
MATCH
LOGIC
SYSTEM
ADDRESS
Internal
Structure
(Continued)
Write Registers
WRO
WR I
WR2
WR3
WR4
WR5
WR6
RRO
Status byte
Read Registers
RRI
RR2
RR3
RR4
RR5
RR6
COMMON:
INT
BUSRO
M1
CPU
BUSAK
IORO
MREO
...:
AD
C>-
WR
CLK
COMMON
"MMO~
DECODER
'-...7
BAI
~I~~-
_1\
SYSTEM BUSES
-'"
BAO
C>COMMON
...
CE/WAIT
CE/WAIT
FROM HIGHERPRIO
INTERRUPTING DE
Ao-A15
00-7
""-.7
BAI
DMA
DMA
lEI
lEO
lEO
lEI
RDY
RDY
Programming
The Z-80 DMA has two programmable fundamental states: (1) an enabled state, in which
it can gain control of the system buses and
direct the transfer of data between ports, and
(2) a disabled state, in which it can initiate
neither bus requests nor data transfers. When
the DMA is powered up or reset by any means,
it is automatically placed into the disabled
state. Program commands can be written to it
by the CPU in either state, but this automatically puts the DMA in the disabled state,
which is maintained until an enable command
is issued by the CPU. The CPU must program
the DMA in advance of any data search or
transfer by addressing it as an 1/0 port and
sending a sequence of control bytes using an
Output instruction (such as OTIR for the
Z-80 CPU).
Writing. Control or command bytes are written into one or more of the Write Register
groups (WRO-WR6) by first writing to the base
register byte in that group. All groups have
base registers and most groups have additional
associated registers. The associated registers
in a group are sequentially accessed by first
writing a byte to the base register containing
register-group identification and pointer bits
(1's) to one or more of that base register's
associated registers.
This is illustrated in Figure 8. In this figure,
the sequence in which associated registers
within a group can be written to is shown by
the vertical position of the associated registers.
For example, if a byte written to the DMA contains the bits that identify WRO (bits DO, DI
and D7), and also contains I's in the bit positions that point to the associated "Port A Starting Address (low byte)" and "Port A Starting
Address (high byte)," then the next two bytes
written to the DMA will be stored in these two
registers, in that order.
Reading. The Read Registers (RRO-RR6) are
read by the CPU by addressing the DMA as an
1/0 port using an Input instruction (such as
INIR for the Z-80 CPU). The readable bytes
contain DMA status, byte-counter values, and
port addresses since the last DMA reset. The
Fixed-Address Programming. A special circumstance arises when programming a destination port to have a fixed address. The load
command in WR6 only loads a fixed address to
a port selected as the source, not to a port
selected as the destination. Therefore, a fixed
destination address must be loaded by temporarily declaring it a fixed-source address
and subsequently declaring the true source as
such, thereby implicitly making the other a
destination.
The following example illustrates the steps in
this procedure, assuming that transfers are to
occur from a variable-address source (Port A)
to a fixed-address destination (Port B):
I. Temporarily declare Port B as source in
WRO.
2. Load Port B address in WR6.
3. Declare Port A as source in WRO.
4. Load Port A address in WR6.
S. Enable DMA in WR6.
Figure 9 illustrates a program to transfer
data from memory (Port A) to a peripheral
device (Port B). In this example, the Port A
memory starting address is IOSOH and the Port
B peripheral fixed address is OSH. Note that
the data flow is 100lH bytes-one more than
speCified by the block length. The table of
DMA commands may be stored in consecutive
memory locations and transferred to the DMA
with an output instruction such as the Z-80
CPU's OTIR instruction.
Read Register 0
07 06 05 04
1
0 3 O2
Read Register 2
0 1 00
xii i xiii
III
--,I----LI-LI---,-I_IL....J.----L---II
STATUS BYTE
1..-1
o=
o=
o :;
-11--1.1---,-1--,-1_1,---,--,---,1
1-1
INTERRUPT PENDING
MATCH FOUND
END OF BLOCK
--,I----LI-LI---,-I_IL....J.---'----II
11111111
Read Register 4
1..-1
Read Register I
Read Register 3
Read Register 5
,-,I--II--I.I---,-!-,-I--,IL....I.-L---II
Read Register 6
1L-..J1-.l.1---,-1-,-1_IL....I.-L---II
Programming
(Continued)
Write Register Group 4
Write Register 0
0 7 Os 05 0 4 OJ 02 0, Do
I0 1
II
0 1 0 6 05 0 4 0 3 02 0,
=
=
B
A
Do
II
DO NOT USE
BYTE = 0
10 = TRANSFER
1 0
1 1
0= PORT
PORT
1
11 1
SEARCH
SEARCH/TRANSFER
_PORT A
_PORT B
CONTINUOUS
BURST
DO NOT PROGRAM
=0
=1
1
0
1
= 1
'--T""-'---;--'-T-'-r-'-,--,---, PORT
B STARTING.ADDRESS
, r ' ; - , r ' - r ' - T " " " T " " - ' PORT A STARTING ADDRESS
L-""'-,r'--r"-';-L--'--'-....!.-I (LOW BYTE)
, r ' ; - ' - - ' - , T " " " T " " - ' PORT A STARTING ADDRESS
L-""'-,r'--r"--L--'-...L-....!.-I (HIGH BYTE)
.---r''-r-"'-,--,-.-..,.........,.--,
BLOCK LENGTH
L--'-,r'---'--L--'-...L-....!.-I (LOW BYTE)
/I
I 0 1
Do
VECTOR IS AUTOMATICALLY {O
MODIFIED AS SHOWN
0
ONLY IF "STATUS
1
AFFECTS VECTOR" BIT IS SET
1
= INTERRUPT ON
ROY
= INTERRUPT ON
= INTERRUPT ON MATCH
= INTERRUPT ON END OF BLOCK
1
0
1
MEMORY
I 1 1 == 110
o a = PORT A ADDRESS DECREMENTS
o 1 = PORT A ADDRESS INCREMENTS
I=
0 7 0 6 0 5 0 4 0 3 O2 0 1 Do
11
10 10 1
II!!
10 1
0 4 0 3 02
0,
0
1
D7
IS I/O
PORT B AODRESS DECREMENTS
PORT B ADDRESS INCREMENTS
~DS
y, CYCLE EARLY =
1I
I 11
0
1
= 0
1
0
END OF BLOCK
= CYCLE LENGTH = 4
= CYCLE LENGTH = 3
= CYCLE LENGTH = 2
1
DO NOT USE
lORa ENDS V, CYCLE EARLY
0 6 D5 0 4 D3 D2
0 1 Do
I aI I I I =
0
COMMAND NAME
RESET INTERRUPT CIRCUITRY, DISABLE INTERRUPT AND
BUS REQUEST LOGIC, UNFORCE INTERNAL READY
CONDITION, DISABLE "MUXCE" AND STOP AUTO
REPEAT.
C8
o=
CF
03
o=
C3
CB
WR
11
HEX
= PORT B
= PORT B IS MEMORY
o = STOP ON
Do
I I1
1=
=
=
= CYCLE LENGTH = 4
0 1 = CYCLE LENGTH
3
1 0 = CYCLE LENGTH
2
1 1 = DO Nor USE
0= lORa ENDS Vz CYCLE EARLY
I0 I
AB
AF
A3
o
1
1
1
1
0
0
0
o
o
BYTE COUNTER.
= ENABLE INTERRUPTS.
1
DISABLE INTERRUPTS.
0 = RESET AND DISABLE INTERRUPT CIRCUITS (LIKE RETI)
AND UNFORCE THE INTERNAL READY CONDITION.
B7
B3
= ENABLE DMA
~~;~~~~N:~~~~~TgN~~T DO NOT
o = DISABLE OMA
A7
BF
11 1
DMA ENABLE =
0 3 O2
01
Do
j= I
INTERRUPT ENABLE
j1
TIME" MOOE.)
B8
B7
= STOP ON MATCH
B8
0 =
...
l o--,-I....l.--l.--L---l---lIl...-J...1....JI READ MASK (1 = ENABLE)
IIII I
~.," =
A
A
B
B
ADORESS
ADDRESS
ADDRESS
ADDRESS
(LOW BYTE)
(HIGH BYTE)
(LOW BYTE)
(HIGH BYTE)
()
00
'-l
6
w
w
00
HEX
79
Comments
07
06
05
04
03
02
01
1
Block Length
Upper
Follows
1
Block Length
Lower
Follows
1
Port A
Upper
Address
Follows
1
Port A
Lower
Address
Follows
50
10
B ___ A
Temporary
for
Loading B
Address"
Transfer. No Search
00
10
0
No Timing
Follows
0
Address
Changes
1
Address
Increments
0
Port is
Memory
14
0
No Timing
Follows
1
Fixed
Address
1
Port is
I/O
28
0
No Interrupt
Control Byte
Follows
0
No Upper
Address
1
Port BLower
Address
Follows
C5
05
0
No Auto
Restart
0
No Wait
States
1
RDY
Active High
8A
CF
0
1
Transfer, No Search
05
CF
87
Burst Mode
0
0
No Address or Block
Length Bytes
NOTE: The actual number of bytes transferred is one more than specified by the block length.
"These entries are necessary only in the case of a fixed destination address.
A ___ B
CLK~
%:
t1=====
Active State
Timing
(DMA as Bus
Controller)
1_
MEMORY READ
T,
T,
_1.--T,
T,
----Oil
1/0 WRITE
T2
Tw
T,
CLK
IX
AO-A15
-.{
MREQ
iffi
W.". {
r '---
WR
Do-D,
r f--
f\
IORQ
CElWAIT
rr
IY
--
r-T r.-
-- ... 1
-1- r--_1I
Il-
INPUT TO DMA
"I
--
--
rr
-- ,
~--
\ f---
f-t-
wI
I
Active
State
AC
Characteristics
110 READ
-----1-
MEMORY WRITE
-I
h
I
CLK
- l
I
I
~
{
I
I
Do-D7
r-
INPUT TO DMA
-.{
ILW
-
--- ---
IJ \. --- ---ITIt
- - - --
T,
T,
T,
T.
CLK
CLK
RDY
AO-AU
--"----1-BUSRQ _ _ _ --l
~~---""l
RD,WR
L--..L
BAI _ _ _ _ _ _ - '
2CYCLE
3CYCLE
4CYCLE
EARLY END EARLY END EARLY END
Active
State
AC
Characteristics
(Continued)
Bus Release on Match. If the DMA is programmed to stop on match in Burst or Continuous modes, a match causes BUSRQ to go
inactive on the next DMA operation, i.e., at
the end of the next read in a search or at the
end of the following write in a transfer (Figure
19). Due to the pipelining scheme, matches
are determined while the next DMA read or
write is being performed.
The RDY line can go inactive after the
matching operation begins without affecting
this bus-release timing.
Interrupts. Timings for interrupt acknowledge
and return from interrupt are the same as timings for these in other Z-80 peripherals. Refer
to Zilog Application Note 03-0041-01 (The Z-80
Family Program Interrupt Structure).
Interrupt on RDY (interrupt before
requesting bus) does not directly affect the
BUSRQ line. Instead, the interrupt service
routine must handle this by issuing the following commands to WR6:
1. Enable after Return From Interrupt (RETI)
Command - Hex B7
2. Enable DMA -
Hex 87
ACTIVE
INACTIVE
ROY
/
LASTBYTE
~ OPERATION-___1 -
IN BLOCK
ACTIVE
RDY INACTIVE
Lr~--+--_-
CLK~~
"~ ,moo"
BUSRQ
[~OPERATION
----+-
_ _ _
-+-----
------~)~--------------~
;'
~ CURRENT BYTE-----+-
'
OMA
INACTIVE
f---
BYTE n
READ I N - -
BYTE n + 1
READ IN
AND
MATCH FOUND
ON BYTE n
OMA
INACTIVE
C8037-0140
C8037-0141
C8037-0142
C8037-0143
Absolute
Maximum
Ratings
Operating Ambient
Temperature Under Bias ... As Specified Under
"Ordering Information"
Stresses greater than those listed under Absolute Maximum Ratings 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 rating conditions for extended periods may affect
device reliability.
Standard
Test
Conditions
+5 V
2.1K
GND
ooe
= QV
oe
TA ::S +70
All ac parameters assume a load capacitance
of 100 pF max. Timing references between two
DC
Characteristics
Parameter
Min
Max
VILe
VIHe
-0.3
0.45
Vee -6
5.5
VIL
VIH
-0.3
2.0
0.8
5.5
0.4
V
V
V
V
2.4
VOH
lee
l10H
l10L
ILD
Vee
COUT
f
10
10
-10
1O
rnA
rnA
p..A
p..A
p..A
p..A
= 250 p..A
VIN = 0 to Vee
VOUT = 2.4 to Vee
VOUT = 0.4 V
O::sVIN::sVec
Symbol
C
C IN
V
150
200
ILl
e8085-0209
Symbol
VOL
Capacitance
::S
Parameter
Clock Capacitance
Input Capacitance
Output Capacitance
Min
Max
Unit
35
5
10
pF
pF
pF
Test Condition
Unrneasured Pins
Returned to Ground
Inactive
State
AC
Characteristics
Number Symbol
TcC
2
TwCh
3
TwCl
4
TrC
-5-TfC
Parameter
Z-80 DMA
Min Max
Z-80A DMA
Min Max
400
170
170
250
105
105
4000
2000
2000
30
30
0
280
0
145
ns
4000
2000
ns
2000
ns
ns
30
30--nsns
340
ns
380
ns
ns
160--ns-
160
110
500
50
50
140
TdIEOf(IEIf)
lEI I to lEO I Delay
14
-15--TdMl(IEO)--MI I to IEO I Delay (interrupt just prior to
MIl)
TsMlf(Cr)
Ml I to Clock t Setup
16
210
TsMlr(Cf)
Ml t to Clock I Setup
17
20
TsRD(Cr)
18
RD I to Clock t Setup (Ml Cycle)
240
TdI(INT)
Interrupt Cause to INT j Delay (INT generated
19
only when DMA is inactive)
-20-TdBAlr(BAOr)-BAI t to BAO t Delay
TdBAIf(BAOf) BAI I to BAO I Delay
21
TsRDY(Cr)
RDY Active to Clock t Setup
22
150
Unit
140
210
160
190
130
190
300
90
-10
115
500
200
200
500
150
150
100
NOTE:
I. Negative minimum setup values mean that the first-mentioned event can come after the second-mentioned even!.
ns
ns
ns
ns
ns
ns
ns
ns
ns
IlS-
ns
ns
Inactive
State
AC
Characteristics
(Continued)
CLOCK
OUTPUT
INPUT
"1"
"0"
4.2 V 0.8 V
2.0 V 0.8 V
.0 V 0.8 V
CLK
Do-D7
I..---+----{IO)----I
lEI
lEO
.NT
INTERRUPT _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
CONDITION
..JI~
f
NOTE:
Signals in this diagram bear no relation to one another unless specifically noted as a numbered item.
C8037-0144
FLOAT
V = + 0.5 V
Active
State
AC
Characteristics
Number Symbol
Parameter
I
TcC
Clock
2
TwCh
Clock
TwCI
Clock
3
4
TrC
Clock
- 5 - -TfC---Clock
6
7
8
9
TdA
TdC(Az)
TsA(MREQ)
TsA(IRW)
Cycle Time
Width (High)
Width (Low)
Rise Time
Fall Time
Z-BO DMA
Max(ns)
Min(ns)
400
180
180
Z-BOA DMA
Min(ns) Max(ns)
250
110
110
2000
2000
30
30
145
110
110
90
(2) +. (5)-75
(2) + (5)-75
(1)-80
(3) + (4)-40
(3) + (4)-60
(1)-70
(3)+(4)-50
(3) + (4)-45
150
230
90
90
50
35
60
(1)-210
50
(1)-170
100
(3) +(4)-80
0
100
(3) +(4)-70
0
85-
100
100
100
(1)-40
(2) +(5)-30
2000
2000
30
30-
85
85
(1)-30
(2) + (5)-20
90
75-
100
110
85
85
85
95
85-
100
130
100
110
80
90
100
100
(1)-40
85
65
80
80
80(1)-30
70
70
100
100
100
80
NOTES:
I. Numbers in parentheses are other parameter-numbers in this table; their values should be substituted in equations.
2. All equations imply DMA default (standard) timing.
3. Data must be enabled onto data bus when RD is active.
4. Asterisk (') before parameter number means the parameter is not illustrated in the AC Timing Diagrams.
Active
State
AC
Characteristics
(Continued)
CLOCK
OUTPUT
INPUT
"1"
4.2 V
2.0 V
2.0 V
"0"
0.8 V
0.8 V
0.8 V
FLOAT
V = + 0.5 V
eLK
AO-A,15
INPUT
{
00-07
OUTPUT
MREQ
RO
WR
IORQ
RD
WR
WAIT
BUSRQ
--'x
NOTE:
Signals in this diagram bear no relation to one another unless specifically noted as a numbered item.
C8037-0145
03-8037-01
Package
Information
T
J:~rrr~rrrTnTn~~~ITTnTTITrrrTrP
0.555
1r=
Itt~I~
I~--------------------~~~----------------------~I
0.S20~
~:~~~
~r---------------------------------1+------------it
O.SOO
)~
.1~
+0.009
0.S50
r---0.S10
1_
~IN
0.598
MAX
PIN 1
IDENTIFICATION
I---- 0.5301---------1
1
MAX
LJ
~1
0.008+
~o.soo------i
TYP
.~_..r":""""'L~
-'"L-ra
I
~~:
.!
~~i~~
0.125
MIN
0.020
il
LO.110
0.090
O.OSO
0.020
LO.021
0.015