You are on page 1of 17

8257/8257-5

PROGRAMMABLE DMA CONTROLLER


■ MCS-85® Compatible 8257-5 Single TTL Clock

■ 4-Channel DMA Controller Single + 5V Supply

■ Priority DMA Request Logic


Auto Load Mode
■ Channel Inhibit Logic
Available in EXPRESS
■ Terminal Count and Modulo 128
- Standard Temperature Range
Outputs
The Intel* 8257 is a 4-channel direct memory access (DMA) controller. It is specifically designed to simplify the
transfer of data at high speeds for the Intel® microcomputer systems. Its primary function is to generate, upon a
peripheral request, a sequential memory address which will allow the peripheral to read or write data directly to or
from memory. Acquisition of the system bus in accomplished via the CPU's hold function. The 8257 has priority logic
that resolves the peripherals requests and issues a composite hold request to the CPU. It maintains the OMA cycle
count for each channel and outputs a control signal Jo notify the peripheral that the programmed number of OMA
cycles is complete. Other output control signals simplify sectored data transfers. The 8257 represents a significant
savings in component count for DMA-based microcomputer systems and greatly simplifies the transfer of data at
high speed between peripherals and memories.

0,0,

I/ORQ 1 ^"^ 40
2 39

mcmrC 3 38

M[MW[ 4 21

markC S 36

RfAOVQ 6 3S

7 34

aostbC 8 33 Da

A€NC 9 8747 37
HROC 10 31

11 30

clkC 12 79 Do,
R€S€TC 13 78

OACK 2C 14 21

OACK 3C IS 76

ORQ3C 16 25 Doack o

ORO2C 17 74 DOACK 1
ORO iC 18 73

OROOC 19 72 Do,
. GNOC 20 21

Figure 1. Block Diagram Figure 2. Pin Configuration

2-103
8257/8257-5

FUNCTIONAL DESCRIPTION Block Diagram Description

1. DMA Channels
General The 8257 provides four separate DMA channels (labeled
The 8257 is a programmable. Direct Memory Access CH-0 to CH-3). Each channel includes two sixteen-bit
(DMA) device which, when coupled with a single Intel® registers: (1) a DMA address register, and (2) a termi
8212 I/O port device, provides a complete four-channel nal count register. Both registers must be initialized
DMA controller for use in Intel® microcomputer systems. before a channel is enabled. The DMA address register is
After being initialized by software, the 8257 can transfer a loaded with the address of the first memory location to be
block of data, containing up to 16.384 bytes, between accessed. The value loaded into the low-order 14-bits of
memory and a peripheral device directly, without further the terminal count register specifies the number of DMA
intervention required of the CPU. Upon receiving a DMA cycles minus one before the Terminal Count (TC) output
transfer request from an enabled peripheral, the 8257: is activated. For instance, a terminal count of 0 would
cause the TC output to be active in the first DMA cycle for
that channel. In general, if N = the number of desired DMA
1. Acquires control of the system bus.
cycles, load the value N-1 into the low-order 14-bits of the
2. Acknowledges that requesting peripheral which is terminal count register. The most significant two bits of the
connected to the highest priority channel. terminal count register specify the type of DMA operation
3. Outputs the least significant eight bits of the memory for that channel.
address onto system address lines A0-A7. outputs
the most significant eight bits of the memory address
to the 8212 I/O port via.the data bus (the 8212
places these address bits on lines A8-A15), and
4. Generates the appropriate memory and I/O read/
write control signals that cause the peripheral to
receive or deposit a data byte directly from or to the
addressed location in memory.

The 8257 will retain control of the system bus and repeat
the transfer sequence, as long as a peripheral maintains its
DMA request. Thus, the 8257 can transfer a block of data
to/from a high speed peripheral (e.g.. a sector of data on a
floppy disk) in a single "burst". When the specified
RIAO'
number of data bytes have been transferred, the 8257 AfSfT-
wmtc
LOGIC
activates its Terminal Count (TC) output, informing the
CPU that the operation is complete.
—• 6U* I
The 8257 offers three different modes of operation:
(1) DMA read, which causes data to be transferred from
memory to a peripheral: (2) DMA write, which causes
data to be transferred from a peripheral to memory:
and (3) DMA verify, which does not actually involve the CONTROL
—. dack J

transfer of data. When an 8257 channel is in the DMA verify


LOOC

MOO*
mode, it will respond the same as described for transfer MKO - «I

operations, except that no memory or I/O read/write M4.DA-

control signals will be generated, thus preventing the MfM* -

transfer of data The 8257. however, will gain control of the At* -

system bus and will acknowledge the peripheral's DMA


request for each DMA cycle. The peripheral can use these
acknowledge signals to enable an internal access of each
byte of a data block in order to execute some verification
procedure, such as the accumulation of a CRC (Cyclic
Redundancy Code) checkword. For example, a block of
DMA verify cycles might follow a block of DMA read cycles
(memory to peripheral) to allow the peripheral to verify its
Figure 3. 8257 Block Diagram Showing DMA
Channels
newly acquired data.

2-104 AFN-018400
8257/8257-5

These two bits are not modified during a DMA cycle, but
BIT IS BIT 14 TYPE OF DMA OPERATION
can be changed between DMA blocks.

Each channel accepts a DMA Request (DRQn) input and 0 0 Verify OMA Cycle
provides a DMA Acknowledge (DACKn) output 0 1 Write DMA Cycle
1 0 Read DMA Cycle

(DRQ 0-DRQ 3) 1 1 (Illegal)

DMA Request: These are individual asynchronous chan


nel request inputs used by the peripherals to obtain a DMA
cycle. If not in the rotating priority mode then DRQ 0 has
the highest priority and DRQ 3 has the lowest. A request
can be generated by raising the request line and holding it
high until DMA acknowledge. For multiple DMA cycles
(Burst Mode) the request line is held high until the DMA
acknowledge of the last cycle arrives.

(DACK 0 - DACK 3)
DMA Acknowledge: An active low level on the acknowl
edge output informs the peripheral connected to that
channel that it has been selected for a DMA cycle. The
DACK output acts as a "chip select'* for the peripheral
device requesting service. This line goes active (low)
and inactive (high) once for each byte transferred even if cm;

a burst of data is being transferred.

—•> o*c« *
2. Data Bus Buffer
This three-state, bi-directional, eight bit buffer interfaces
the 8257 to the system data bus.

<D0-07)
Data Bus Lines: These are bi-directional three-state lines.
When the 8257 is being programmed by the CPU. eight-
bits of data for a DMA address register, a terminal count
register or the Mode Set register are received on the data
bus. When the CPU reads a DMA address register, a
terminal count register or the Status register, the data is
sent to the CPU over the data bus. During DMA cycles
(when the 8257 is the bus master), the 8257 will output the
most significant eight-bits of the memory address (from
one of the DMA address registers) to the 8212 latch via the
data bus. These address bits will be transferred at the
beginning of the DMA cycle: the bus will then be released
to handle the memory data transfer during the balance of Figure 4. 8257 Block Diagram Showing Oata Bus
the DMA cycle. Buffer

2-105 AFN-018400
8257/8257-5

3. Read/Write Logic

When the CPU is programming or reading one of the Address Lines: These least significant four address lines
8257*s registers (i.e., when the 8257 is a "slave" device on are bi-directional. In the "slave" mode they are inputs
the system bus), the Read/Write Logic accepts the I/O which select one of the registers to be read or
Read (USE) or I/O Write (175OT) signal, decodes the least programmed. In the "master" mode, they are outputs
significant four address bits, (A0-A3), and either writes which constitute the least significant four bits of the 16-bit
the contents of the data bus into the addressed register
memory address generated by the 8257.
(if I/OW is true) or places the contents of the addressed
register onto the data bus (if I/OR is true). (CS)
During DMA cycles (i.e., when the 8257 is the bus
Chip Select: An active-low input which enables the I/O
"master"), the Read/Write Logic generates the I/O read Read or I/O Write input when the 8257 is being read or
and memory write (DMA write cycle) or I/O Write and programmed in the "slave" mode. In the "master" mode.
memory read (DMA read cycle) signals which control the CS is automatically disabled to prevent the chip from
data link with the peripheral that has been granted the selecting itself while performing the DMA function.
DMA cycle.

Note that during DMA transfers Non-DMA I/O devices 4. Control Logic
should be de-selected (disabled) using "AEN" signal to
This block controls the sequence of operations during all
inhibit I/O device decoding of the memory address as an
DMA cycles by generating the appropriate control signals
erroneous device address.
and the 16-bit address that specifies the memory location
(i/OR) to be accessed.

I/O Read: An active-low, bi-directional three-state line. In


the "slave" mode, it is an input which allows the 8-bit CM«

status register or the upper/lower byte of a 18-bit DMA


j—» CNTM —• 0AM 5
address register or terminal count register to be read. In
the "master" mode, I/OR is a control output which is used
to access data from a peripheral during the DMA write I ■ CM!
CM! •— WO1
U

cycle. ADOA
»I

CNTM — OACK 1

(I/OW)

I/O Write: An active-low, bi-directional three-state line. In


the "slave" mode, it is an input which allows the contents AOOM
•IT

of the data bus to be loaded into the 8-bit mode set register
CNTM

or the upper/lower byte of a 18-bit DMA address register


or terminal count register. In the "master" mode. I/OW is a
control output which allows data to be output to a
fl AOO«
•IT

peripheral during a DMA read cycle. CNTft —• OACK 1

(CLK)
PRIORITY

Clock Input: Generally from an Intel® 8224 Clock Gen RtSOlVfft

erator device. (*2 TTL) or Intel® 8085A CLK output.


INTtftNAl

(RESET) BUS

Reset: An asynchronous input (generally from an 8224


or 8085 device) which disables all DMA channels by Figure 5. 8257 Block Diagram Showing
clearing the mode register and 3-states all control lines. Read/Write Logic Function

2-106 AFN-01840D
8257/8257-5

(TC)

Address Lines: These four address lines are three-state


Terminal Count: This output notifies the currently
outputs which constitute bits 4 through 7 of the 16-bit selected peripheral that the present DMA cycle should be
memory address generated by the 8257 during all OMA the last cycle for this data block. If the TC STOP bit in the
Mode Set register is set. the selected channel will be
cycles.
automatically disabled at the end of that DMA cycle. TC is
(READY) activated when the 14-bit value in the selected channel's
terminal count register equals zero. Recall that the low-
Ready: This asynchronous input is used to elongate the
order 14-bits of the terminal count register should be
memory read and write cycles in the 8257 with wait
loaded with the values (n-1). where n = the desired number
states if the selected memory requires longer cycles.
of the DMA cycles.
READY must conform to specified setup and hold
times.
(MARK)
Modulo 128 Mark: This output notifies the selected
(HRQ)
peripheral that the current DMA cycle is the 128th cycle
Hold Request: This output requests control of the since the previous MARK output. MARK always occurs at
system bus. In systems with only one 8257, HRQ will 128 (and all multiples of 128) cycles from the end of the
normally be applied to the HOLD input on the CPU. HRQ data block. Only if the total number of DMA cycles (n) is
must conform to specified setup and hold times. evenly divisable by 128 (and the terminal count register
was loaded with n-1). will MARK occur at 128 (and each
(HLDA) succeeding multiple of 128) cycles from the beginning of
Hold Acknowledge: This input from the CPU indicates the data block.
that the 8257 has acquired control of the system bus.

(MEMR)

Memory Read: This active-low three-state output is used


to read data from the addressed memory location during
DMA Read cycles.

(MEMW) #—• CNTft

Memory Write: This active-low three-state output is used


to write data into the addressed memory location during -I— CMI
_J-fv U
DMA Write cycles.
—• OACK I
CLK -

(AOSTB) MSCT-

Address Strobe: This output strobes the most significant


byte of the memory address into the 8212 device from the
data bus.

(AEN)
CM 3

Address Enable: This output is used to disable (float) the t«


•IT

System Data Bus and the System Control Bus. It may also AOO«
—► OAC« i
CMT«
be used to disable (float) the System Address Bus by use
of an enable on the Address Bus drivers in systems to
inhibit non-DMA devices from responding during DMA
cycles. It may be further used to isolate the 8257 data bus
from the System Data Bus to facilitate the transfer of the 8
most significant DMA address bits over the 8257 data I/O (NTfftftAl

pins without subjecting the System Data Bus to any •US

timing constraints for the transfer. When the 8257 is used


in an I/O device structure (as opposed to memory
mapped), this AEN output should be used to disable the
selection of an I/O device when the DMA address is on the
address bus. The I/O device selection should be
determined by the DMA acknowledge outputs for the 4
Figure 6. 8257 Block Diagram Showing Control
Logic and Mode Set Register
channels.

2-107 AFN-018400
I
8257/8257-5

5. Mode Sat Register Note that rotating priority will prevent any one channel
When set, the various bits in the Mode Set register enable from monopolizing the PMA mode; consecutive DMA
each of the four DMA channels, and allow four different cycles will service different channels if more,than one
options for the 8257: channel is enabled and requesting service. There is no
overhead penalty associated with this mode of opera
tion. All DMA operations began with Channel 0 initially
assigned to the highest priority for the first DMA cycle.
I I I I I TTTI
Erubfei AUTOLOAD J T, Enable* DMA Channel 0
Erublct TC STOP Enables DMA Channel 1 Extended Write Bit 5
Enable* EXTCNDEO WRITE Enables DMA Channel 2
Enables ROTATING PRIORITY- Enables DMA Channel 3 If the EXTENDED WRITE bit is set. the duration of both the
MEMW and I/OW signals is extended by activating them
The Mode Set register is normally programmed by the earlier in the DMA cycle. Data transfers within micro
CPU after the DMA address register(s) and terminal computer systems proceed asynchronously to allow
count register(s) are initialized. The Mode Set Register is use of various types of memory and I/O devices with
cleared by the RESET input, thus disabling all options, different access times. If a device cannot be accessed
inhibiting all channels, and preventing bus conflicts on within a specific amount of time it returns a "not ready"
power-up. A channel should not be left enabled unless its indication to the 8257 that causes the 8257 to insert one or
DMA address and terminal count registers contain valid more wait states in its internal sequencing. Some devices
values; otherwise, an inadvertent DMA request (DROn) are fast enough to be accessed without the use of wait
from a peripheral could initiate a DMA cycle that would states, but if they generate their READY response with the
destroy memory data. leading edge of the f/SW or MEMW signal (which
generally occurs late in the transfer sequence), they
The various options which can be enabled by bits in the
would normally cause the 8257 to enter a wait state
Mode Set register are explained below:
because it does not receive READY in time. For systems
with these types of devices, the Extended Write option
Rotating Priority Bit 4
provides alternative timing for the I/O and memory write
In the Rotating Priority Mode, the priority of the channels signals which allows the devices to return an early READY
has a circular sequence. After each DMA cycle, the and prevents the unnecessary occurrence of wait states in
priority of each channel changes. The channel which had the 8257. thus increasing system throughput.
just been serviced will have the lowest priority.

TC Stop Bit 6

If the TC STOP bit is set. a channel is disabled (i.e.. its


enable bit is reset) after the Terminal Count (TC) output
goes true, thus automatically preventing further DMA
operation on that channel. The enable bit for that channel
must be re-programmed to continue or begin another
DMA operation. If the TC STOP bit is not set. the
occurrence of the TC output has no effect on the channel
enable bits. In this case, it is generally the responsibility of
the peripheral to cease DMA requests in order to terminate
a DMA operation.

If the ROTATING PRIORITY bit is not set (set to a zero).


each DMA channel has a fixed priority. In the fixed priority Auto Load Bit 7
mode. Channel 0 has the highest priority and Channel 3
The Auto Load mode permits Channel 2 to be used for
has the lowest priority. If the ROTATING PRIORITY bit is
repeat block or block chaining operations, without
set to a one. the priority of each channel changes after
immediate software intervention between blocks. Chan
each DMA cycle (not each DMA request). Each channel
nel 2 registers are initialized as usual for the first data
moves up to the next highest priority assignment, while
block; Channel 3 registers, however, are used to store the
the channel which has just been serviced moves to the
block re-initialization parameters (DMA starting address,
lowest priority assignment:
terminal count and DMA transfer mode). After the first
block of DMA cycles is executed by Channel 2 (i.e.. after
CHANNEL-** CH-0 CH-1 CH-2 CH-3 the TC output goes true), the parameters stored in the
JUST SERVICED Channel 3 registers are transferred to Channel 2 during an
"update" cycle. Note that the TC STOP feature, described
Priority —► Highest CH-1 CH-2 CH-3 CH-0 above, has no effect on Channel 2 when the Auto Load bit
Assignments CH-2 CH-3 CH-0 CH-1 is set.
CH-3 CH-0 CH-1 CH-2
Lowest CH-0 CH-1 CH-2 CH-3

2-108 AFN-018400
inter 8257/8257-5

If the Auto Load bit is set. the initial parameters for


2 1
Channel 2 are automatically duplicated in the Channel 3
registers when Channel 2 is programmed. This permits I.I.I.I.I
repeat block operations to be set up with the programming
of a single channel. Repeat block operations can be used UfOATC FLAG J I
I
f
I
t—TC STATUS FOR CHANNEL 0
TC STATUS
-TC FOR CHANNEL
STATUS FOR
TC STATUS
-TC STATUS FOR
CHANNEL 11
CHANNEL 22
FOR CHANNEL
in applications such as CRT refreshing. Channels 2 and 3 -TC STATUS FOR CHANNEL 3

can still be loaded with separate values if Channel 2 is


loaded before loading Channel 3. Note that in the Auto
Load mode, Channel 3 is still available to the user if the
Channel 3 enable bit is set. but use of this channel will The TC status bits are set when the Terminal Count (TC)
change the values to be auto loaded into Channel 2 at output is activated for that channel. These bits remain set
update time. All that is necessary to use the Auto Load until the status register is read or the 8257 is reset. The
feature for chaining operations is to reload Channel 3 UPDATE FLAG, however, is not affected by a status
registers at the conclusion of each update cycle with the register read operation. The UPDATE FLAG can be
new parameters for the next data block transfer. cleared by resetting the 8257. by changing to the non-auto
Each time that the 8257 enters an update cycle, the update load mode (i.e.. by resetting the AUTO LOAD bit in the
flag in the status register is set and parameters in Channel Mode Set register) or it can be left to clear itself at the
3 are transferred to Channel 2. non-destructively for completion of the update cycle. The purpose of the
Channel 3. The actual re-initialization of Channel 2 occurs UPDATE FLAG is to prevent the CPU from inadvertently
at the beginning of the next channel 2 DM A cycle after the skipping a data block by overwriting a starting address or
TC cycle. This will be the first DMA cycle of the new data terminal count in the Channel 3 registers before those
block for Channel 2. The update flag is cleared at the parameters are properly auto-loaded into Channel 2.
conclusion of this DMA cycle. For chaining operations,
the update flag in the status register can be monitored by
the CPU to determine when the re-initialization process The user is cautioned against reading the TC status
has been completed so that the next block parameters can register and using this information to reenable chan
be safely loaded into Channel 3. nels that have not completed operation. Unless the
DMA channels are inhibited a channel could reach ter
6. Status Register minal count (TC) between the status read and the mode
The eight-bit status register indicates which channels write. DMA can be inhibited by a hardware gate on the
have reached a terminal count condition and includes the HRQ line or by disabling channels with a mode word
update flag described previously. before reading the TC status.

PARAMETERS
PARAMETERS I .PARAMETERS

1
FOR BLOCK 3
FOR BLOCK 1 r IFOR BLOCK 2 HANNEI2UPOATE
CHANNEL 2UPOATE
OCCURS HERE OCCURS HERE

JIRJUL-. rUUUU|_fL\.l
-OATABLOCK J OATA BLOCK? -| hfOATA BLOCK 3 —'

UPOATEFLAG

Figure 7. Autoload Timing

2-109 AFN01840O
8257/8257-5

OPERATIONAL SUMMARY
CONTROL INPUT CS I/OW I/OR A*
Programming and Reading the 8257 Registers
Program Half of a 0 0 1 0
There are four pairs of "channel registers'*: each pair Channel Register
consisting of a 16-bit DMA address register and a 16-bit
Read Half of a 0 1 0 0
terminal count register (one pair for each channel). The
Channel Register
8257 also includes two "general registers": one 8-bit
Mode Set register and one 8-bit Status register. The program moo© sei 0 0 1 1
registers are loaded or read when the CPU executes a Register
write or read instruction that addresses the 8257 device
and the appropriate register within the 8257. The 8228 Read Status Register 0 1 0 1

generates the appropriate read or write control signal


(generally I/OR or I/OW while the CPU places a 16-bit
four channels. Because the "channel registers" are 16-
address on the system address bus, and either outputs the
bits, two program instruction cycles are required to load
data to be written onto the system data bus or accepts the
or read an entire register. The 8257 contains a first/last
data being read from the data bus. All or some of the most
(F/L) flip flop which toggles at the completion of each
significant 12 address bits A4-A15 (depending on the
channel program or read operation. The F/L flip flop
systems memory, I/O configuration) are usually decoded
determines whether the upper or lower byte of the register
\o produce the chip select (CS) input to the 8257. An I/O
is to be accessed. The F/L flip flop is reset by the RESET
Write input (or Memory Write in memory mapped I/O
input and whenever the Mode Set register is loaded. To
configurations, described below) specifies that the
maintain proper synchronization when accessing the
addressed register is to be programmed, while an I/O
"channel registers" all channel command instruction
Read input (or Memory Read) specifies that the addressed
operations should occur in pairs, with the lower byteof a
register is to be read. Address bit 3 specifies whether a
register always being accessed first. Do not allow CS to
"channel register" (A3 = 0) or the Mode Set (program
clock while either I/OR or I/OW is active, as this will cause
only)/Status (read only) register (Ay = 1) is to be accessed.
an erroneous F/L flip flop state. In systems utilizing an
The least significant three address bits, Ao-A:, indicate the interrupt structure, interrupts should be disabled prior to
specific register to be accessed. When accessing the any paired programming operations to prevent an
Mode Set or Status register. A(rA2 are all zero. When interrupt from splitting them. The result of such a split
accessing a channel register bit Ao differentiates between would leave the F/L F/F in the wrong state. This problem is
the DMA address register (Ao = 0) and the terminal count particularly obvious when other DMA channels are
register (Ao = 1), while bits A| and A2 specify one of the programmed by an interrupt structure.

8257 Register Selection

ADDRESS; inputs •BI-DIRECTIONAL DATA BUS

REGISTER BYTE F/L


A3 A2 A1 Ao os D4 <>3 D2 D1 Do

CH-0 DMA Address LSB 0 0 0 0 0 A7 Ae As A4 A3 A2 A1 Ao


MSB 0 0 0 0 1 A15 A14 A13 A12 A11 A10 A9 Ae

CH-0 Terminal Count LSB 0 0 0 1 0 c7 C6 c5 c4 c3 C2 C1 Co


1 Rd Wr C13 C12 C11 C10 c9 Cs
MSB 0 0 0 1

CH-1 DMA Address LSB 0 0 1 0 0


Same is Chi nnel C
MSB 0 0 1 0 1

CH-1 Terminal Count LSB 0 0 1 1 0


MSB 0 0 1 1 1

CH-2 DMA Address LSB 0 1 0 0 0


Same is Chi mnel ( i
MSB 0 1 0 0 1

CH-2 Terminal Count LSB 0 1 0 1 0


MSB 0 0 1 1

CH-3 DMA Address LSB 0 1 0 0


Same ■sChi innel ( I
MSB 0 1 0 1

CH-3 Terminal Count LSB 0 1 1 0


MSB 0 1 1 1

MODE SET (Program only) 1 0 0 0 0 AL TCS EW RP EN3 EN2 EN1 ENO

STATUS (Read only) — t 0 0 0 0 0 0 0 UP TC3 TC2 TC1 TCO

•A0-A15: DMA Starting Address. Co-C13: Terminal Count value (N-1). Rd and Wr: DMAVerify (00), Write (01) or Read (10) cycle selection.
AL: Auto Load. TCS:TC STOP. EW: EXTENDED WRITE. RP: ROTATING PRIORITY. EN3-EN0: CHANNEL ENABLE MASK. UP: UPDATE
FLAG. TC3-TC0: TERMINAL COUNT STATUS BITS.

2-110 AFN-01840D
8257/8257-5

read and write commands and byte transfer occurs be


RCSCT tween the selected I/O device and memory. After the
transfer is complete, the BKCK line is set HIGH and the
HRQ line is set LOW to indicate to the CPU that the bus
is now free for use. DRQ must remain HIGH until DACK
is issued to be recognized and must go LOW before S4
SAMPLE ORQntlNES
SETHROIFDRQ*- 1 of the transfer sequence to prevent another transfer
from occuring. (See timing diagram.)

Consecutive Transfers

If more than one channel requests service simultaneous


SO
ly, the transfer will occur in the same way a burst does.
SAMPLE HLOA No overhead is incurred by switching from one channel
RESOLVE OROn PRIORITIES
to another. In each S4 the DRO lines are sampled and
the highest priority request is recognized during the
next transfer. A burst mode transfer in a lower priority
channel will be overridden by a higher priority request.
Once the high priority transfer has completed control
SI will return to the lower priority channel if its DRQ is still
PRESENT ANO LATCH
UPPER AOORESS active. No extra cycles are needed to execute this se
PRESENT LOWER ADDRESS
quence and the HRQ tine remains active until all DRQ
lines go LOW.

Control Override

The continuous DMA transfer mode described above


ACTIVATE REAO COMMAND can be interrupted by an external device by lowering the
AOVANCEO WRITE COMMAND
AND OACKa HLDA line. After each DMA transfer the 8257 samples
the HLDA line to insure that it is still active. If it is not
active, the 8257 completes the current transfer, releases
the HRQ line (LOW) and returns to the idle state. If DRQ
lines are still active the 8257 will raise the HRQ line in
S3 REAOV SW
the third cycle and proceed normally. (See timing
ACTIVATE WRITE COMMANO
ACTIVATE MARK ANO TC
VEftlFV SAMPLE REAOV
diagram.)
READY
IF APPROPRIATE
LINE

Not Ready

REAOV ♦ VERIFY The 8257 has a Ready input similar to the 8080A and the
8085A. The Ready line is sampled in State 3. If Ready is
RESET ENABLE FOR CHANNEL N IF LOW the 8257 enters a wait state. Ready is sampled dur
TC STOP ANO TC ARE ACTIVE
DEACTIVATE COMMANDS
ing every wait state. When Ready returns HIGH the 8257
DEACTIVATE DACKn. MARK ANO TO proceeds to State 4 to complete the transfer. Ready is
OROn HLDA SAMPLE OROn ANO HLDA
RESOLVE OROn PRIORITIES used to interface memory or I/O devices that cannot
RESET HRO IF HLOA ' OOR DRQ • 0
meet the bus set up times required by the 8257.
HLOA ♦ OROo

Speed

The 8257 uses four clock cycles to transfer a byte of


1 DRQn REFERS TO ANY ORQ UNE ON AN ENABLED DMA CHANNEL
data. No cycles are lost in the master to master transfer
maximizing bus efficiency. A 2MHz clock input will
Figure 8. DMA Operation State Diagram allow the 8257 to transfer at a rate of 500K bytes/second.

Memory Mapped I/O Configurations


The 8257 can be connected to the system bus as a memory
DMA OPERATION
device instead of as an I/O device for memory mapped I/O
SlngK Byte Transfers configurations by connecting the system memory control
lines to the 8257s I/O control lines and the system I/O
A single byte transfer is initiated by the I/O device rais
control lines to the 8257s memory control lines.
ing the DRO line of one channel of the 8257. If the chan
nel is enabled, the 8257 will output a HRQ to the CPU. This configuration permits use of the 8080's considerably
The 8257 now waits until a HLOA is received insuring larger repertoire of memory instructions when reading or
that the system bus is free for its use. Once HLOA is loading the 8257s registers. Note that with this
received the DACK line for the requesting channel is ac connection, the programming of the Read (bit 15) and
tivated (LOW). The DACK line acts as a chip select for Write (bit 14) bits in the terminal count register will have a
the requesting I/O device. The 8257 then generates the different meaning

2-111 AFN 018400


8257/8257-5

BIT 15 BIT 14
READ WRITE
• - r MEMRD —

" ■ •' MEMWR — T7o"wr 0 DMA Verify Cycle


0
8257 .
I/ORD — « MEMRD 0 1 DMA Read Cycle
I/O WR — 1 0 DMA Write Cycle
1 1 Illegal

Figure 9. System Interface for Memory Figure 10. TC Register for Memory Mapped
Mapped I/O I/O Only

SYSTEM APPLICATION EXAMPLE!

\ ADDRESS BUS \

f>
\ CONTROL BUS
\

\ DATA BUS
\

U 0 U J\1$) U 0 U
DRQO DISK 1
SYSTEM
OACKO
-- RAM
DRQ1 MEMORY
DISK 2

AW 0ACK !
8212 DRQ2
OISK3
OACK 2

ORQ3

DACK3 DISK 4

DMA CONTROLLER

Figure 11. Floppy Disk Controller (4 Drives)

ADDRESS BUS

7T
CONTROL BUS

DATA BUS

u U 0 U
DRQ
82S7 SYSTEM
82S1
AND RAM
OACK USART
8212 MEMORY

MODEM

TELEPHONE
LINES

Rgure 12. High-Speed Communication Controller

2-112 AFN-O184OD
inter 8257/8257-5

A-C- TESTING INPUT, OUTPUT WAVEFORM A.C. TESTING LOAD CIRCUIT

INPUT/OUTPUT

2.4
2.0 2.0 DEVICE

TEST POINTS <^


UNDER
TEST

r
0.8 0.8
0.4S

AC TESTING INPUTS ARL DRtVLN AT 2 4V FOR A LOGIC 1 AND0 45V FOR


A IOGIC 0 TIMING MrASURCMINTS ARP MAOF. AT 2 OV FOR A LOGIC 1
AND 0 8V FOR A LOGIC 0
Ct INCLUOES JIG CAPACITANCE

Tracking Parameters
Signals labeled as Tracking Parameters (footnotes 1 and 6-7 under A.C. Specifications) are signals that follow similar
paths through the silicon die. The propagation speed of these signals varies in the manufacturing process but the
relationship between all these parameters is constant. The variation is less than or equal to 50 ns.
Suppose the following timing equation is being evaluated,

Ta(Min> ♦ Tb(max) * 150 ns


and only minimum specifications exist for TA and TB. If T^min) is used, and if TA and TB are tracking parameters,
Tb<max) can be taken as Tb<min) + 50 n«-
Tacmin) + (Tb<min)# + 50 ns) s 150 ns
*if TA and TB are tracking parameters

WAVEFORMS—PERIPHERAL MODE

WRITE

CHIPSCLCCT

READ

\ /"
AOORESS6US
CHIP SELECT

- H
OAT A BUS
AOORESSBUS
X
L— taw 1
—*>!
—r

Y
i>
f
1 0 HO

RESET
OATA BUS

- T«$TO H

vcc

2-113 AFN-01840O
t*%*ria^

8257/8257-5

WAVEFORMS—DMA .-^c T.

CONSECUTIVE CYCLES AND BURST MODE SEQUENCE


SI I SI I SO S1 I S2 I S3 I S4

rur

ORQO 3
=5):

TOM-
T«$-

AOR 0 7 (LOWER AOR»— — —

DATAO 7IUPPER AOR)— — — —<

Ta$$ -

AOR STB

MEM/RO/I'O RO— — —

"TOCT

MCM/WR/I/O WR — ^ —
.__y

/ v

NOTf:
I SI I SO I SI I S2 . I S3 I S4 I SI I SI -1 S3 I S4 I SI I SI I SI
o«wdocli -mut.

2-114- AFN-01840O
8257/825?t5 *T»

WAVEFORMS (Continued)

CONTROL OVERRIOE SEQUENCE

SI | S2
1 « j
1 ". 1 M 1 a 84 i
St | SI

CLOCK \__/ \ /

ORQ 0 3 x^ \

HRQ \

-1
HLOA

TA€L "^ : h-
AEN
J
-

NOT READY SEQUENCE

SI | SI
1 "
so SI I S2

CLOCK f^ u
ORQ0 3 "v

6ACKTT3 \ r

f~ \ / S- -

T
— -A
j
RCAOY / \

TC/MARK
/

2-115 AFN-01MOO
^

inter 8257/8257-5

AOORCtt
BUS

00,-00,
$TB
13
DS2
•212

MO
D»>—01, 0S1

AD,

DATA BUS

Oo

A,

O,

i
o.
HENRI CONTROL

CHIP
ol SELECT REAOV

■i L
SCL (Bl T1S
10/0
CS REAOV
HOLD
o,
MLOA

CLK (OUT}

Rf$f T iR
RESET OUT
3 ^
MEMR ORO, ►22- ORQ.
_1 25
m DACK« 6~AC~K«
4 ^
M6MW ORO, ORO,

IOW
Sack,
ORQ,
14
HRO DACK, OACK,
16
HLOA ORO, ORO,
IS
OACK,

CLK TC TC

RESET MARK

OS2 CLR ST8

OO,

• t212 •
01. OO,

MO 6S1

Hgure 13. Detailed System Interface Schematic

2-1*16 AFN41840D
inter

ABSOLUTE MAXIMUM RATINGS* •NOTICE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional opera
Ambient Temperature Under Bias 0°C to 70°C tion of the device at these or any other conditions above
Storage Temperature -65°C to +150°C those indicated in the operational sections of this specifi
Voltage on Any Pin cation is not implied. Exposure to absolute maximum
With Respect to Ground -0.5V to +7V rating conditions for extended periods may affect device
Power Dissipation 1 Watt reliability.

D.C. CHARACTERISTICS (8257: TA = 0°C to 70°C, VCc = 5.0V ±5%, GND = OV)
(8257-5: TA = 0°C to 70°C, VCc = 5.0V ±10%, GND = 0V)

Symbol Parameter Mln. Max. Unit Test Conditions

Input Low Voltage -0.5 0.8 Volts

V|H Input High Voltage 2.0 Vcc+5 Volts

V0L Output Low Voltage 0.45 Volts loL = 1.6 mA

V*)H Output High Voltage 2.4 Vcc Volts IOHe-150jiAforABf


DBandAEN
Ioh=-80/iA for others

Vhh HRQ Output High Voltage 3.3 vcc Volts Ioh - -80jiA
«CC Vcc Current Drain 120 mA

'it Input Leakage ±10 /iA 0V<V,N*VCC


lOFL Output Leakage During Float ±10 /iA 0.45V «£ Vquj ^ Vqq

CAPACITANCE (TA = 25°C; vcc = gnd = ov)

Symbol Parameter Mln. Typ. Max. Unit Test Conditions

ClN Input Capacitance 10 pF fc= 1MHz

Co I/O Capacitance • 20 , PF Unmeasured pins


returned to GND

2r117 AFN-01840D
8257/8257-5

A.C. CHARACTERISTICS—PERIPHERAL (SLAVE) MODE


(8257: TA =■ O°C to 70°C, VCc = 5.0V ±5%, GND » 0V)
(8257-5: TA - 0°C to 70eC, Vcc - 5.0V ±10%, QND = 0V)

8080 But Parameters


READ CYCLE

8257 8257-5

Symbol Parameter Min. Max. Min. Max. Unit Test Conditions

Tar Adr or CSi Setup to RD4 0 0 ns

Tra AdrorCSt Hold from RDt 0 0 ns

Trd Data Access from RDi 0 300 0 220 ns

Tdf DB-*Float Delay from RDt 20 150 20 120 ns

Trr RD Width 250 250 ns

WRITE CYCLE

8257 8257-5

Symbol Parameter Min. Max. Min. Max. Unit Test Conditions

TAW Adr Setup to WR 4 20 20 ns

TWA Adr Hold from WRt 0 0 ns

Tow Data Setup to WRt 200 200 ns

Two Data Hold from WRt 10 10 ns

TWW WR Width 200 200 ns

OTHER TIMING

8257 8257-5

Symbol Parameter Min. Max. Min. Max. Unit Test Conditions

Trstw Reset Pulse Width 300 300 ns

Trstd Power Supply t (Vcc) Setup to Reset 1 500 500 PS

Tf Signal Rise Time 20 20 ns

Tf Signal Fall Time 20 20 ns

Trsts Reset to First I/OWR 2 2 tCv

A.C. CHARACTERISTICS—DMA (MASTER) MODE


(8257: TA = 0°C to 70°C, VCc = 5.0V ±5%, GND = 0V)
(8257-5: TA « 0°C to 70°C, Vcc = 5.0V ±10%, GND = 0V)

TIMING REQUIREMENTS

8257 8257-5
Symbol Parameter Unit
Min. Max. Min. Max.

Tcv Cycle Time (Period) 0.320 4 0.320 4 MS

T, Clock Active (High) 120 8Tcy 80 8Tcy ns

Tqs DRQt Setup to CLK1 (SI, S4) 120 120 ns

T0H DRQI Hold from HLDAl'" 0 0 ....


ns

Ths HLDAI or ISetup to CLKI(SI, S4) 100 100 ns

Trs READY Setup Time to CLKI(S3, Sw) 30 30 ns

Trh READY Hold Time from CLKt(S3, Sw) 30 30 ns

■ \<ix* .- •'***■ 2-118 AFN-018400


8257/8257-5

A.C. CHARACTERISTICS—DMA (MASTER) MODE


(8257: TA = 0°C to 70°C, VCc = 5.0V ±5%. GND <= 0V)
(8257-5: TA = 0°C to 70°C. Vcc = 5.0V ±10%. GNO «= 0V)

TIMING RESPONSES

8257 8257-5
Symbol Parameter Unit
Mln. Max. Mln. Max.

HRQj or i Delay from CLKf (SI, S4)


TDQ 160 160 ns
(measured at 2.0V)

HRQT or i Delay from CLK| (SI, S4)


TDQ1 250 250 ns
(measured at 3.3V)131
Tael AENf Delay from CLKi(S1) 300 300 ns

Taet AENl Delay from CLK| (SI) 200 200 ns

TAEA Adr (AB) (Active) Delay from AENf (S1)m 20 20 ns

TFAAB Adr (AB) (Active) Delay from CLKf (S1)[21 250 250 ns

TAFAB Adr (AB) (Float) Delay from CLKf (SI)121 150 150 ns

TASM Adr (AB) (Stable) Delay from CLKf (S1)121 250 250 ns

TAH Adr (AB) (Stable) Hold from CLK| (S1)[21 TaSM-50 TASM-50 ns

TAHR Adr (AB) (Valid) Hold from RD| (S1. Sl)m 60 60 ns

TAHW Adr (AB) (Valid) Hold from Wr| (St. SI)111 300 300 ns

TFADB Adr (DB) (Active) Delay from CLKf (S1)[21 300 300 ns

TAFDB Adr (DB) (Float) Delay from CLK| (S2)[21 Tstt+20 250 TSTT+20 170 ns

TASS Adr (DB) Setup to Adr Stbi (S1-S2)M1 100 100 ns

TAHS Adr (DB) (Valid) Hold from Adr Stb| (S2)I1J 20 20 ns

Adr Stb| Delay from CLKf (S1) 200 200


TSTL ns

Adr Stb| Delay from CLKf (S2) 140 140


TSTT ns

TSW Adr Stb Width (S1-S2)111 Tcy-100 Tcy-100 ns

TASC Rd| or Wr(Ext)| Delay from Adr Stb|


(S2)[11 70 70 ns

RDj or WR(Ext)| Delay from Adr (DB)


20 20
TDBC (Float) (S2)111
ns

DACKf or | Delay from CLK| (S2, S1) and


TC/MarkJ Delay from CLK| (S3) and 250 250
TAK ns

TC/Markl Delay from CLKf (S4)141


RDi or Wr(Ext)| Delay from CLK| (S2) and
200 200
TDCL Wr| Delay from CLKf (S3)l2f5J
ns

Rdt Delay from CLKi (S1, SI) and


200 200
TDCT Wr| Delay from CLK| (S4)l2»6l
ns

TFAC Rd or Wr (Active) from CLKf (S1)[21 300 300 ns

TAFC Rd or Wr (Active) from CLK| (S1)l2) 150 150 ns

TRWM RdWidth(S2-S1orSI)111 2TCY+T0-5O 2TCY+T0-5O ns

TWWM Wr Width (S3-S4)m Tcy-50 Tcy-50 ns

T"WWME WR(Ext) Width (S2-S4)111 2TCY-50 2TCY-50 ns

NOTES:
1. Tracking Parameter. 3. Load = Vqh = 3.3V. 5- ATOCl < 50 ns.
2. Load = + 50 pF. 4. ATAK < 50 ns. 6. AT0CT < 50 ns.

2-119 AFN-018400

You might also like