The 8255A Programmable Peripheral Interface

8255A - Programmable Peripheral Interface
The 8255A is a general purpose programmable I/O device designed to transfer the data from I/O to interrupt I/O under certain conditions as required. It can be used with almost any microprocessor.
It consists of three 8-bit bidirectional I/O ports (24 I/O lines) which can be configured as per the requirement.
Ports of 8255A
8255A has three ports, i.e., PORT A, PORT B, and PORT C.
·        Port A contains one 8-bit output latch/buffer and one 8-bit input buffer.
·        Port B is similar to PORT A.
·        Port C can be split into two parts, i.e. PORT C lower (PC0-PC3) and PORT C upper (PC7-PC4) by the control word.
These three ports are further divided into two groups, i.e. Group A includes PORT A and upper PORT C. Group B includes PORT B and lower PORT C. These two groups can be programmed in three different modes, i.e. the first mode is named as mode 0, the second mode is named as Mode 1 and the third mode is named as Mode 2.
Features of 8255 A
The prominent features of 8255 A are as follows −
·        It consists of 3 8-bit IO ports i.e. PA, PB, and PC.
·        Address/data bus must be externally demux'd.
·        It is TTL compatible.
·        It has improved DC driving capability.
Figure A: 8255 I/O ports and their modes

The 8255 A is contained in a 40-pin package, whose pin out is shown in fig.B

Figure B:- Pin Configuration of 8225

The block diagram is shown in fig. C

Figure C:-  Functional Block Diagram of Intel 82255 PPI 

Functional Description:
This support chip is a general purpose I/O component to interface peripheral equipment to the microcomputer system bus. It is programmed by the system software so that normally no external logic is necessary to interface peripheral devices or structures.
Data Bus Buffer:
It is a tri-state 8-bit buffer used to interface the chip 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. The data lines are connected to BDB of 𝜇p.
Read/Write and Logic Control:
The function of this block is to control the internal operation of the device and to control the transfer of data and control or status words. It accepts inputs from the CPU address and control buses and, in turn, issues command to both the control groups.
C S (Chip Select):
A low on this input selects the chip and enables the communication between 8255A & the CPU. It is connected to the output of address decode circuitry to select the device when it is addressed.
R D (Read):
A low on this input enables the 8255A to send the data or status information to the CPU on the data bus.
W R (Write):
A low on this input pin enables the CPU to write data or control words into the 8255A.
Control word:
Figure D shows a register called the control register. The control of this register, called the control word, specify an I/O function for each port this register can be.
Figure D:8225A an I/O ports

 Figure E:8255A chip select logic (a) and I/O port addresses (b)

Accessed to write a control word when A0 and A1 are at logic1 , the register is not accessible for a read operation. Bit D7 of the control register either specifies the I/O function or the bit Set/Reset function, as classified in figure 1. If bit D7=0, bits D6-D0 determine I/O function in various mode, as shown in figure 4.if bit D7=0 port C operates in the bit Set/Reset (BSR) mode. The BSR control word does not affect the function of port A and B
Operating Modes
8255A has three different operating modes −
·        Mode 0 − In this mode, Port A and B is used as two 8-bit ports and Port C as two 4-bit ports. Each port can be programmed in either input mode or output mode where outputs are latched and inputs are not latched. Ports do not have interrupt capability.
·        Mode 1 − In this mode, Port A and B is used as 8-bit I/O ports. They can be configured as either input or output ports. Each port uses three lines from port C as handshake signals. Inputs and outputs are latched.
·        Mode 2 − In this mode, Port A can be configured as the bidirectional port and Port B either in Mode 0 or Mode 1. Port A uses five signals from Port C as handshake signals for data transfer. The remaining three signals from Port C can be used either as simple I/O or as handshake for port B.
Figure F: 8255A control word format for I/O mode

BSR Mode
        To set / reset bits in Port C, the control word is written in the Control Register
        BSR Control Word affects one bit at a time
        Does not affect the I/O mode

I/O Mode
1.      Mode 0
        Simple I/O for Ports A, B, C
        A port is either an input port, or an output port
        Inputs are not latched, outputs are
        Ports do not have interrupt or handshake capability
2.      Mode 1
        Ports A and B: a port is either an input port, or an output port
        Each port uses 3 lines of Port C for handshaking, the remaining 2 bits can be used for simple I/O (Mode 0)
        Input and output data are latched
        Interrupt Logic is supported

3.      Mode 2
        Port A used as a bidirectional port
        Port B can be used in either Mode 0 or Mode 1
        Port A uses 5 bits of Port C for handshaking: the remaining can be used for simple I/O (Mode 0) for Port B in Mode 0, or as handshaking lines for Port B in Mode 1


Comments