10
Altera Corporation
a8237 Programmable DMA Controller Data Sheet
Registers
The
a8237
MegaCore function contains the following registers:
I
I
I
I
I
I
I
I
I
I
Base address
Current address
Base word count
Current word count
Command
Mode
Request
Mask
Status
Temporary
Base Address Register
Each of the four DMA channels has a base address register, which is a
16-bit register that contains the starting address for DMA transfers. If
auto-initialization is enabled, the
a8237
loads the base address value into
the current address register at the conclusion of a DMA cycle. The
microprocessor writes to the base address register in two parts via
dbin[7..0]
, and simultaneously loads the current address register. The
byte pointer flag chooses either the least significant or most significant
byte. The microprocessor cannot read the base address register.
Current Address Register
Each of the four DMA channels has a current address register, which is a
16-bit register containing the working address value for DMA transfers.
The microprocessor loads the current address register simultaneously
with the base address register via
dbin[7..0]
. If auto-initialization is
enabled, the
a8237
reloads the base address value at the conclusion of a
DMA cycle. The microprocessor reads or writes to the current address
register in two parts via the 8-bit data bus. The byte pointer flag chooses
the least significant or most significant byte. After each DMA transfer, the
current address value is updated with the incremented or decremented
value from the temporary address register (except for channel 0 in
memory-to-memory mode when the address can be held constant).