8255 memory mapping

Thread Starter

Tera-Scale

Joined Jan 1, 2011
164
hi, I am a little bit confused about how the 8255 Ports are mapped: PA - 0x4000, PB - 0x4001, PC - 0x4002, PCNTRL - 0x4003. 4002H is 0100 0000 0000 0010B. Is this considered as a conrol word? how come it is 16-bit? Any hint would be really appreciated. The only think I can understand is the selection of the Ports with last 2 bits.
 

t06afre

Joined May 11, 2009
5,934
If it is memory mapped. You must have some sort of address decoding using the higher end of the address bus. This will be used via some decoding circuitry to enable your 8255 (pull the CS pin low on the 8255). Then the A0 and the A1 of the address bus. In your host system is connected to the A0 and A1 pin of your 8255. Then the CS pin of your 8255 is pulled low. It will be the owner of the data bus.
 

Thread Starter

Tera-Scale

Joined Jan 1, 2011
164
Do these hex point to memory locations in 8051 memory? If yes, how can I deduce the addresses for the specific PPI ports?
 

t06afre

Joined May 11, 2009
5,934
Do these hex point to memory locations in 8051 memory? If yes, how can I deduce the addresses for the specific PPI ports?
It is very simple. And you have actually answered the question your self.
PA - 0x4000, PB - 0x4001, PC - 0x4002, PCNTRL - 0x4003.
Then using memory mapped IO. The different processor auxiliary units share the total memory address range.
 
Top