10
FN2967.4
October 2, 2015
82C37A
reprogram the two byte Address register of channel 1 when
channel 1 receives a DMA request. If the 82C37A is enabled
(bit 2 in the Command register is 0), and channel 1 is
unmasked, a DMA service will occur after only one byte of
the Address register has been reprogrammed. This
condition can be avoided by disabling the controller (setting
bit 2 in the Command register) or masking the channel
before programming any of its registers. Once the
programming is complete, the controller can be
enabled/unmasked.
After power-up it is suggested that all internal locations be
loaded with some known value, even if some channels are
unused. This will aid in debugging.
Register Description
Current Address Register - Each channel has a 16-bit
Current Address register. This register holds the value of the
address used during DMA transfers. The address is
automatically incremented or decremented by one after each
transfer and the values of the address are stored in the
Current Address register during the transfer. This register is
written or read by the microprocessor in successive 8-bit
bytes. See Figure 6 for programming information. It may also
be reinitialized by an Autoinitialize back to its original value.
Autoinitialize takes place only after an EOP
. In memory-to-
memory mode, the channel 0 Current Address register can
be prevented from incrementing or decrementing by setting
the address hold bit in the Command register.
Current Word Count Register - Each channel has a 16-bit
Current Word Count register. This register determines the
number of transfers to be performed. The actual number of
transfers will be one more than the number programmed in
the Current Word Count register (i.e., programming a count
of 100 will result in 101 transfers). The word count is
decremented after each transfer. When the value in the
register goes from zero to FFFFH, a TC will be generated.
This register is loaded or read in successive 8-bit bytes by
the microprocessor in the Program Condition. See Figure 6
for programming information. Following the end of a DMA
service it may also be reinitialized by an Autoinitialization
back to its original value. Autoinitialization can occur only
when an EOP
occurs. If it is not Autoinitialized, this register
will have a count of FFFFH after TC.
Base Address and Base Word Count Registers - Each
channel has a pair of Base Address and Base Word Count
registers. These 16-bit registers store the original value of
their associated current registers. During Autoinitialize these
values are used to restore the current registers to their
original values. The base registers are written
simultaneously with their corresponding current register in 8-
bit bytes in the Program Condition by the microprocessor.
See Figure 6 for programming information. These registers
cannot be read by the microprocessor.
Command Register - This 8-bit register controls the
operation of the 82C37A. It is programmed by the
microprocessor and is cleared by RESET or a Master Clear
instruction. The following diagram lists the function of the
Command register bits. See Figure 4 for Read and Write
addresses.
Mode Register - Each channel has a 6-bit Mode register
associated with it. When the register is being written to by
the microprocessor in the Program condition, bits 0 and 1
determine which channel Mode register is to be written.
When the processor reads a Mode register, bits 0 and 1 will
Command Register
76543210 BIT NUMBER
0
1
Memory-to-memory disable
Memory-to-memory enable
0
1
X
Channel 0 address hold disable
Channel 0 address hold enable
If bit 0 = 0
0
1
Controller enable
Controller disable
0
1
X
Normal timing
Compressed timing
If bit 0 = 1
0
1
Fixed priority
Rotating priority
0
1
X
Late write selection
Extended write selection
If bit 3 = 1
0
1
DREQ sense active high
DREQ sense active low
0
1
DACK sense active low
DACK sense active high
82C37A
11
FN2967.4
October 2, 2015
82C37A
both be ones. See the following diagram and Figure 4 for
Mode register functions and addresses.
Request Register - The 82C37A can respond to requests
for DMA service which are initiated by software as well as by
a DREQ. Each channel has a request bit associated with it in
the 4-bit Request register. These are non-maskable and
subject to prioritization by the Priority Encoder network.
Each register bit is set or reset separately under software
control. The entire register is cleared by a Reset or Master
Clear instruction. To set or reset a bit, the software loads the
proper form of the data word. See Figure 4 for register
address coding, and the following diagram for Request
register format. A software request for DMA operation can
be made in block or single modes. For memory-to-memory
transfers, the software request for channel 0 should be set.
When reading the Request register, bits 4-7 will always read
as ones, and bits 0-3 will display the request bits of channels
0-3 respectively.
Mask Register - Each channel has associated with it a mask
bit which can be set to disable an incoming DREQ. Each
mask bit is set when its associated channel produces an EOP
if the channel is not programmed to Autoinitialize. Each bit of
the 4-bit Mask register may also be set or cleared separately
or simultaneously under software control. The entire register
is also set by a Reset or Master clear. This disables all
hardware DMA requests until a Clear Mask Register
instruction allows them to occur. The instruction to separately
set or clear the mask bits is similar in form to that used with
the Request register. Refer to the following diagram and
Figure 4 for details. When reading the Mask register, bits 4-7
will always read as logical ones, and bits 0-3 will display the
mask bits of channels 0-3, respectively. The 4 bits of the Mask
register may be cleared simultaneously by using the Clear
Mask Register command (see software commands section).
All four bits of the Mask register may also be written with a
single command.
Status Register - The Status register is available to be read
out of the 82C37A by the microprocessor. It contains
information about the status of the devices at this point. This
information includes which channels have reached a terminal
count and which channels have pending DMA requests. Bits
0-3 are set every time a TC is reached by that channel or an
external EOP is applied. These bits are cleared upon RESET,
Master Clear, and on each Status Read. Bits 4-7 are set
whenever their corresponding channel is requesting service,
regardless of the mask bit state. If the mask bits are set,
software can poll the Status register to determine which
channels have DREQs, and selectively clear a mask bit, thus
allowing user defined service priority. Status bits 4-7 are
updated while the clock is high, and latched on the falling
Mode Register
76543210 BIT NUMBER
00
01
10
11
XX
Channel 0 select
Channel 1 select
Channel 2 select
Channel 3 select
Readback
00
01
10
11
XX
Verify transfer
Write transfer
Read transfer
Illegal
If bits 6 and 7 = 11
0
1
Autoinitialization disable
Autoinitialization enable
0
1
Address increment select
Address decrement select
00
01
10
11
Demand mode select
Single mode select
Block mode select
Cascade mode select
Request Register
76543210 BIT NUMBER
00
01
10
11
Select Channel 0
Select Channel 1
Select Channel 2
Select Channel 3
0
1
Reset request bit
Set request bit
Don’t Care,
Write
Bits 4-7
All Ones,
Read
Mask Register
76543210 BIT NUMBER
00
01
10
11
Select Channel 0 mask bit
Select Channel 1 mask bit
Select Channel 2 mask bit
Select Channel 3 mask bit
0
1
Clear mask bit
Set mask bit
76543210 BIT NUMBER
0
1
Clear Channel 0 mask bit
Set Channel 0 mask bit
0
1
Clear Channel 1 mask bit
Set Channel 1 mask bit
0
1
Clear Channel 2 mask bit
Set Channel 2 mask bit
0
1
Clear Channel 3 mask bit
Set Channel 3 mask bit
Don’t Care
Don’t Care,
Write
All Ones,
Read
12
FN2967.4
October 2, 2015
82C37A
edge. Status Bits 4-7 are cleared upon RESET or Master
Clear.
Temporary Register - The Temporary register is used to
hold data during memory-to-memory transfers. Following the
completion of the transfers, the last byte moved can be read
by the microprocessor. The Temporary register always
contains the last byte transferred in the previous memory-to-
memory operation, unless cleared by a Reset or Master
Clear.
Software Commands
There are special software commands which can be
executed by reading or writing to the 82C37A. These
commands do not depend on the specific data pattern on the
data bus, but are activated by the I/O operation itself. On
read type commands, the data value is not guaranteed.
These commands are:
Clear First/Last Flip-Flop - This command is executed
prior to writing or reading new address or word count
information to the 82C37A. This command initializes the flip-
flop to a known state (low byte first) so that subsequent
accesses to register contents by the microprocessor will
address upper and lower bytes in the correct sequence.
Set First/Last Flip-Flop - This command will set the flip-flop
to select the high byte first on read and write operations to
address and word count registers.
Master Clear - This software instruction has the same effect
as the hardware Reset. The Command, Status, Request,
and Temporary registers, and Internal First/Last Flip-Flop
and mode register counter are cleared and the Mask register
is set. The 82C37A will enter the idle cycle.
Clear Mask Register - This command clears the mask bits
of all four channels, enabling them to accept DMA requests.
Clear Mode Register Counter - Since only one address
location is available for reading the Mode registers, an
internal two-bit counter has been included to select Mode
registers during read operation. To read the Mode registers,
first execute the Clear Mode Register Counter command,
then do consecutive reads until the desired channel is read.
Read order is channel 0 first, channel 3 last. The lower two
bits on all Mode registers will read as ones.
Status Register
76543210 BIT NUMBER
1 Channel 0 has reached TC
1 Channel 1 has reached TC
1 Channel 2 has reached TC
1 Channel 3 has reached TC
1 Channel 0 request
1 Channel 1 request
1 Channel 2 request
1 Channel 3 request
OPERATION A3A2A1A0IORIOW
Read Status Register 100001
Write Command Register 100010
Read Request Register 100101
Write Request Register 100110
Read Command Register 101001
Write Single Mask Bit 101010
Read Mode Register 101101
Write Mode Register 101110
Set First/Last F/F 110001
Clear First/Last F/F 110010
Read Temporary Register 110101
Master Clear 110110
Clear Mode Reg. Counter 111001
Clear Mask Register 111010
Read All Mask Bits 111101
Write All Mask Bits 111110
FIGURE 4. SOFTWARE COMMAND CODES AND REGISTER CODES

CS82C37A

Mfr. #:
Manufacturer:
Renesas / Intersil
Description:
Interface - I/O Expanders PERIPH DMACNTRLR 5V 8MHZ 44PLCC COM
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union

Products related to this Datasheet