EEVblog Electronics Community Forum

Electronics => Microcontrollers => Topic started by: MrOmnos on April 05, 2016, 07:55:37 pm

Title: Operation of Intel 8255A PPI in Mode 1
Post by: MrOmnos on April 05, 2016, 07:55:37 pm
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 follows

7 6 5 4 3 2 1 0
1 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 0
1 0 1 1 ? x x  x
 
In 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.
Title: Re: Operation of Intel 8255A PPI in Mode 1
Post by: Bruce Abbott on April 08, 2016, 09:06:05 am
In MODE 1 PORT C (upper) works as the handshaking signals.
Not 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.   

Quote
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??
When 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.   

Quote
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??
Port 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.

Title: Re: Operation of Intel 8255A PPI in Mode 1
Post by: Back2Volts on April 08, 2016, 04:28:13 pm
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.   
Title: Re: Operation of Intel 8255A PPI in Mode 1
Post by: ChristofferB on April 09, 2016, 06:28:07 pm
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.

Title: Re: Operation of Intel 8255A PPI in Mode 1
Post by: SeanB on April 09, 2016, 06:38:49 pm
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.
Title: Re: Operation of Intel 8255A PPI in Mode 1
Post by: Bruce Abbott on April 09, 2016, 08:26:28 pm
Bruce, just curious, did you work with this part ?    Looking a your profile, it seems you would have been too young in the 70s. 
I 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.



Title: Re: Operation of Intel 8255A PPI in Mode 1
Post by: Back2Volts on April 10, 2016, 05:05:51 am
I 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!

Very cool !
Title: Re: Operation of Intel 8255A PPI in Mode 1
Post by: westfw on April 10, 2016, 06:35:44 am
Quote
in the 70s.
I 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 microcontroller thing up until the BASIC stamp showed up in 1992.)

Title: Re: Operation of Intel 8255A PPI in Mode 1
Post by: ChristofferB on April 10, 2016, 10:51:48 am
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 (http://www.decision-computer.de/Produkte/8255/8255-Pmvs-e.html)