HS-82C37ARH TM Data Sheet Radiation Hardened CMOS High Performance Programmable DMA Controller The Intersil HS-82C37ARH is an enhanced, radiation hardened CMOS version of the industry standard 8237A Direct Memory Access (DMA) controller, fabricated using the Intersil hardened field, self-aligned silicon gate CMOS process. The HS-82C37ARH offers increased functionality, improved performance, and dramatically reduced power consumption for the radiation environment. The high speed, radiation hardness, and industry standard configuration of the HS-82C37ARH make it compatible with radiation hardened microprocessors such as the HS-80C85RH and the HS-80C86RH. August 2000 File Number 3042.2 Features • Electrically Screened to SMD # 5962-95821 • QML Qualified per MIL-PRF-38535 Requirements • Radiation Performance - Total Dose. . . . . . . . . . . . . . . . . . . . . 100 krad(Si) (Max) - Transient Upset . . . . . . . . . . . . . . . . . . . . .>108 rad(Si)/s - Latch Up Free EPI-CMOS • Low Power Consumption - IDDSB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50µA (Max) - IDDOP . . . . . . . . . . . . . . . . . . . . . . . 4.0mA/MHz (Max) • Pin Compatible with NMOS 8237A and the Intersil 82C37A The HS-82C37ARH can improve system performance by allowing external devices to transfer data directly to or from system memory. Memory-to-memory transfer capability is also provided, along with a memory block initialization feature. DMA requests may be generated by either hardware or software, and each channel is independently programmable with a variety of features for flexible operation. • High Speed Data Transfers Up To 2.5MBPS With 5MHz Clock Static CMOS circuit design insures low operating power and allows gated clock operation for an even further reduction of power. Multimode programmability allows the user to select from three basic types of DMA services, and reconfiguration under program control is possible even with the clock to the controller stopped. Each channel has a full 64K address and word count range, and may be programmed to autoinitialize these registers following DMA termination (end of process). The Intersil hardened field CMOS process results in performance equal to or greater than existing radiation resistant products at a fraction of the power. • Hardened Field, Self-Aligned, Junction Isolated CMOS Process Specifications for Rad Hard QML devices are controlled by the Defense Supply Center in Columbus (DSCC). The SMD numbers listed here must be used when ordering. Detailed Electrical Specifications for these devices are contained in SMD 5962-95821. A “hot-link” is provided on our homepage for downloading. www.intersil.com/spacedefense/space.asp 1 • Four Independent Maskable Channels with Autoinitialization Capability • Expandable to Any Number of Channels • Memory-to-Memory Transfer Capability • CMOS Compatible • Single 5V Supply • Military Temperature Range . . . . . . . . . . . -55oC to 125oC Ordering Information ORDERING NUMBER INTERNAL MKT. NUMBER TEMP. RANGE (oC) 5962R9582101QQC HS1-82C37ARH-8 -55 to 125 5962R9582101QXC HS9-82C37ARH-8 -55 to 125 5962R9582101VQC HS1-82C37ARH-Q -55 to 125 5962R9582101VXC HS9-82C37ARH-Q -55 to 125 CAUTION: These devices are sensitive to electrostatic discharge; follow proper IC Handling Procedures. 1-888-INTERSIL or 321-724-7143 | Intersil and Design is a trademark of Intersil Corporation. | Copyright © Intersil Corporation 2000 HS-82C37ARH Pinouts 40 LEAD CERAMIC DUAL-IN-LINE METAL SEAL PACKAGE (SBDIP) MIL-STD-1835 CDIP2-T40 TOP VIEW IOR 1 40 A7 IOW 2 39 A6 MEMR 3 38 A5 MEMW 4 37 A4 NC 42 LEAD CERAMIC METAL SEAL FLATPACK PACKAGE (FLATPACK) INTERSIL OUTLINE K42.A TOP VIEW IOR IOW MEMR MEMW 1 2 3 4 42 41 40 39 NC READY 5 6 38 37 7 8 36 35 A7 A6 A5 A4 EOP 5 36 EOP READY 6 35 A3 HLDA 7 34 A2 ADSTB 8 33 A1 HLDA ADSTB AEN 9 32 A0 AEN 9 34 A1 A0 HRQ 10 31 VDD CS 11 30 DB0 HRQ CS 10 11 33 32 VDD DB0 CLK 12 29 DB1 RESET 13 28 DB2 27 DB3 12 13 14 15 31 30 29 28 DB1 DB2 DB3 DACK2 14 CLK RESET DACK2 DACK3 DACK3 15 26 DB4 NC 16 27 17 18 19 20 26 25 24 23 NC DACK0 21 22 DREQ3 16 25 DACK0 DREQ2 17 24 DACK1 DREQ1 18 23 DB5 DREQ3 DREQ2 DREQ1 DREQ0 DREQ0 19 22 DB6 GND 20 21 DB7 (GND) VSS A3 A2 DB4 DACK1 DB5 DB6 DB7 Functional Diagram DECREMENTOR EOP TEMP WORD COUNT REG (16) RESET CS A0-A3 INC DECREMENTOR I/O BUFFER TEMP ADDRESS REG (16) 16-BIT BUS 16-BIT BUS READY OUTPUT BUFFER READ BUFFER BASE WORD COUNT (16) TIMING AND CONTROL AEN ADSTB BASE ADDRESS (16) MEMR BASE ADDRESS (16) BASE WORD COUNT (16) MEMW A8-A15 CLOCK A4-A7 COMMAND CONTROL IOR IOW WRITE BUFFER DREQ0DREQ3 HLDA HDQ DACK0DACK3 READ BUFFER D0-D1 DB0-DB7 4 4 PRIORITY ENCODER AND ROTATING PRIORITY LOGIC COMMAND (8) I/O BUFFER INTERNAL DATA BUS MASK (4) REQUEST (4) 2 MODE (4 x 6) STATUS (8) TEMPORARY (8) HS-82C37ARH Pin Descriptions SYMBOL PIN NUMBER VDD 31 VDD: is the +5V power supply pin. A 0.1µF capacitor between pins 31 and 20 is recommended for decoupling. GND 20 Ground CLK 12 I CLOCK INPUT: The Clock Input is used to generate the timing signals which control HS-82C37ARH operations. This input may be driven from DC to 5MHz and may be stopped in either high or low state for standby operation. CS 11 I CHIP SELECT: Chip Select is an active low input used to enable the controller onto the data bus for CPU communications. RESET 13 I RESET: This is an active high input which clears the Command, Status, Request and Temporary Registers, the First/Last Flip-Flop, and the Mode Register Counter. The Mask Register is Set to ignore requests. Following a Reset, the controller is in an idle cycle. READY 6 I READY: This signal can be sued to extend the memory read and write pulses from the HS-82C37ARH to accommodate slow memories or I/O devices. Ready must not make transitions during its specified set-up and hold times. Ready is ignored in Verify Transfer mode. HLDA 7 I HOLD ACKNOWLEDGE: The active high Hold Acknowledge from the CPU indicates that is has relinquished control of the system busses. DREQ0DREQ3 16-19 I DMA REQUEST: The DMA Request (DREQ) lines are individual asynchronous channel request inputs used by peripheral circuits to obtain DMA service. In Fixed Priority, DREQ0 has the highest priority and DREQ3 has the lowest priority. A request is generated by activating the DREQ line of a channel. DACK will acknowledge the recognition of DREQ signal. Polarity of DREQ is programmable. Reset initializes these lines to active. DREQ will not be recognized while the clock is stopped. Unused DREQ inputs should be pulled High or Low (inactive) and the corresponding mask bit set. DB0-DB7 21-23 26-30 I/O DATA BUS: The Data Bus lines are bidirectional three-state signals connected to the system data bus. The outputs are enabled in the Program Condition during the I/O Read to output the contents of a register to the CPU. The outputs are disabled and the inputs are read during an I/O Write cycle when the CPU is programming the HS-82C37ARH Control Registers. During DMA cycles, the most significant 8 bits of the address are output onto the data bus to be strobed into an external latch by ADSTB. In Memory-to-Memory operations, data from the memory enters the HS-82C37ARH on the data bus during the read-from-memory transfer, then during the write-to-memory transfer, the data bus outputs write the data into the new memory location. IOR 1 I/O I/O READ: I/O Read is a bidirectional active low three-state line. In the Idle cycle, it is an input control signal used by the CPU to read the internal registers. In the Active cycle, it is an output control signal used by the HS-82C37ARH to access data from a peripheral during a DMA Write transfer. IOW 2 I/O I/O WRITE: I/O Write is a bidirectional active low three-state line. In the Idle cycle, it is an input control signal used by the CPU to load information into the HS-82C37ARH. In the Active cycle, it is an output control signal used by the HS-82C37ARH to load data to the peripheral during a DMA Read transfer. EOP 36 I/O END OF PROCESS: End of Process (EOP) is an active low bidirectional signal. Information concerning the completion of DMA services is available at the bidirectional EOP pin. The HS-82C37ARH allows an external signal to terminate an active DMA service by pulling the EOP pin low. A pulse is generated by the HS-82C37ARH when terminal count (TC) for any channel is reached, except for channel 0 in Memory-to-Memory mode. During Memory-to-Memory transfers, EOP will be output when the TC for channel 1 occurs. The EOP pin is driven by an open drain transistor on-chip, and requires an external pull-up resistor. When an EOP pulse occurs, whether internally or externally generated, the HS-82C37ARH will terminate the service, and if Autoinitialize is enabled, the base registers will be written to the current registers of that channel. The mask bit and TC bit in the Status Register will be set for the currently active channel by EOP unless the channel is programmed for Autoinitialize. In that case, the mask bit remains clear. A0-A3 32-35 I/O Address: The four least significant address lines are bidirectional three-state signals. In the Idle cycle, they are inputs and are used by the HS-80C86RH to address the internal registers to be loaded or read. In the Active cycle, they are outputs and provide the lower 4 bits of the output address. A4-A7 37-40 O Address: The four most significant address lines are three-state outputs and provide 4 bits of address. These lines are enabled only during the Active cycle. TYPE 3 DESCRIPTION HS-82C37ARH Pin Descriptions (Continued) SYMBOL PIN NUMBER TYPE DESCRIPTION HRQ 10 O Hold Request: The Hold Request (HRQ) output is used to request control of the system bus. When a DREQ occurs and the corresponding mask bit is clear, or a software DMA request is made, the HS-82C37ARH issues HRQ. The HLDA signal then informs the controller when access to the system busses is permitted. For stand-alone operation where the HS-82C37ARH always controls the busses, HRQ may be tied to HLDA. This will result in one S0 state before the transfer. DACK0DACK3 14,15, 24, 25 O DMA Acknowledge: DMA acknowledge is used to notify the individual peripherals when one has been granted a DMA cycle. The sense of these lines is programmable. Reset initializes them to active low. AEN 9 O Address Enable: Address Enable enables the 8-bit latch containing the upper 8 address bits onto the system address bus. AEN can also be used to disable other system bus drivers during DMA transfers. AEN is active HIGH. ADSTB 8 O Address Strobe: This is an active high signal used to control latching of the upper address byte. It will drive directly the strobe input of external transparent octal latches, such as the 82C82. During block operations, ADSTB will only be issued when the upper address byte must be updated, thus speeding operation through elimination of S1 states. (See Note 2). MEMR 3 O Memory Read: The Memory Read signal is an active low three-state output used to access data from the selected memory location during a DMA Read or a Memory-to-Memory transfer. MEMW 4 O Memory Write: The Memory Write is an active low three-state output used to write data to the selected memory location during a DMA Write or a Memory-to-Memory transfer. NC 5 No connect. Pin 5 is open and should not be tested for continuity. AC Test Circuit AC Testing Input, Output Waveforms V1 VOH VDD -1.5V 1.5V INPUT R1 VIL -0.4V OUTPUT FROM DEVICE UNDER TEST OUTPUT VOL TEST POINT C1† Z VOL TEST CONDITION DEFINITION TABLE V1 R1 C1 All Output Except EOP 1.7V 510Ω 100pF EOP VDD 1.6kΩ 50pF 4 VOH 2.0V 0.8V †Includes Stray and Jig Capacitance PINS OUTPUT L OR H L OR H VOH VOH - 0.45V 0.45 Z HS-82C37ARH Waveforms CS TIWHAX TIWLIWH IOW TAVIWL A0-A3 TIWHAX INPUT VALID TIWHDX TDVIWH DB0-DB7 INPUT VALID FIGURE 1. SLAVE MODE TIMING NOTE: Host system must allow at least TCLCL as recovery time between successive write accesses. CS A0-A3 ADDRESS MUST BE VALID TAVIRL TIRHAX TIRLIRH IOR TIRLDV TIRHDZ DB0-DB7 DATA OUT VALID FIGURE 2. SLAVE MODE READ NOTE: Host system must allow at least TCLCL as recovery time between successive write accesses. S2 S3 SW SW S4 CLK TCHRH TCHRWL READ† TCHRWL TCHRWL WRITE† EXTENDED WRITE TCLRYX TRYVCL TCHWH TCLRYX TRYVCL READY FIGURE 3. READY †READ refers to both IOR and MEMR outputs. WRITE refers to both IOW and MEMW outputs. 5 HS-82C37ARH Waveforms SI (Continued) SI S0 S1 S0 S2 S3 S4 S2 S3 S4 S1 SI SI CLK TDQVCL TDQVCL TCLCL TCLCH DREQ TCHRQV TCHCL TCHRQV HRQ TRAVCH HLDA TCLAEH AEN TCHAEL TCLSL TCLSH TSHSL TEPLCL ADSTB TDVSL DB0-DB7 TCLDAV TSLDZ TCHDV A8-A15 TCHAV TCHAV A0-A7 ADDRESS VALID TWHAZ ADDRESS VALID TCLDAV TRHAX TCHRH DACK TCHAZ TWHAX TCHDZ TRHAZ TCHRWL TCHRH TCHRWV TCHRWL TWHRH TCHRWZ TRLRH1 READ† TCHWH TCHRWL TCHWH TWLWH2 WRITE† TWLWH1 INT EOP TCHRWL TCHIPH (FOR EXTENDED WRITE) TEPLEPH TCHIPL EXT EOP FIGURE 4. DMA TRANSFER †READ refers to both IOR and MEMR outputs. WRITE refers to both IOW and MEMW outputs. 6 HS-82C37ARH Waveforms (Continued) S0 S11 S12 S13 S14 S21 S22 S23 S24 SI CLK TCLSH TCLSL TCLSH TCLSL ADSTB TSLDZ TCHAV TSLDZ TCHAV A0 - A7 ADDRESS VALID TCHAZ ADDRESS VALID TCHDZ TCHDV DB0 - DB7 IN A8 - A15 TCHRWL A8 - A15 TCHDV TCHRH TDVMWH TMRHDX MEMR OUT TMWHDZ TDVMRH TCHWH TCHRVW TCHRWL TCHRWL TCHRWZ EXTENDED WRITE TCHIPL INT EOP TCHIPH TEPLCL TEPLEPH FIGURE 5. MEMORY-TO-MEMORY TRANSFER TPHRSL VDD TRSHRSL RESET TRSLIRWL IOR OR IOW FIGURE 6. RESET 7 HS-82C37ARH Waveforms (Continued) S2 S4 S2 S4 CLK TCHAV TCHAV VALID A0 - A7 VALID TCHRH TCHRWL TCHRWL TCHRH TRLRH2 READ† TCHWH TCHWH WRITE† TCLRYX TRYVCL TCLRYX TRYVCL READY FIGURE 7. COMPRESSED TRANSFER †READ refers to both IOR and MEMR outputs. WRITE refers to both IOW and MEMW outputs. 8 HS-82C37ARH Burn-In Circuits HS-82C37ARH 40 LEAD SBDIP HS-82C37ARH 40 LEAD SBDIP VDD 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 F0 12 29 F1 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 VDD F0 1 40 LOAD 2 39 LOAD LOAD 3 38 LOAD LOAD 4 37 LOAD NC 5 36 6 35 7 34 LOAD 8 33 LOAD 9 32 LOAD 10 31 11 30 12 29 13 28 F5 14 27 F4 15 26 F3 F1 16 25 LOAD F2 17 24 LOAD F3 18 23 F2 F4 19 22 F1 20 21 F0 F0 F5 LOAD LOAD VDD 2.7kΩ STATIC CONFIGURATION NOTES: LOAD 1. VDD = +6.0V ±5% 2.7kΩ Part is Static Sensitive 2. TA = 125oC MinimumVoltage Must be Ramped 3. Resistors: R1 = 10kΩ ±10% (Pins 6, 7, 11-13, 17 - 20) R2 = 2.7kΩ ±5% (Pins 1, 2, 21-23, 24, 28-32, 34-39) F0 F1 START-UP TIMING NOTES: DYNAMIC CONFIGURATION NOTES: 4. F0 is 50% duty cycle square wave pulse burst. 10. VDD = 6.5V ±5% (Burn-In) 5. 1.0kHz ≤ F0 ≤ 100kHzF0 is left High after pulse burst 11. VDD = 6.0V ±5% (Life Test) 6. 10 cycles ≤ F0 Pulse Burst ≤ 1.0s 12. TA = 125oC Minimum 7. F1 = Single pulse with width equal to 2 cycles of F0 13. Part is Static Sensitive, Voltage Must be Ramped 8. F1 is left Low after pulse burst 14. Resistors: R1 = 10kΩ ±10% (Pins 6, 7, 11-13, 17 - 20) R2 = 2.7kΩ ±10% (Pins 1, 2, 22-24, 28-32, 34-37, and LOADS) 9. F1 pulse occurs after start of F0 and ends before F0. Input levels: 0.9VDD ≤ VIH ≤ VDD, -0.3V ≤ VIL ≤ 0.7V 9 HS-82C37ARH Burn-In Circuits (Continued) HS-82C37ARH 42 LEAD CERAMIC FLATPACK HS-82C37ARH 42 LEAD CERAMIC FLATPACK VDD 1 42 1 42 LOAD 2 41 2 41 LOAD 3 40 LOAD 3 40 LOAD 4 39 LOAD 4 39 LOAD 5 38 OPEN 5 38 6 37 6 37 7 36 7 36 8 35 LOAD 8 35 9 34 LOAD 9 34 LOAD 10 33 11 32 F0 10 33 11 32 F0 12 31 F0 12 31 F1 13 30 F5 13 30 F5 29 F4 VDD 14 29 LOAD 14 15 28 LOAD 15 28 16 27 OPEN 16 27 OPEN 17 26 F1 17 26 LOAD 18 25 F2 18 25 LOAD 19 24 F3 19 24 F2 20 23 F4 20 23 F1 21 22 21 22 F0 F3 VDD STATIC CONFIGURATION 2.7kΩ NOTES: 15. VDD = +6.0V ±5%Part is Static Sensitive LOAD 2.7kΩ 16. TA = 125oC MinimumVoltage Must be Ramped 17. Resistors: R1 = 10kΩ ±10% (Pins 6, 7, 11-13, 16-19) R2 = 2.7kΩ ±5% (Pins 1, 2, 21-23, 26-30, 32-36) F0 F1 START-UP TIMING NOTES: DYNAMIC CONFIGURATION NOTES: 18. F0 is 50% duty cycle square wave pulse burst. 24. VDD = 6.5V ±5% (Burn-In) 19. 1.0kHz ≤ F0 ≤ 100kHzF0 is left High after pulse burst 25. VDD = 6.0V ±5% (Life Test) 20. 10 cycles ≤ F0 Pulse Burst ≤ 1.0s 26. TA = 125oC Minimum 21. F1 = Single pulse with width equal to 2 cycles of F0 27. Part is Static Sensitive, Voltage Must be Ramped 22. F1 is left Low after pulse burst 28. Resistors: R1 = 10kΩ ±10% (Pins 6, 7, 11-13, 16-19) R2 = 2.7kΩ ±10% (Pins 1, 2, 21-23, 26-30, 32-36, and LOADS) 23. F1 pulse occurs after start of F0 and ends before F0. Input levels: 0.9VDD ≤ VIH ≤ VDD, -0.3V ≤ VIL ≤ 0.7V 10 HS-82C37ARH Irradiation Circuit R 1 40 LOAD 2 39 LOAD LOAD 3 38 LOAD LOAD 4 37 LOAD R 5 36 6 35 R LOAD VCC 2.7kΩ NC R OUT R 2.7kΩ R R 7 34 LOAD 8 33 LOAD 9 32 LOAD R 10 31 11 30 LOAD 2 12 29 LOAD 2 13 28 LOAD 2 LOAD 2 14 27 LOAD 2 LOAD 2 R 15 26 LOAD 2 16 25 LOAD 2 17 24 LOAD 2 18 23 LOAD 2 19 22 LOAD 2 20 21 LOAD 2 VSS R R R TOGGLE CLOCK RESET TOGGLE R R R R VSS VCC 5.5V LOAD 2 OUT 2.7kΩ VSS NOTES: 29. R = 47kΩ 30. Pins with Load: 3, 4, 8, 9, 10, 37-40 Pins with Load2: 14, 15, 21-30 Pins Brought Out: 12 (Clock), 13 (Reset) 31. VDD = 5.5V ±0.5V Functional Description The HS-82C37ARH Direct Memory Access Controller is designed to improve the data transfer rate in systems which must transfer data from an I/O device to memory, or move a block of memory to an I/O device. It will also perform memory-to-memory block moves, or fill a block of memory with data from a single location. Operating modes are provided to handle single byte transfers as well as discontinuous data streams, which allows the HS-82C37ARH to control data movement with software transparency. The DMA controller is a state-driven address and control signal generator, which permits data to be transferred directly from an I/O device to memory or vice versa without ever being stored in a temporary register. This can greatly increase the data transfer rate for sequential operations, compared with processor moves or repeated string instructions. Memory-to-Memory operations require temporary internal storage of the data byte between 11 generation of the source and destination addresses, so Memory-to-Memory transfers take place at less than half the rate of I/O operations, but still much faster than with central processor techniques. The maximum data transfer rate obtainable with the HS-82C37ARH is approximately 2.5 Mbytes/second, for an I/O operation using the compressed timing option and 5MHz clock. The block diagram of the HS-82C37ARH is shown on page 2. The Timing and Control Block, Priority Block, and internal registers are the main components. Figure 8 lists the name and size of the internal registers. The Timing and Control Block derives internal timing from the CLOCK input, and generates external control signals. The Priority Encoder Block resolves priority contention between DMA channels requesting service simultaneously. HS-82C37ARH NAME SIZE NUMBER Base Address Registers 16 bits 4 Base Word Count Registers 16 bits 4 Current Address Registers 16 bits 4 Current Word Count Registers 16 bits 4 Temporary Address Register 16 bits 1 Temporary Word Count Register 16 bits 1 Status Register 8 bits 1 Command Register 8 bits 1 Temporary Register 8 bits 1 Mode Registers 6 bits 4 Mask Registers 4 bits 1 Request Register 4 bits 1 FIGURE 8. HS-82C37ARH INTERNAL REGISTERS DMA Operation In a system, the HS-82C37ARH address and control outputs and data bus pins are basically connected in parallel with the system busses. An external latch is required for the upper address byte. While inactive, the controller’s outputs are in a high impedance state. When activated by a DMA request and bus control is relinquished by the host, the HS-82C37ARH drives the busses and generates the control signals to perform the data transfer. The operation performed by activating one of the four DMA request inputs has previously been programmed into the controller via the Command, Mode, Address, and Word Count Registers. For example, if a block of data is to be transferred from RAM to an I/O device, the starting address of the data is loaded into the HS-82C37ARH Current and Base Address Registers for a particular channel, and the length of the block is loaded into that channel’s Word Count Register. The corresponding Mode Register is programmed for a Memory-to-I/O operation (read transfer), and various options are selected by the Command Register and other Mode Register bits. The channel’s mask bit is cleared to enable recognition of a DMA request (DREQ). The DREQ can either be a hardware signal or a software command. Once initiated, the block DMA transfer will proceed as the controller outputs the data address, simultaneous MEMR and IOW pulses, and selects an I/O device via the DMA acknowledge (DACK) outputs. The data byte flows directly from the RAM to the I/O device. After each byte is transferred, the address is automatically incremented (or decremented) and the word count is decremented. The operation is then repeated for the next byte. The controller stops transferring data when the Word Count Register underflows, or an external EOP is applied. To further understand HS-82C37ARH operation, the states generated by each clock cycle must be considered. The 12 DMA controller operates in two major cycles, Active and Idle. After being programmed, the controller is normally Idle until a DMA request occurs on an unmasked channel, or a software request is given. The HS-82C37ARH will then request control of the system busses and enter the Active cycle. The Active cycle is composed of several internal states, depending on what options have been selected and what type of operation has been requested. The HS-82C37ARH can assume seven separate states, each composed of one full clock period. State I (SI) is the Idle state. It is entered when the HS-82C37ARH has no valid DMA requests pending, at the end of a transfer sequence, or when a Reset or Master Clear has occurred. While in SI, the DMA controller is inactive but may be in the Program Condition (being programmed by the processor.) State 0 (S0) is the first state of a DMA service. The HS-82C37ARH has requested a hold but the processor has not yet returned an acknowledge. The HS-82C37ARH may still be programmed until it has received HLDA from the CPU. An acknowledge from the CPU will signal that DMA transfers may begin. S1, S2, S3 and S4 are the working states of the DMA service. If more time is needed to complete a transfer than is available with normal timing, wait states (SW) can be inserted between S2 or S3 and S4 by the use of the Ready line on the HS-82C37ARH. Note that the data is transferred directly from the I/O device to memory (or vice versa) with IOR and MEMW (or MEMR and IOW) being active at the same time. The data is not read into or driven out of the HS-82C37ARH in I/O-to-memory or memory-to-I/O DMA transfers. Memory-to-Memory transfers require a read-from and a write-to-memory to complete each transfer. The states, which resemble the normal working states, use two-digit numbers for identification. Eight states are required for a single transfer. The first four states (S11, S12, S13, S14) are used for the read-from-memory half and the last four states (S21, S22, S23, S24) for the write-to-memory half of the transfer. Idle Cycle When no channel is requesting service, the HS-82C37ARH will enter the Idle cycle and perform “SI” states. In this cycle, the HS-82C37ARH will sample the DREQ lines on the falling edge of every clock cycle to determine if any channel is requesting a DMA service. Note that for standby operation where the clock has been stopped, DMA requests will be ignored. The device will respond to CS (chip select), in case of an attempt by the microprocessor to write or read the internal registers of the HS-82C37ARH. When CS is low and HLDA is low, the HS-82C37ARH enters the Program Condition. The CPU can now establish, change or inspect the internal definition of the part by reading from or writing to the internal registers. HS-82C37ARH The HS-82C37ARH may be programmed with the clock stopped, provided that HLDA is low and at least one rising clock edge has occurred after HLDA was driven low, so the controller is in an SI state. Address lines A0-A3 are inputs to the device and select which registers will be read or written. The IOR and IOW lines are used to select and time the read or write operations. Due to the number and size of the internal registers, an internal flip-flop is used to generate an additional bit of address. The bit is used to determine the upper or lower byte of the 16-bit Address and Word Count Registers. The flip-flop is reset by Master Clear or Reset. Separate software commands can also set or reset this flip-flop. Special software commands can be executed by the HS-82C37ARH in the Program Condition. These commands are decoded as sets of addresses with CS, IOR, and IOW. The commands do not make use of the data bus. Instructions include Set and Clear First/Last Flip-Flop, Master Clear, Clear Mode Register Counter, and Clear Mask Register. Active Cycle When the HS-82C37ARH is in the Idle cycle, and a software request or an unmasked channel requests a DMA service, the device will output an HRQ to the microprocessor and enter the Active cycle. It is in this cycle that the DMA service will take place, in one of four modes: Single Transfer Mode - In Single Transfer mode, the device is programmed to make one transfer only. The word count will be decremented and the address decremented or incremented following each transfer. When the word count “rolls over” from zero to FFFFH, a terminal count (TC) bit in the Status Register is set, an EOP pulse is generated, and the channel will Autoinitialize if this option has been selected. If not programmed to Autoinitialize, the mask bit will be set, along with the TC bit and EOP pulse. DREQ must be held active until DACK becomes active. If DREQ is held active throughout the single transfer (there-by triggering a second transfer), HRQ will still go inactive and release the bus to the system. Then it will again go active and, upon receipt of a new HLDA, another single transfer will be performed, unless a higher priority channel takes over. In HS-80C85RH or HS-80C86RH systems, this will ensure one full machine cycle execution between DMA transfers. Details of timing between the HS-82C37ARH and other bus control protocols will depend upon the characteristics of the microprocessor involved. Block Transfer Mode - In Block Transfer Mode, the device is activated by DREQ or software request and continues making transfers during the service until a TC, caused by word count going to FFFFH, or an external End of Process (EOP) is encountered. DREQ need only beheld active until DACK becomes active. Again, an Autoinitialization will occur at the end of the service if the channel has been programmed for that option. 13 Demand Transfer Mode - In Demand Transfer Mode the device continues making transfers until a TC or external EOP is encountered, or until DREQ goes inactive. Thus, transfers may continue until the I/O device has exhaust edits data capacity. After the I/O device has had a chance to catch up, the DMA service is reestablished by means of a DREQ. During the time between services when the micro-processor is allowed to operate, the intermediate values of address and word count are stored in the HS-82C37ARH Current Address and Current Word Count Registers. Higher priority channels may intervene in the demand process, once DREQ has gone inactive. Only an EOP can cause an Autoinitialization at the end of the service. EOP is generated either by TC or by an external signal. Cascade Mode - This mode is used to cascade more than one HS-82C37ARH for simple system expansion. The HRQ and HLDA signals from the additional HS-82C37ARH are connected to the DREQ and DACK signals respectively of a channel for the initial HS-82C37ARH. This allows the DMA requests of the additional device to propagate through the priority network circuitry of the preceding device. The priority chain is preserved and the new device must wait for its turn to acknowledge requests. Since the cascade channel of the initial HS-82C37ARH is used only for prioritizing the additional device, it does not output an address or control signals of its own so that there is no conflict with the cascaded device. The HS-82C37ARH will respond to DREQ and generate DACK but all other outputs except HRQ will be disabled. An external EOP will be ignored by the initial device, but will have the usual effect on the added device. Figure 9 shows two additional devices cascaded with an initial device using two of the previous channels. This forms a two-level DMA system. More HS-82C37ARHs could be added at the second level by using the remaining channels of the first level. Additional devices can also be added by cascading into the channels of the second level devices, forming a third level. HS-82C37ARH 2ND LEVEL HS-80C86RH MICROPROCESSOR HS-82C37ARH 1ST LEVEL HRQ HLDA DREQ DACK HRQ HLDA HS-82C37ARH DREQ DACK HRQ HLDA INITIAL DEVICE HS-82C37ARH ADDITIONAL DEVICES FIGURE 9. CASCADED HS-82C37ARHs When programming cascaded controllers, start with the first level (closest to the microprocessor). After RESET, the DACK outputs are programmed to be active low and are held in the high state. If they are used to drive HLDA directly, the second level device(s) cannot be programmed until DACK polarity is selected as active high on the initial device. Also, the initial device’s mask bits function normally on cascaded channels, so they may be used to inhibit second-level services. Transfer Types Each of the three active transfer modes can perform three different types of transfers. These are Read, Write and Verify. Write transfers move data from an I/O device to the memory by activating MEMW and IOR. Read transfers move data from memory to an I/O device by activating MEMR and IOW. Verify transfers are pseudo-transfers. The HS-82C37ARH operates as in Read or Write transfers generating addresses and responding to EOP, etc., however the memory and I/O control lines all remain inactive. Verify mode is not permitted for Memory-to-Memory operation. Ready is ignored during Verify transfers. Autoinitialize - By programming a bit in the Mode Register, a channel may be set up as an Autoinitialize channel. During Autoinitialization, the original values of the Current Address and Current Word Count Registers are automatically restored from the Base Address and Base Word Count Registers of that channel following EOP. The base registers are loaded simultaneously with the current registers by the microprocessor and remain unchanged throughout the DMA service. The mask bit is not set when the channel is in Autoinitialize. Following Autoinitialization, the channel is ready to perform another DMA service, without CPU intervention, as soon as a valid DREQ is detected, or software request made. 14 Memory-to-Memory - To perform block moves of data from one memory address space to another with minimum of program effort and time, the HS-82C37ARH includes a Memory-to-Memory transfer feature. Programming a bit in the Command Register selects channels 0 and 1 to operate as Memory-to-Memory transfer channels. The transfer is initiated by setting the software or hardware DREQ for channel 0. The HS-82C37ARH requests a DMA service in the normal manner. After HLDA is true, the device, using four-state transfers in Block Transfer Mode, reads data from the memory. The channel 0 Current Address Register is the source for the address used and is decremented or incremented in the normal manner. The data byte read from the memory is stored in the HS-82C37ARH internal Temporary Register. Another four-state transfer moves the data to memory using the address in channel 1’s Current Address Register and incrementing or decrementing it in the normal manner. The channel 1 Current Word Count Register is decremented. When the word count of channel 1 goes to FFFFH, a TC is generated causing an EOP output terminating the service. Channel 0 word count decrementing to FFFFH will not set the channel 0 TC bit in the Status Register or generate an EOP in this mode. It will cause an Autoinitialization of channel 0, if that option has been selected. If full Autoinitialization for a Memory-to-Memory operation is desired, the channel 0 and channel 1 word counts must be set equal before the transfer begins. Otherwise, if channel 0 underflows before channel 1, it will Autoinitialize and set the data source address back to the beginning of the block. If the channel 1 word count underflows before channel 0, the Memory-to-Memory DMA service will terminate, and channel 1 will Autoinitialize but channel 0 will not. In Memory-to-Memory Mode, Channel 0 may be programmed to retain the same address for all transfers. This allows a single byte to be written to a block of memory. This channel 0 address hold feature is selected by bit 1 in the Command Register. The HS-82C37ARH will respond to external EOP signals during Memory-to-Memory transfers, but will only relinquish the system busses after the transfer is complete (i.e., after an S24 state). Data comparators in block search schemes may use this input to terminate the service when a match is found. The timing of Memory-to-Memory transfers is found in Figure 5. Memory-to-Memory operations can be detected as an active AEN with no DACK outputs. Priority - The HS-82C37ARH has two types of priority encoding available as software selectable options. The first is Fixed Priority which fixes the channels in priority order based upon the descending value of their numbers. The channel with the lowest priority is 3 followed by 2, 1 and the highest priority channel, 0. After the recognition of any one channel for service, the other channels are prevented from interfering with the service until it is completed. HS-82C37ARH The second scheme is Rotating Priority. The last channel to get service becomes the lowest priority channel with the others rotating accordingly. The next lower channel from the channel serviced has highest priority on the following request: Priority rotates every time control of the system busses is returned to the processor. Rotating Priority 1ST SERVICE 2ND SERVICE HIGHEST 0 1 SERVICE Programming 3RD SERVICE 2 SERVICE 3 3 REQUEST 0 2 0 1 LOWEST 3 1 2 SERVICE With Rotating Priority in a single chip DMA system, any device requesting service is guaranteed to be recognized after no more than three higher priority services have occurred. This prevents any one channel from monopolizing the system. Regardless of which priority scheme is chosen, priority is evaluated every time a HLDA is returned to the HS-82C37ARH. Compressed Timing - In order to achieve even greater throughput where system characteristics permit, the HS-82C37ARH can compress the transfer time to two clock cycles. From Figure 4 it can be seen that state S3 is used to extend the access time of the read pulse. By removing state S3, the read pulse width is made equal to the write pulse width and a transfer consists only of state S2 to change the address and state S4 to perform the read/write. S1 states will still occur when A8-A15 need updating (see Address Generation). Timing for compressed transfers is found in Figure 7. EOP will be output in S2 if compressed timing is selected. Compressed Timing is not allowed for Memory-to-Memory transfers. Address Generation - In order to reduce pin count, the HS-82C37ARH multiplexes the eight higher order address bits on the data lines. State S1 is used to output the higher order address bits to an external latch from which they may be placed on the address bus. The falling edge of Address Strobe (ADSTB) is used to load these bits from the data lines to the latch. Address Enable (AEN) is used to enable the bits onto the address bus through a three-state enable. The lower order address bits are output by the HS-82C37ARH directly. Lines A0-A7 should be connected to the address bus. Figure 4 shows the time relationships between CLK, AEN, ADSTB, DB0-DB7 and A0-A7. During Block and Demand Transfer Mode service, which include multiple transfers, the addresses generated will be sequential. For many transfers the data held in the external address latch will remain the same. This data need only 15 change when a carry or borrow from A7 to A8 takes place in the normal sequence of addresses. To save time and speed transfers, the HS-82C37ARH executes S1 states only when updating of A8-A15 in the latch is necessary. This means for long services, S1 states and Address Strobes may occur only once every 256 transfers, a savings of 255 clock cycles for each 256 transfers. The HS-82C37ARH will accept programming from the host processor anytime that HLDA is inactive, and at least one rising clock edge has occurred after HLDA went low. It is the responsibility of the host to assure that programming and HLDA are mutually exclusive. Note that a problem can occur if a DMA request occurs on an unmasked channel while the HS-82C37ARH is being programmed. For instance, the CPU may be starting to reprogram the two byte Address Register of channel 1 when channel 1 receives a DMA request. If the HS-82C37ARH 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 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. 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 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 HS-82C37ARH the microprocessor in the Program Condition. 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 Autoinitialization, 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. These registers cannot be read by the microprocessor. 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 soft-ware 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 table and Figure 10 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 channel 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). Mask Register 7 6 5 4 3 2 1 BIT NUMBER 0 DON’T CARE 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 All four bits of the Mask Register may also be written with a single command. 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 both be ones. See the adjacent table and Figure 10 for Mode Register functions and addresses. Mode Register 7 6 6 5 4 3 2 1 4 3 2 1 BIT NUMBER 0 00 01 10 11 XX CHANNEL 0 SELECT CHANNEL 1 SELECTT 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 - The HS-82C37ARH 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. To set or reset a bit, the software loads the proper form of the data word. See Figure 10 for register address coding, and the following table 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. Request Register 7 7 5 6 5 4 3 2 1 BIT NUMBER 0 BIT NUMBER 0 0 CLEAR CHANNEL 0 MASK BIT 1 SET CHANNEL 0 MASK BIT DON’T CARE, WRITE ALL ONES, READ 0 CLEAR CHANNEL 1 MASK BIT 1 SET CHANNEL 1 MASK BIT DON’T CARE, WRITE BITS 4-7 ALL ONES, READ 00 01 10 11 SELECT CHANNEL 0 SELECT CHANNEL 1 SELECT CHANNEL 2 SELECT CHANNEL 3 0 1 RESET REQUEST BIT SET REQUEST BIT 0 CLEAR CHANNEL 2 MASK BIT 1 SET CHANNEL 2 MASK BIT 0 CLEAR CHANNEL 3 MASK BIT 1 SET CHANNEL 3 MASK BIT 16 Command Register - This 8-bit register controls the operation of the HS-82C37ARH. It is programmed by the microprocessor and is cleared by Reset or a Master Clear HS-82C37ARH instruction. The adjacent table lists the function of the command bits. See Figure 10 for Read and Write addresses. Command Register 7 6 5 4 3 2 1 BIT NUMBER 0 0 MEM-TO-MEM DISABLE 1 MEM-TO-MEM ENABLE 0 CH. 0 ADDR. HOLD DISABLE 1 CH. 0 ADDR. HOLD ENABLE X IF BIT 0 = 0 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 edge. Status Bits 4-7 are cleared upon Reset or Master Clear. Status Register 0 CONTROLLER ENABLE 1 CONTROLLER DISABLE 7 6 5 4 3 2 1 BIT NUMBER 0 0 NORMAL TIMING 1 COMPRESSED TIMING X IF BIT 0 = 1 0 FIXED PRIORITY 1 ROTATING PRIORITY 0 LATE WRITE SELECTION 1 EXTENDED WRITE SEL. X IF BIT 3 = 1 0 DREQ SENSE ACTIVE HIGH 1 DREQ SENSE ACTIVE LOW 1 1 1 1 CHANNEL 0 HAS REACHED TC CHANNEL 1 HAS REACHED TC CHANNEL 2 HAS REACHED TC CHANNEL 3 HAS REACHED TC 1 1 1 1 CHANNEL 0 REQUEST CHANNEL 1 REQUEST CHANNEL 2 REQUEST CHANNEL 3 REQUEST 0 DACK SENSE ACTIVE LOW 1 DACK SENSE ACTIVE HIGH Status Register - The Status Register contains information about the present status of the HS-82C37ARH and can be read by the microprocessor. 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. OPERATION Temporary Register - The Temporary Register is used to hold data during Memory-to-Memory transfers. Following the completion of the transfer, the last word moved can be read by the microprocessor by accessing this register. The Temporary Register always contains the last byte transferred in the previous Memory-to-Memory operation, unless cleared by a Reset or Master Clear. A3 A2 A1 A0 IOR IOW Read Status Register 1 0 0 0 0 1 Write Command Register 1 0 0 0 1 0 Read Request Register 1 0 0 1 0 1 Write Request Register 1 0 0 1 1 0 Read Command Register 1 0 1 0 0 1 Write Single Mask Bit 1 0 1 0 1 0 Read Mode Register 1 0 1 1 0 1 Write Mode Register 1 0 1 1 1 0 Set Byte Pointer F/F 1 1 0 0 0 1 Clear Byte Pointer F/F 1 1 0 0 1 0 Read Temporary Register 1 1 0 1 0 1 Master Clear 1 1 0 1 1 0 Clear Mode Reg. Counter 1 1 1 0 0 1 Clear Mask Register 1 1 1 0 1 0 Read All Mask Bits 1 1 1 1 0 1 Write All Mask Bits 1 1 1 1 1 0 FIGURE 10. SOFTWARE COMMAND CODES AND REGISTER CODES 17 HS-82C37ARH Software Commands There are special software commands which can be executed by reading or writing to the HS-82C37ARH. 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 HS-82C37ARH. This initializes the flip-flop to a known state 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 HS-82C37ARH 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 operations. 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. External EOP Operation The EOP pin is a bidirectional, open drain pin which may be driven by external signals to terminate DMA operation. Because EOP is an open drain pin an external pull-up resistor is required. The value of the external pull-up resistor used should guarantee a rise time of less than 125ns. It is important to note that the HS-82C37ARH will not accept external EOP signals when it is in an SI (Idle)state. The controller must be active to latch EXT EOP. Once latched, the EXT EOP will be acted upon during the next S2 state, unless the HS82C37ARH enters an Idle state first. In the latter case the latched EOP is cleared. External EOP pulses occurring between active DMA transfers in demand mode will not be recognized, since the HS-82C37ARH is in an SI state. 18 HS-82C37ARH SIGNALS OPERATION CS IOR IOW A3 A2 A1 A0 INTERNAL FLIP-FLOP Base and Current Address Write 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 A0-A7 A8-A15 Current Address Read 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 A0-A7 A8-A15 Base and Current Word Count Write 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 W0-W7 W8-W15 Current Word Count Read 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 W0-W7 W8-W15 Base and Current Address Write 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 A0-A7 A8-A15 Current Address Read 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 A0-A7 A8-A15 Base and Current Word Count Write 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 W0-W7 W8-W15 Current Word Count Read 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 W0-W7 W8-W15 Base and Current Address Write 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 A0-A7 A8-A15 Current Address Read 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 A0-A7 A8-A15 Base and Current Word Count Write 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 W0-W7 W8-W15 Current Word Count Read 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 W0-W7 W8-W15 Base and Current Address Write 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 A0-A7 A8-A15 Current Address Read 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 A0-A7 A8-A15 Base and Current Word Count Write 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 W0-W7 W8-W15 Current Word Count Read 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 W0-W7 W8-W15 CHANNEL 0 1 2 3 REGISTER DATA BUS DB0-DB7 FIGURE 11. WORD COUNT AND ADDRESS REGISTER COMMAND CODES Application Information Figure 12 shows an application for a DMA system utilizing the HS-82C37ARH DMA controller and the HS-80C86RH Microprocessor. In this application, the HS-82C37ARH DMA controller is used to improve system performance by allowing an I/O device to transfer data directly to or from system memory. Components The system clock is generated by the HS-82C85RH clock controllers generator and is inverted to meet the clock high and low times required by the HS-82C37ARH DMA controller. The four OR gates are used to support the HS-80C86RH Microprocessor in minimum mode by producing the control signals used by the processor to access memory or I/O. A decoder is used to generate chip select for the DMA controller and memory. The HS-82C37ARH multiplexes the most significant bits of the address on its data outputs (DB0 - 7), so the 82C82 octal latch is used to demultiplex the address. A three-state 19 inverter is used to generate the BHE signal using the A0 output of the HS-82C37ARH. Hold Acknowledge (HLDA) and Address Enable (AEN) are “ORed” together and used to deactivate the microprocessors 82C82 transceiver to insure that the DMA controller does not have bus contention with the microprocessor. Operation A DMA request (DREQ) is generated by the I/O device. After receiving the DMA request, the DMA controller will issue a Hold Request (HRQ) to the processor. The system busses are not released to the DMA controller until a Hold Acknowledge (HLDA) signal is returned to the DMA controller from the HS-80C86RH processor. After the Hold Acknowledge has been received, addresses and control signals are generated by the DMA controller to accomplish the DMA transfers. Data is transferred directly from the I/O device to memory (or vice versa) with IOR and MEMW (or MEMR and IOW) being active. Note that data is not read into or driven out of the DMA controller in I/O-to-Memory or Memory-to-I/O data transfers. HS-82C37ARH MEMCS HLDA VDD DECODER HS-82C37ARH HS-82C85RH HLDA HRQ ALE STB AD0 CLK ADDRESS BUS CLK CS ADSTB AEN OE EOP HLDA IOR IOW AD15 MEMR STB 82C82 M/10 RD WR BHE OE VDD MEMW HRQ 82C82 A0-7 DATA BUS MN/MX DB0-7 DREQ0 DACK0 HS-80C86RH BHE A0 MEMR MEMW ADDRESS BUS I/O DEVICE IOR CS MEMORY IOW MEMCS DREQ DATA BUS IOR MEMR MEMW IOW FIGURE 12. APPLICATION FOR DMA SYSTEM 20 HS-82C37ARH Die Characteristics DIE DIMENSIONS: Top Metallization: 215mils x 232mils x 19mils ±1mil Type: Al/Si Thickness: 11kÅ ± 2kÅ INTERFACE MATERIALS: ADDITIONAL INFORMATION: Glassivation: Worst Case Current Density: Thickness: 8kÅ ± 1kÅ 7.9 x 104 A/cm2 Metallization Mask Layout (35) A3 (36) EOP (37) A4 (38) A5 (39) A6 (40) A7 (1) IOR (2) IOW (3) MEMR (4) MEMW (5) NC (6) READY HS-82C37ARH HLDA (7) (34) A2 ADSTB (8) (33) A1 AEN (9) (32) A0 HRQ (10) (31) VDD CS (11) (30) DB0 (29) DB1 CLK (12) (28) DB2 RESET (13) (27) DB3 DACK2 (14) DACK0 (25) DACK1 (24) DB5 (23) DB6 (22) DB7 (21) VSS (20) DREQ0 (19) DREQ1 (18) DREQ2 (17) DREQ3 (16) DACK3 (15) (26) DB4 All Intersil semiconductor products are manufactured, assembled and tested under ISO9000 quality systems certification. Intersil semiconductor products are sold by description only. Intersil Corporation reserves the right to make changes in circuit design and/or specifications at any time without notice. Accordingly, the reader is cautioned to verify that data sheets are current before placing orders. Information furnished by Intersil is believed to be accurate and reliable. However, no responsibility is assumed by Intersil or its subsidiaries for its use; nor for any infringements of patents or other rights of third parties which may result from its use. No license is granted by implication or otherwise under any patent or patent rights of Intersil or its subsidiaries. For information regarding Intersil Corporation and its products, see web site www.intersil.com 21