a8237 Programmable DMA Controller Data Sheet
The microprocessor can program the
a8237
when the
ncs
input and the
ain[3..0]
bus are asserted. When
niowin
and
ain[3..0]
are asserted,
the microprocessor writes data to internal registers via the
dbin[7..0]
bus. When
niorin
and
ain[3..0]
are asserted, the microprocessor reads
data from internal registers via the
dbout[7..0]
bus. See
“Host Processor
Write Timing”
and
“Host Processor Read Timing”
in
Figure 3.
The byte pointer bit must be toggled to the correct value before operating
on the DMA address register and word count register. The set byte
pointer and clear mode register counter commands can change the
contents of registers, effectively acting as write commands.
Register Address Map
Table 2
shows the register address map for the
a8237.
Table 2. Register Address Map
ain3 ain2 ain1 ain0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
3
2
1
Channel
0
Write
(1), (2)
Base and current DMA address register
Base and current DMA word count register
Base and current DMA address register
Base and current DMA word count register
Base and current DMA address register
Base and current DMA word count register
Base and current DMA address register
Base and current DMA word count register
Command register
Single request bit command
Single mask bit command
Mode register
Clear byte pointer command
Master clear command
Clear mask register command
Mask register
Read
(1), (2)
Current DMA address register
Current DMA word count register
Current DMA address register
Current DMA word count register
Current DMA address register
Current DMA word count register
Current DMA address register
Current DMA word count register
Status register
Request register
Command register
Mode register
Set byte pointer command
Temporary register
Clear mode register counter
Mask register
X
X
X
X
X
X
X
X
Notes:
(1)
If the byte pointer is set to 0, the byte pointer flag selects the least significant byte.
If the byte pointer is set to 1, the byte pointer flag selects the most significant byte.
The byte pointer flag is a single-bit internal register that selects either the least significant or most significant byte
of the 16-bit registers in the
a8237,
allowing the microprocessor to write and read via the 8-bit data bus. See
“Clear
Byte Pointer Command”
and
“Set Byte Pointer Command” on page 17
for more information.
The X indicates “don’t care.”
(2)
Altera Corporation
9