16.1 Main Digital I/O on J4: Internal 82C55 Circuit
The 82C55-type digital I/O circuit is accessed through page 1 at addresses Base + 12 through Base + 15. Address 0 on the chip is equivalent to address 12 in the register map, etc. Before performing any access to the digital I/O circuit, you must set the current page to page 1 with the miscellaneous control register at Base + 8 to ensure that the proper page is enabled. See page 21 for the format of this register. Note that writing page bits to the miscellaneous control register will not implement a board reset or interrupt reset operation as long as the two reset bits are left at 0. Also, writing a 1 to either reset bit in this register will not change the contents of the page bits.
The current page may be determined by reading the page bits at Base + 7 (see page 20).
This digital I/O circuit functions like an 82C55 in Mode 0, direct I/O, or Mode 1, latched I/O. In Mode 1, latch and acknowledge signals are provided. Each port A, B, and C can be programmed for input or output. Port C additionally can be split into two halves, with each half programmed for a different direction.
All 24 lines have 10K resistors connected to them that can be configured for either pull-up or pull-down operation with jumper block J8. In addition, all lines are buffered by 74FCT245 line drivers between the controller chip and the I/O header. These line drivers change direction automatically in response to the control word written.
On power up, all ports are set to input mode and can be used as inputs immediately. Before using any port as an output, the port direction register must be programmed appropriately.
82C55 Circuit Register Map
Page 1, Base + 12 through Base + 15
Base + n | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
12, Read / Write | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
13, Read / Write | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
14, Read / Write | C7 | C6 | C5 | C4 | C3 | C2 | C1 | C0C0 |
15, Write only | 1 | ModeC | ModeA | DirA | DirCH | ModeB | DirB | DirCL |
A7 – A0 Digital I/O port A
B7 – B0 Digital I/O port B
C7 – C0 Digital I/O port C Base + 15 Configuration register; see next page
Last updated