Operation of Intel 8255A PPI in Mode 1 - Page 1
Forum section: electronics / general

author: MrOmnos
author_rank: Frequent Contributor
timestamp: April 05, 2016, 07:55:37 pm
content: Hi.So, In MODE 0 operations all the ports from group A or B can be configured to be used as Input/Output ports. So, if I were to configure it in Mode 0 where Port A is being used as OUTPUT and other ports are not being used, the control word to be written to the control register would be as follows7 6 5 4 3 2 1 01 0 0 0 x x x x i.e (80H)If I were to use it in MODE 1 where PORT A is input and other ports are not being used, what would my control word be?7 6 5 4 3 2 1 01 0 1 1 ? x x xIn MODE 1 PORT C (upper) works as the handshaking signals. My confusion is what do I need to write into the control word for it?? Will it be set to output or INPUT? Or is it left alone??Also does the entire PORT C works a handshaking pins in Mode 1 for both Port A and Port B ? Or only Port C (upper) works as handshaking for Port A and Port C(lower) works as the handshaking for Port B??I know this is very old device and people don't use it anymore still it will be really helpful someone clears my confusion.

author: Bruce Abbott
author_rank: Frequent Contributor
timestamp: April 08, 2016, 09:06:05 am
content: Quote from: MrOmnos on April 05, 2016, 07:55:37 pmNot exactly. When Port A is set to input in Mode 1, PC3, PC4 and PC5 are dedicated to the Interrupt, Strobe and Input Buffer Full signals. PC6 and PC7 are available for general purpose I/O.QuoteWhen you write to the control register setting Port A to Mode 1, PC3, PC4 and PC5 are automatically set to input or output as required by their function. The direction of PC6 and PC7 is set via bit 3 of the control word.QuotePort A and Port B can be individually set to either Mode 0 or Mode 1. When Port A is set to Mode 1 input it uses PC3, PC4, and PC5. When Port B is set to Mode 1 input it uses PC0, PC1 and PC2. Port C pins that are not used for handshaking become general purpose I/O.So to say that "Port C (upper) works as handshaking for Port A and Port C(lower) works as the handshaking for Port B" is not quite right, because when Port A is set to input PC6 and PC7 are general purpose I/O. Even more confusing, when Port A is set to output it uses PC3, PC6 and PC7, and PC4 and PC5 become general purpose I/O. I guess the reason for doing it this way is so you can switch Port A from input to output while having the control signals for both directions permanently connected to dedicated pins on the 8255.

author: Back2Volts
author_rank: Unknown
timestamp: April 08, 2016, 04:28:13 pm
content: Bruce, just curious, did you work with this part ? Looking a your profile, it seems you would have been too young in the 70s. In those times, I was interested in the 8080 family on the hobby side. Using the manuals (which I still have), I designed and wire wrapped an 8080 computer board with 1KB of static memory ! I think I still have it around.

author: ChristofferB
author_rank: Frequent Contributor
timestamp: April 09, 2016, 06:28:07 pm
content: To my knowledge, the 8255 was in common use all the way from i8080 to at least 8086/8088 - And I'm fairly sure I've seen boards as modern as 1990's using the part. It was also the parallel port driver on the original IBM PC if I recall correctly.

author: SeanB
author_rank: Super Contributor
timestamp: April 09, 2016, 06:38:49 pm
content: Was a very common part as well in dot matrix printers, and in dumb terminals, as it could work well as a centronics interface in both directions, at least till EPP came out. Could drive the lines directly as well in most cases, unless you really needed the open collector and pull up resistors.

author: Bruce Abbott
author_rank: Frequent Contributor
timestamp: April 09, 2016, 08:26:28 pm
content: Quote from: Back2Volts on April 08, 2016, 04:28:13 pmI built a computer to my own design in 1980. It had an MC6802 CPU, MC6821 PIA, MC6847 VDG, and 6kB of battery backed CMOS RAM. I still have the 6802!The 8255 was less attractive to me because it couldn't set pins to input or output individually. My first experience with the 8255 was in the Amstrad CPC664, which I purchased in 1985.

author: Back2Volts
author_rank: Unknown
timestamp: April 10, 2016, 05:05:51 am
content: Quote from: Bruce Abbott on April 09, 2016, 08:26:28 pmVery cool !

author: westfw
author_rank: Super Contributor
timestamp: April 10, 2016, 06:35:44 am
content: QuoteI think the 8255 lasted quite a long time in 8051 SBCs, long after it was "obsolete" in microprocessor-based systems. (8051 SBCs were probably the defacto standard microcontrollerthingup until the BASIC stamp showed up in 1992.)

author: ChristofferB
author_rank: Frequent Contributor
timestamp: April 10, 2016, 10:51:48 am
content: The 8255 also came/comes in a 44pin PLCC package, here's a PCI (so atleast mid-90's) 8255 IO card:http://www.decision-computer.de/Produkte/8255/8255-Pmvs-e.html