IN82C55AN CHMOS PROGRAMMABLE PERIPHERAL INTERFACE The Integral IN82C55AN is a high-performance, CHMOS version of the industry standard IN82C55AN general purpose programmable I/O device which is designed for use with all Intel and most other microprocessors. It provides 24 I/O pins which may be individually programmed in 2 groups of 12 and used in 3 major modes of operation. In MODE 0, each group of 12 I/O pins may be programmed in sets of 4 and 8 to be inputs or outputs. In MODE 1, each group may be programmed to have 8 lines of input or output. 3 of the remaining 4 pins are used for handshaking and interrupt control signals. MODE 2 is a strobed bi-directional bus configuration. FEATURES • • • • • • • • • • Compatible with all Intel and Most Other Microprocessors High Speed, «Zero Wait State» Operation with 8MHz 8086/88 and 80186/188 24 Programmable I/O Pins Low Power CHMOS Completely TTL Compatible Control Word Read-Back Capability Direct Bit Set/Reset Capability 2.5mA DC Drive Capability on all I/O Port Outputs Available in 40-Pin DIP Available in EXPRESS Standard Temperature Range Extended Temperature Range GROUP A CONTROL 8 BIT INTERNAL DATA BUS RD WR A1 A0 READ/ WRITE CONTROL LOGIC PA7-PA0 GROUP A PORT C UPPER (4) DATA BUS BUFFER D7-D0 GROUP A PORT A (8) GROUP B CONTROL PC7-PC4 GROUP B PORT C LOWER (4) PC3-PC0 GROUP B PORT B (8) PB7-PB0 Reset CS PA3 PA2 PA1 PA0 RD CS VSS A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 1. 2. 3. 4. 5. 6. 7. 8. 9. 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Figure 2 Figure 1 1 PA4 PA5 PA6 PA7 WR Reset D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3 IN82C55AN Symbol PA3-0 Pin number 1-4 Type I/O RD 5 I CS 6 I GND A1-0 7 8-9 I Name and Function PORT A, PINS 0-3: Lower nibble of an 8-bit data output latch buffer and an 8-bit data input latch. READ CONTROL: This input is low during CPU read operations. CHIP SELECT: A low on this input enables the 82C55A to respond to RD and WR signals RD and WR are ignored otherwise. System Ground. ADDRESS: These input signals in conjunction RD and WR control the selection of one of the three ports or the control word registers. Input Operation (Read) A1 A0 CS WR RD Port A - Data Bus 0 0 0 1 0 Port B - Data Bus 0 1 0 1 0 Port C - Data Bus 1 0 0 1 0 Control Word - Data Bus 1 1 0 1 0 Output Operation (Write) 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 Data Bus - Port A Data Bus - Port B Data Bus - Port C Data Bus – Control Disable Function PC7-4 10-13 I/O PC0-3 PB0-7 14-17 18-25 I/O I/O VCC D7-0 26 27-34 I/O RESET 35 I WR 36 I PA7-4 37-40 I/O Data Bus-3-State x x x x 1 Data Bus-3-State x x 1 1 0 PORT C, PINS 4-7: Upper nibble of an 8-bit data output latch/buffer and an 8-bit data input buffer (no latch for input). This port can be divided into two 4-bit ports under the mode control. Each 4-bit port contains a 4-bit latch and it can be used for the control signal outputs and status signal inputs in conjunction with ports A and B. PORT C, PINS 0-3: Lower nibble of Port C. PORT B, PINS 0-7: An 8-bit data output latch/buffer and an 8bit data input buffer SYSTEM POWER: +5V Power Supply DATA BUS: Bi-directional, tri-state data bus lines, connected to system data bus RESET: A high on this input clears the control register and all ports are set to the input mode WRITE CONTROL: This input is low during CPU write operations PORT A PINS 4-7: Upper nibble of an 8-bit data output latch/buffer and an 8-bit data input latch 2 IN82C55AN IN82C55AN FUNCTIONAL DESCRIPTION General The IN82C55AN is a programmable peripheral interface device designed for use in Intel microcomputer systems. Its function is that of a general purpose I/O component to interface peripheral equipment to the microcomputer system bus. The functional configuration of the IN82C55AN is programmed by the system software so that normally no external logic is necessary to interface peripheral devices or structures. Data Bus Buffer This 3-state bidirectional 8-bit buffer is used to interface the IN82C55AN to the system data bus. Data is transmitted or received by the buffer upon execution of input or output instructions by the CPU. Control words and status information are also transferred through the data bus buffer. Read/Write and Control Logic The function of this block is to manage all of the internal and external transfers of both Data and Control or Status words. It accepts inputs from the CPU Address and Control busses and in turn, issues commands to both of the Control Groups. Group A and Group B Controls The functional configuration of each port is programmed by the systems software. In essence, the CPU “outputs” a control word to the IN82C55AN. The control word contains information such as “mode”, “bit set”, “bit reset”, etc., that initializes the functional configuration of the 82C55A. Each of the Control blocks (Group A and Group B) accepts “commands” from the Read/Write Control Logic, receives “control words” from the internal data bus and issues the proper commands to its associated ports. Control Group A - Port A and Port C upper (C7 - C4) Control Group B - Port B and Port C lower (C3 - C0) The control word register can be both written and read as shown in the address decode table in the pin descriptions. Figure 6 shows the control word format for both Read and Write operations. When the control word is read, bit D7 will always be a logic “1”, as this implies control word mode information. Ports A, B, and C The IN82C55AN contains three 8-bit ports (A, B, and C). All can be configured in a wide variety of functional characteristics by the system software but each has its own special features or “personality” to further enhance the power and flexibility of the IN82C55AN. Port A. One 8-bit data output latch/buffer and one 8-bit input latch/buffer. Both “pull-up” and “pull-down” bus hold devices are present on Port A. Port B. One 8-bit data input/output latch/buffer. Only “pull-up” bus hold devices are present on Port B. Port C. One 8-bit data output latch/buffer and one 8-bit data input buffer (no latch for input). This port can be divided into two 4-bit ports under the mode control. Each 4-bit port contains a 4-bit latch and it can be used for the control signal outputs and status signal inputs in conjunction with ports A and B. Only “pull-up” bus hold devices are present on Port C. See Figure 4 for the bus-hold circuit configuration for Port A, B, and C. 3 IN82C55AN GROUP A CONTROL GROUP A PORT A (8) GROUP A PORT C UPPER (4) DATA BUS BUFFER D7-D0 8 BIT INTERNAL DATA BUS RD WR A1 A0 READ/ WRITE CONTROL LOGIC GROUP B CONTROL PA7-PA0 PC7-PC4 GROUP B PORT C LOWER (4) PC3-PC0 GROUP B PORT B (8) PB7-PB0 Reset CS Figure 3. IN82C55AN Block Diagram Showing Data Bus Buffer and Read Write Control Logic Functions * RESET EXTERNAL INTERNAL PORT A DATA OUT PIN INTERNAL DATA IN INTERNAL DATA OUT VCC WR RESET P* EXTERNAL PORT B,C PIN INTERNAL DATA OUT WR *NOTE: Port pins loaded with more than 20pF capacitance may not have their logic level guaranteed following a hardware reset. Figure 4. Port A, B, C, Bus-hold Configuration 4 IN82C55AN IN82C55AN OPERATIONAL DESCRIPTION Mode Selection There are three basic modes of operation that can be selected by the system software: Mode 0 - Basic input/output Mode 1 - Strobed Input/output Mode 2 - Bi-directional Bus When the reset input goes “high” all ports will be set to the input mode with all 24 port lines held at a logic “one” level by the internal bus hold devices (see Figure 4 Note). After the reset is removed the IN82C55AN can remain in the input mode with no additional initialization required. This eliminates the need for pullup or pulldown devices in “all CMOS” designs. During the execution of the system program, any of the other modes may be selected by using a single output instruction. This allows a single IN82C55AN to service a variety of peripheral devices with a simple software maintenance routine. The modes for Port A and Port B can be separately defined, while Port C is divided into two portions as required by the Port A and Port B definitions. All of the output registers, including the status flip-flops, will be reset whenever the mode is changed. Modes may be combined so that their functional definition can be “tailored” to almost any I/O structure. For instance; Group B can be programmed in Mode 0 to monitor simple switch closings or display computational results, Group A could be programmed in Mode 1 to monitor a keyboard or tape reader on an interrupt-driven basis. ADRESS BUS CONTROL BUS DATA BUS 8 RD, WR MODE 0 B 8 A0, A1 C A 4 PB7-PB0 MODE 1 D7-D0 4 PC7-PC4 PC3-PC0 B C PA7-PA0 A 8 8 PB7-PB0 MODE 2 8 CONTROL OR I/O B CONTROL OR I/O C 8 PA7-PA0 A 8 PB7-PB0 I/O CONTROL PA7-PA0 Figure 5. Basic Mode Definitions and Bus Interface 5 IN82C55AN D7 D6 D5 D4 D3 D2 D1 D0 GROUP B PORT C (LOWER) 1 = INPUT 0 = OUTPUT PORT B 1 = INPUT 0 = OUTPUT MODE SELECTION 0 = MODE 0 1 = MODE 1 GROUP B PORT C (LOWER) 1 = INPUT 0 = OUTPUT PORT B 1 = INPUT 0 = OUTPUT MODE SELECTION 00 = MODE 0 01 = MODE 1 1X = MODE 2 MODE SET FLAG 1 = ACTIVE Figure 6. Mode Definition Format The mode definitions and possible mode combinations may seem confusing at first but after a cursory review of the complete device operation a simple, logical I/O approach will surface. The design of the 82C55A has taken into account things such as efficient PC board layout, control signal definition vs PC layout and complete functional flexibility to support almost any peripheral device with no external logic. Such design represents the maximum use of the available pins. Single Bit Set/Reset Feature Any of the eight bits of Port C can be Set or Reset using a single OUTput instruction. This feature reduces software requirements in Control-based applications. When Port C is being used as status/control for Port A or B, these bits can be set or reset by using the Bit Set/Reset operation just as if they were data output ports. D7 D6 D5 D4 D3 D2 D1 D0 BIT SET/RESET 1 = SET 0 =RESET DON’T CARE BIT SELECT 0 1 2 3 4 5 6 7 0 1 0 1 0 1 0 1 B0 0 0 1 1 0 0 1 1 B1 0 0 0 0 1 1 1 1 B2 BIT SET/RESET FLAG 0 = ACTIVE Figure 7. Bit Set/Reset Format 6 IN82C55AN Interrupt Control Functions When the IN82C55AN is programmed to operate in mode 1 or mode 2, control signals are provided that can be used as interrupt request inputs to the CPU. The interrupt request signals, generated from port C, can be inhibited or enabled by setting or resetting the associated INTE flip-flop, using the bit set/reset function of port C. This function allows the Programmer to disallow or allow a specific I/O device to interrupt the CPU without affecting any other device in the interrupt structure. INTE flip-flop definition: (BIT-SET) - INTE is SET - Interrupt enable (BIT-RESET) – INTE is RESET - Interrupt disable Note: All Mask flip-flops are automatically reset during mode selection and device Reset. Operating Modes Mode 0 (Basic Input/Output). This functional configuration provides simple input and output operations for each of the three ports. No “handshaking” is required, data is simply written to or read from a specified port. Mode 0 Basic Functional Definitions: • • • • • Two 8-bit ports and two 4-bit ports. Any port can be input or output. Outputs are latched. Inputs are not latched. 16 different Input/Output configurations are possible in this Mode. MODE 0 (BASIC INPUT) tRR RD tIR tHR INPUT tAR tRA CS, A 1 , A 0 D 7 -D 0 tRD 7 tDF IN82C55AN MODE 0 (BASIC OUTPUT) tWW WR tDW tWD D7-D0 tWA tAW CS ,A1,A0 OUTPUT tWB MODE 0 Port Definition A B GROUP A GROUP B D4 D3 D1 D0 PORT A PORT C (UPPER) # PORT B PORT C (LOWER ) 0 0 0 0 OUTPUT 0 0 0 0 1 OUTPUT 0 1 0 OUTPUT 2 OUTPU T OUTPU T INPUT OUTPU T INPUT 0 0 0 1 1 OUTPUT 3 INPUT 0 1 0 0 OUTPUT OUTPU T OUTPU T OUTPU T OUTPU T INPUT 4 0 1 0 1 OUTPUT INPUT 5 0 1 1 0 OUTPUT INPUT 6 OUTPU T OUTPU T INPUT 0 1 1 0 1 0 1 0 OUTPUT INPUT 7 8 1 0 0 1 INPUT 1 0 1 0 INPUT 1 0 1 1 INPUT 1 1 0 0 INPUT INPUT OUTPU T OUTPU T OUTPU T OUTPU T INPUT 1 1 0 1 INPUT INPUT 13 1 1 1 0 INPUT INPUT 1 1 1 1 INPUT INPUT 8 1 10 INPUT OUTPU T OUTPU T INPUT 11 INPUT 12 14 OUTPU T OUTPU T INPUT 15 INPUT 9 OUTPU T INPUT OUTPU T INPUT OUTPU T INPUT OUTPU T INPUT OUTPU T INPUT OUTPU T INPUT OUTPU T INPUT IN82C55AN MODE 0 Configurations CONTROL WORD #0 D7 D6 D5 D4 1 0 0 0 D3 0 A D2 0 D1 0 CONTROL WORD #1 D7 D6 D5 D4 1 0 0 0 D0 0 D3 0 8 PA7-PA0 A 4 D2 0 C… PA7-PA0 4 4 PC7-PC4 D7-D0 C… 4 PC3-PC0 PC3-PC0 8 CONTROL WORD #2 D7 D6 D5 D4 1 0 0 0 D3 0 A 8 PB7-PB0 B D2 0 D1 1 PB7-PB0 B CONTROL WORD #3 D7 D6 D5 D4 1 0 0 0 D0 0 D3 0 8 PA7-PA0 A 4 D2 0 C… PA7-PA0 PC7-PC4 D7-D0 C… 4 PC3-PC0 PC3-PC0 8 CONTROL WORD #4 D7 D6 D5 D4 1 0 0 0 D3 1 A 8 PB7-PB0 D2 0 D1 0 PB7-PB0 B CONTROL WORD #5 D7 D6 D5 D4 1 0 0 0 D0 0 D3 1 8 PA7-PA0 A 4 D2 0 D7-D0 PA7-PA0 PC7-PC4 D7-D0 C… 4 PC3-PC0 PC3-PC0 8 CONTROL WORD #6 D7 D6 D5 D4 1 0 0 0 D3 1 A 8 PB7-PB0 D2 0 D1 1 PB7-PB0 B CONTROL WORD #7 D7 D6 D5 D4 1 0 0 0 D0 0 D3 1 8 PA7-PA0 A 4 D2 0 D7-D0 D0 1 PA7-PA0 4 4 PC7-PC4 D7-D0 C… 4 PC3-PC0 PC3-PC0 8 B D1 1 8 PC7-PC4 C… D0 1 4 4 B D1 0 8 PC7-PC4 C… D0 1 4 4 B D1 1 8 PC7-PC4 D7-D0 D0 1 8 PC7-PC4 D7-D0 D1 0 8 PB7-PB0 B 9 PB7-PB0 IN82C55AN CONTROL WORD #8 D7 D6 D5 D4 1 0 0 1 D3 0 A D2 0 D1 0 CONTROL WORD #9 D7 D6 D5 D4 1 0 0 1 D0 0 D3 0 8 PA7-PA0 A 4 D2 0 C… PA7-PA0 4 4 PC7-PC4 D7-D0 C… 4 PC3-PC0 PC3-PC0 8 CONTROL WORD #10 D7 D6 D5 D4 1 0 0 1 D3 0 A 8 PB7-PB0 B D2 0 D1 1 PB7-PB0 B CONTROL WORD #11 D7 D6 D5 D4 1 0 0 1 D0 0 D3 0 8 PA7-PA0 A 4 D2 0 C… PA7-PA0 PC7-PC4 D7-D0 C… 4 PC3-PC0 PC3-PC0 8 CONTROL WORD #12 D7 D6 D5 D4 1 0 0 1 D3 1 A 8 PB7-PB0 D2 0 D1 0 PB7-PB0 B CONTROL WORD #13 D7 D6 D5 D4 1 0 0 1 D0 0 D3 1 8 PA7-PA0 A 4 D2 0 D7-D0 PA7-PA0 PC7-PC4 D7-D0 C… 4 PC3-PC0 PC3-PC0 8 CONTROL WORD #14 D7 D6 D5 D4 1 0 0 1 D3 1 A 8 PB7-PB0 D2 0 D1 1 PB7-PB0 B CONTROL WORD #15 D7 D6 D5 D4 1 0 0 1 D0 0 D3 1 8 PA7-PA0 A 4 D2 0 C… D0 1 PA7-PA0 4 4 PC7-PC4 D7-D0 C… 4 PC3-PC0 PC3-PC0 8 B D1 1 8 PC7-PC4 D7-D0 D0 1 4 4 B D1 0 8 PC7-PC4 C… D0 1 4 4 B D1 1 8 PC7-PC4 D7-D0 D0 1 8 PC7-PC4 D7-D0 D1 0 8 PB7-PB0 B 10 PB7-PB0 IN82C55AN Operating Modes MODE 1 (Strobed Input/Output). This functional configuration provides a means for transferring I/O data to or from a specified port in conjunction with strobes or “handshaking” signals. In mode 1, Port A and Port B use the lines on Port C to generate or accept these “handshaking” signals. Mode 1 Basic functional Definitions: • Two Groups (Group A and Group B). • Each group contains one 8-bit data port and one 4-bit control/data port. • The 8-bit data port can be either input or output • Both inputs and outputs are latched. • The 4-bit port is used for control and status of the • 8-bit data port. Input Control Signal Definition STB (Strobe Input). A “low” on this input loads data into the input latch. IBF (Input Buffer Full F/F) A “high” on this output indicates that the data has been loaded into the input latch; in essence, an acknowledgement. IBF is set by STB input being low and is reset by the rising edge of the RD input. INTR (Interrupt Request) A “high” on this output can be used to interrupt the CPU when an input device is requesting service. INTR is set by the STB is a “one”, IBF is a “one” and INTE is a “one”. It is reset by the falling edge of RD . This procedure allows an input device to request service from the CPU by simply strobing its data into the port. INTE A Controlled by bit set/reset of PC4. INTE B Controlled by bit set/reset of PC2 MODE 1 (PORT A) CONTROL WORD D6 D5 D4 D7 1 0 1 1 D3 1/0 D2 X D1 X D0 X PA7-PA0 INTE A 8 PC4 STBA PC5 IBFA PC6,7 1 = INPUT 0 = OUTPUT PC3 RD PC6,7 MODE 1 (PORT B) CONTROL WORD D6 D5 D4 D7 1 X X X D3 X D2 1 D1 1 D0 X PB7-PB0 INTE B RD Figure 8. MODE 1 Input 11 INTRA 2 8 PC2 STBB PC1 IBFB PC0 INTRB IN82C55AN tST STB tSIB IBF tSIT tRIB INTR tRIT RD tPH INPUT FROM PERIPHERAL tPS Figure 9. MODE 1 (Strobed Input) Output Control Signal Definition OBF (Output Buffer Full F/F). The OBF output will go “low” to indicate that the CPU has written data out to the specified port. The OBF F/F will be set by the rising edge of the WR input and reset by ACK Input being low. ACK (Acknowledge Input). A “low” on this input informs the IN82C55AN that the data from Port A or Port B has been accepted. In essence, a response from the peripheral device indicating that it has received the data output by the CPU. INTR (Interrupt Request). A “high” on this output can be used to interrupt the CPU when an output device has accepted data transmitted by the CPU. INTR is set when ACK is a “one”, OBF is a “one” and INTE is a “one”. It is reset by the falling edge of WR . INTE A Controlled by bit set/reset of PC6. INTE B Controlled by bit set/reset of PC2. MODE 1 (PORT A) CONTROL WORD D7 D6 D5 D4 1 0 1 0 D3 1/0 D2 X D1 X D0 X PA7-PA0 INTE A 8 PC6 ACKA PC7 OBFA PC6,7 1 = INPUT 0 = OUTPUT PC3 WR PC4,5 MODE 1 (PORT B) CONTROL WORD D7 D6 D5 D4 1 X X X D3 X D2 1 D1 0 D0 X PB7-PB0 INTE B WR Figure 10. MODE 1 Output 12 INTRA 2 8 PC2 ACKB PC1 OBFB PC0 INTRB IN82C55AN WR tAOB OBF tWOB INTR tWIT ACK tAIT tAK OUTPUT tWB Figure 11. MODE 1 (Strobed Output) Combinations of MODE 1 Port A and Port B can be individually defined as input or output in Mode 1 to support a wide variety of strobed I/O applications. PA7-PA0 CONTROL WORD D7 D6 D5 D4 1 0 1 1 D3 1/0 D2 1 D1 0 PC6,7 1 = INPUT 0 = OUTPUT WR PORT A – STROBED INPUT PORT B – STROBED OUTPUT RD D0 X 8 PA7-PA0 PC4 STBA PC5 IBFA PC3 INTRA 2 PC6,7 PB7-PB0 D3 1/0 D2 1 D1 1 D0 X OBFB PC2 ACKB INTRB 8 PC7 OBFA PC6 PC4,5 1 = INPUT 0 = OUTPUT 8 PC1 PC0 CONTROL WORD D7 D6 D5 D4 1 0 1 0 WR PORT A – STROBED OUTPUT PORT B – STROBED INPUT ACKA PC3 PC4,5 PB7-PB0 RD 2 INTRA 8 PC2 STBB PC1 IBFB PC0 INTRB Figure 12. Combinations of MODE 1 Operating Modes MODE 2 (Strobed Bidirectional Bus I/O).This functional configuration provides a means for communicating with a peripheral device or structure on a single 8-bit bus for both transmitting and receiving data (bidirectional bus I/O). “Handshaking” signals are provided to maintain proper bus flow discipline in a similar manner to MODE 1. Interrupt generation and enable/disable functions are also available. MODE 2 Basic Functional Definitions: • • • Used in Group A only. One 8-bit, bi-directional bus port (Port A) and a 5- bit control port (Port C). Both inputs and outputs are latched. • The 5-bit control port (Port C) is used for control and status for the 8-bit, bi-directional bus port (Port A). Bidirectional Bus I/O Control Signal Definition INTR (Interrupt Request). A high on this output can be used to interrupt the CPU for input or output operations. Output Operations OBF (Output Buffer Full). The OBF output will go “low” to indicate that the CPU has written data out to port A. 13 IN82C55AN ACK (Acknowledge). A “low” on this input enables the tri-state output buffer of Port A to send out the data. Otherwise, the output buffer will be in the high impedance state. INTE 1 (The INTE Flip-Flop Associated with OBF ). Controlled by bit set/reset of PC6. Input Operations STB (Strobe Input). A “low” on this input loads data into the input latch. IBF (Input Buffer Full F/F). A “high” on this output indicates that data has been loaded into the input latch. INTE 2 (The INTE Flip-Flop Associated with IBF). Controlled by bit set/reset of PC4. CONTROL WORD D6 D5 D4 D7 1 1 X X D3 X D2 1/0 D1 1/0 PC3 D0 1/0 INTRA PA7-PA0 PC2-0 1 – INPUT 0 – OUTPUT INTE 1 PORT B 1 – INPUT 0 – OUTPUT GROUP B 1 – INPUT 0 – OUTPUT WR RD INTE 2 PC7 OBFA PC6 ACKA PC4 STBA PC5 IBFA 3 PC2-0 Figure 13. MODE Control Word Figure 14. MODE 2 14 IN82C55AN DATA FROM CPU TO IN82C55AN WR tAOB OBF tWOB INTR tAK ACK tST STB tSIB IBF tAD tKD tPS PERIPHERAL BUS tRIB tPH RD DATA FROM PERIPHERAL TO IN82C55AN DATA FROM IN82C55AN TO PERIPHERAL DATA FROM IN82C55AN TO 8080 Figure 15. MODE 2 (Bidirectional) NOTE: Any sequence where WR occurs before ACK , and STB ( INTR = IBF ∗ MASK ∗ STB ∗ RD + OBF ∗ MASK ∗ ACK ∗ WR ) 15 occurs before RD is permissible. IN82C55AN INTRA PC3 CONTROL WORD D7 D6 D5 D4 1 1 X X D3 X D2 0 D1 1 D0 1/0 PC2-0 1 = INPUT 0 = OUTPUT MODE 2 AND MODE 0 (INPUT) PA7-PA0 8 PC7 OBFA PC6 ACKA PC4 STBA PC5 WR PC2-0 D3 X D2 0 MODE 2 AND MODE 0 (OUTPUT) D1 0 OBFA PC6 ACKA PC4 STBA PC2-0 IBFA 3 D0 X PA7-PA0 WR 8 8 INTRA PC3 CONTROL WORD D7 D6 D5 D4 1 1 X X D3 X D2 1 D1 1 D0 X PA7-PA0 8 PC7 PC7 OBFA PC6 ACKA PC6 ACKA PC4 STBA PC4 STBA PB7-PB0 RD PB7-PB0 INTRA PC5 MODE 2 AND MODE 1 (OUTPUT) PC7 PC5 WR 8 PC3 D2 1 8 PA7-PA0 RD PB7-PB0 D3 X D0 1/0 PC2-0 1 = INPUT 0 = OUTPUT RD CONTROL WORD D7 D6 D5 D4 1 1 X X D1 0 IBFA 3 INTRA PC3 CONTROL WORD D7 D6 D5 D4 1 1 X X PC1 PC5 IBFA 8 OBFA MODE 2 AND MODE 1 (INPUT) WR RD OBFB PB7-PB0 IBFA 8 PC1 STBB IBFB INTRB PC2 ACKB PC2 PC0 INTRB PC0 Figure 16. MODE 1/4 Combinations Mode Definition Summary PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 IN MODE0 OUT IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT IN MODE1 OUT IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN INTRB IBFB STB B INTRA STB A IBFA I/O I/O 16 INTRA I/O I/O MODE2 GROUP A ONLY ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ I/0 I/O I/O INTRA STB A IBFA ACK A OBF A ACK A OBF A OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT INTRB OBF B ACK B MODE 0 OR MODE1 ONLY IN82C55AN Special Mode Combination Considerations There are several combinations of modes possible. For any combination, some or all of the Port C lines are used for control or status. The remaining bits are either inputs or outputs as defined by a “Set Mode” command. During a read of Port C, the state of all the Port C lines, except the ACK and STB lines, will be placed on the data bus. In place of the ACK and STB line states, flag status will appear on the data bus in the PC2, PC4, and PC6 bit positions as illustrated by Figure 18. Through a “Write Port C” command, only the Port C pins programmed as outputs in a Mode 0 group can be written. No other pins can be affected by a “Write Port C” command, nor can the interrupt enable flags be accessed. To write to any Port C output programmed as an output in a Mode 1 group or to change an interrupt enable flag, the “Set/Reset Port C Bit” command must be used. With a “Set/Reset Port C Bit” command, any Port C line programmed as an output (including INTR, IBF and OBF ) can be written, or an interrupt enable flag can be either set or reset. Port C lines programmed as inputs, including ACK and STB lines, associated with Port C are not affected by a “Set/Reset Port C Bit” command. Writing to the corresponding Port C bit positions of the ACK and STB lines with the “Set/Reset Port C Bit” command will affect the Group A and Group B interrupt enable flags, as illustrated in Figure 18. Current Drive Capability Any output on Port A, B or C can sink or source 2.5mA. This feature allows the IN82C55AN to directly drive Darlington type drivers and high-voltage displays that require such sink or source current. Reading Port C Status In Mode 0, Port C transfers data to or from the peripheral device. When the IN82C55AN is programmed to function in Modes 1 or 2, Port C generates or accepts “hand-shaking” signals with the peripheral device. Reading the contents of Port C allows the programmer to test or verify the “status” of each peripheral device and change the program flow accordingly. There is no special instruction to read the status information from Port C. A normal read operation of Port C is executed to perform this function. D7 I/O D7 OBFA D6 I/O INPUT CONFIGURATION D5 D4 D3 D2 D1 D0 IBFA INTEA INTRA INTEB IBFB INTRB GROUP A GROUP B OUTPUT CONFIGURATION D6 D5 D4 D3 D2 D1 D0 INTEA I/O I/O INTRA INTEB OBFB INTRB GROUP A GROUP B Figure 17a. MODE 1 Status Word Format D7 OBFA D6 INTE1 D5 D4 D3 IBFA INTE2 INTRA GROUP A (Defined by mode 0 or mode 1 selektion) D2 D1 GROUP B Figure 17b. MODE 2 Status Word Format 17 D0 IN82C55AN Interrupt Enable Flag INTEB INTEA2 INTEA1 Position PC2 PC4 PC6 Alternate ACKB (Output Mode 1) or STBB (Input Mode 1) STBA (Input Mode 1 or Mode 2) ACKA (Output Mode 1 or Mode 2) Figure 18. Interrupt Enable Flags in Modes 1 and 2 ABSOLUTE MAXIMUM RATINGS* 0OC to + 70OC - 65OC to + 150OC - 0.5 to + 8.0V + 4V to + 7V GND-2V to + 6.5V GND-0.5V to VCC + 0.5V 1Watt Ambient Temperature Under Bias Storage Temperature Supply Voltage Operating Voltage Voltage on any Input Voltage on any Output Power Dissipation NOTICE: This is a production data sheet. The specifications are subject to change without notice. *WARNING: Stressing the device beyond the “Absolute Maximum Ratings” may cause permanent damage. These are stress ratings only. Operation beyond the “Operating Conditions” is not recommended and extended exposure beyond the “Operating Conditions” may affect device reliability. D.C. CHARACTERISTICS TA = 0OCto70OC, VCC =+5V ±10%, GND = 0V (TA =-40OC to +85OC for Extended Temperature) Symbol VIL VIH VOL VOH Parameter Input Low Voltage Input High Voltage Output Low Voltage Output High Voltage IIL IOFL Input Leakage Current Output Float Leakage Current Darlington Drive Current IDAR IPHL IPHH IPHLO IPHHO ICC ICCSB Port Hold Low Leakage Current Port Hold High Leakage Current Port Hold Low Overdrive Current Port Hold High Overdrive Current VCC Supply Current VCC Supply CurrentStandby Min -0.5 2.0 Max 0.8 VCC 0.4 3.0 VCC - 0.4 ±1 ±10 Units V V V V V µA µA ±2.5 (Note 4) mA +50 +300 µA -50 -300 µA Test Conditions IOL = 2.5mA IOH =-2.5mA IOH =-100µA VIN = VCC to 0V (Note 1) IN = VCC to 0V (Note 2) -350 µA Ports A,B,C Rext = 500Ω Vext = 1.7V VOUT = 1.0V Port A only VOUT = 3.0V Ports A,B,C VOUT = 0.8V +350 µA VOUT = 3.0V mA µA (Note 3) VCC = 5.5V VIN = VCC or GND Port Conditions If I/P = Open/High O/P = Open Only With Data Bus = High/Low CS = High Reset = Low Pure Inputs = Low/High 10 10 NOTES: 18 IN82C55AN 1. 2. 3. 4. Pins A1, A0, CS, WR, RD, Reset Data Bus; Ports B, C Outputs open. Limit output current to 4.0mA. CAPACITANCE TA = 25OC, VCC = GND = 0V Symbol Parameter CIN Input Capacitance CI/O I/O Capacitance Min Max 10 20 Units pF pF TestConditions Unmeasured pins returned to GND fC = 1MHz(5) NOTE: 5. Sampled not 100% tested. A.C. CHARACTERISTICS TA = 0O to 70OC, VCC = +5V ±10%, GND = 0V TA = -40OC to +85OC for Extended Temperature BUS PARAMETERS READ CYCLE Symbol tAR tRA tRR tRD tDF tRV Parameter Min Max Units 0 0 150 Address Stable Before RD _ Address Hold Time After RD _ RD Pulse Width Data Delay from RD _ RD _ to Data Floating Recovery Time between RD / WR 10 200 Test Conditions ns ns ns ns ns ns 120 75 WRITE CYCLE Symbol Parameter tAW tWA Address Stable Before WR _ Address Hold Time After WR _ tWW tDW tWD WR Pulse Width Data Setup Time Before WR _ Data Hold Time After WR _ Min 0 20 20 100 100 30 30 19 Max Units ns ns ns ns ns ns ns Test Conditions PortsAB PortC PortsAB PortC IN82C55AN OTHER TIMINGS Symbol Parameter Min Max Units Test Conditions tWB tlR tHR tAK tST tPS tPH tAD tKD tWOB tAOB tSIB tRIB tRIT tSIT tAIT tWIT WR = 1 to Output Peripheral Data Before RD Peripheral Data After RD ACK Pulse Width STB Pulse Width Per. Data Before STB High Per. Data After STB High ACK = 0 to Output ACK = 1 to Output Float WR = 1 to OBF = 0 ACK = 0 to OBF = 1 STB = 0 to IBF = 1 RD = 1 to IBF = 0 RD = 0 to INTR = 0 STB = 1 to INTR = 1 ACK = 1 to INTR = 1 tRES Reset Pulse Width 350 0 0 200 100 20 50 20 WR = 0 to INTR = 0 175 250 150 150 150 150 200 150 150 200 500 ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns see note1 ns see note2 NOTE 1. INTR_ may occur as early as WR _. 2. Pulse width of initial Reset pulse after power on must be at least 50µSec. Subsequent Reset pulses may be 500ns minimum. The output Ports A B or C may glitch low during the reset pulse but all port pins will be held at a logic “one” level after the reset pulse. WRITE TIMING A0-1,CS tAW tWA DATA BUS tDW tWD WR tWW 20 IN82C55AN READ TIMING A0-1,CS tAR DATA BUS tRA VALID HIGH IMPEDANCE HIGH IMPEDANCE tRD tDR RD tRR A.C. TESTING INPUT, OUTPUT WAVEFORM A.C. TESTING LOAD CIRCUIT 2.4 2.0 2.0 CL=150pF TEST POINTS 0.8 0.8 0.45 A.C. Testing Inputs Are Driven At 2.4V For A Logic 1 And 0.45V For A Logic 0 Timing Measurements Are Made At 2.0V For A Logic 1 And 0.8 For A Logic 0. A.C. TESTING LOAD CIRCUIT DEVICE UNDER TEST VEXT* CL=150pF *VEXT Is Set At Various Voltages During Testing To Guarantee The Specification. C L Includes Jig Capacitance. 21