6522
What is it?
The 6522 is an IC of the 65xx-family supplying a system with 20 I/O lines, two timers, a serial-to-parallel/parallel-to-serial shift register and input latching on the peripheral ports. The 6522 is also called VIA: "Versatile Interface Adapter".Description
Control of peripherals is primarily through two 8-bit bidirectional ports. Each of these ports can be programmed to act as an input or and output. Peripheral I/O lines can be selectively controlled by the Interval Timers to generate programmable frequency square waves and/or to count externally generated pulses. Control of these functions is gained through its internal registers: Interrupt Flag Register, Interrupt Enable Register, and two Function Control Registers.Control lines
These lines, CA1, CA2, CB1 and CB2 can act as interrupt inputs or handshake outputs. They can perform a number of different functions determined by the Peripheral Control Register (PCR). CA2 and CB2 can act as inputs or outputs in a number or modes discussed later, whereas CA1 and CB1 can only act as inputs.The internal registers
A 6522 has 16 internal registers:
Register Designation Function
-------- ----------- --------------------------------------
0 ORA or IRB Output or input register B
1 ORA or IRA Output or input register A
2 DDRB Data direction register B
3 DDRA Data direction register A
4 T1C-L T1 low-byte latch or T1 low-byte
counter
5 T1C-H T1 high-byte counter
6 T1L-L T1 low-byte latch
7 T1L-H T1 high-byte latch
8 T2C-L T2 low-byte latch or T2 low-byte
counter
9 T2C-H T2 high-byte counter
10 SR Shift Register
11 ACR Auxiliary Control Register
12 PCR Peripheral Control Register
13 IFR Interrupt Flag Register
14 IER Interrupt Enable Register
15 ORA or IRA Identical to register 1 but no handshake
Out/input Registers Whether a pin is an input or output depends the Data Direction Register. The data from as input defined pins is latched in the so called Input Registers (IRA, IRB) at the moment of an active transaction of CA1 or CB1. Whether these Input Registers are read or the actual data is outputted at the pins, depends on bit 0/1 of ACR.
Data Direction Registers
These registers determine the direction of each pin of port A or B and are interpreted as follows:
A '1' defines the corresponding pin as an output. A '0' defines the corresponding pin as an input.
Pin outs
+---------------------+
GND -+ 1 40 +- CA1
| |
PA0 -+ 2 39 +- CA2
| |
PA1 -+ 3 38 +- RS0
| |
PA2 -+ 4 37 +- RS1
| |
PA3 -+ 5 36 +- RS2
| |
PA4 -+ 6 35 +- RS3
| | ___
PA5 -+ 7 34 +- RES
| |
PA6 -+ 8 33 +- D0
| |
PA7 -+ 9 32 +- D1
| |
PB0 -+ 10 31 +- D2
| 6522 |
PB1 -+ 11 30 +- D3
| |
PB2 -+ 12 29 +- D4
| |
PB3 -+ 13 28 +- D5
| |
PB4 -+ 14 27 +- D6
| |
PB5 -+ 15 26 +- D7
| |
PB6 -+ 16 25 +- PHI2
| |
PB7 -+ 17 24 +- CS1
| | ___
CB1 -+ 18 23 +- CS2
| | _
CB2 -+ 19 22 +- R/W
| | ___
+5V -+ 20 21 +- IRQ
+---------------------+
PA0..PA7 = Port A, 8 programmable I/O lines
PB0..PB7 = Port B, 8 programmable I/O lines
CA1..2
CB1..2 = control lines
D0..D7 = data bus
RS0..3 = address bus
PHI2 = Clock of the processor, also known as PHI2
R/W = Read/Write line
RES = Reset line
IRQ = Open Collector outputs, to be connected with IRQ input of CPU CS0..2 = Three chip select lines
You can email me here.