MOS
Chips: MOS 6526 CIA  
Descripción Pines Diagramas  
  Temporización Registros Instrucciones

Descripción

El MOS 6526 CIA (Complex Interface Adapter) es un versatil chip de entrada/salida,
incorpora 2 puertos de I/O de 8-bits, siendo cada una de sus lineas programables
independientemente como entrada o salida; 1 registro de desplazamiento de 8-bits, 2
temporizadores de 16-bits que se pueden poner en cascada y un reloj de tiempo real de
24hs.


Pines

Pin(s) Signal Description
1 GND Tierra (0V).
2-9 PA0-PA7 Puerto A bits 0-7.
10-17 PB0-PB7 Puerto B bits 0-7. Con los registros de control A y B, los bits 6 y 7 puenden ser programados para indicar un desborde del temporizador A y B.
18 -PC Control de Puerto. Indica disponibilidad de datos en el puerto B o en ambos puertos.
19 TOD Tiempo del día. Una señal TTL llevando la frecuencia de la fuente de alimentación de 50Hz (PAL) o 60Hz (NTSC) se aplica aquí para gatillar el reloj de tiempo real.
20 Vcc +5V DC.
21 -IRQ Interrupt ReQuest. Se pone a 0 cuando hay una concordancia entre un bit seteado en el registro de control de interrupciones y su evento correspondiente.
22 R/-W Read/-Write. 0=lectura del bus de datos, 1=escritura en el bus de datos.
23 -CS Chip select. 0=Acoplado al bus de datos, 1=tri-state.
24 -FLAG  
25 �2 Phi 2. Señal de reloj del sistema. Toda acción sobre el bus de datos toma lugar solo cuando �2=1.
26-33 DB7-DB0 Bus de Datos.
34 -RES Reset. 0=resetea la CIA al estado inicial.
35-38 RS3-RS0 Selección de registro. Estos cuatro pines seleccionan uno de los registros internos de la CIA.
39 SP Puerto serie. Entrada/salida del registro de desplazamiento.
40 CNT Contador.

 

Referencias
 Pin de entrada
 Pin de salida
 Pin de entrada/salida
 Otros Pines

Diagramas

Diagrama CIA


Temporización

Temporización CIA


Registros

El 6526 posee los siguientes 16 registros:

Reg. $00 PRA (PoRt A): Puerto A, se pueden leer el estado de los pines configurados como entrada o escribir en los que estan configurados como salida.

 

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

PRA

PA7

PA6

PA5

PA4

PA3

PA2

PA1

PA0

Reg. $01 PRB (PoRt B): Idem PRA.

 

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

PRB

PB7

PB6

PB5

PB4

PB3

PB2

PB1

PB0

 

Reg. $02 DDRA: Selecciona la dirección de cada linea individual del puerto A.
0 = Entrada - 1 = Salida.

 

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

DDRA

DPA7

DPA6

DPA5

DPA4

DPA3

DPA2

DPA1

DPA0

Reg. $03 DDRB: Idem DDRA para el puerto B.

 

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

DDRB

DPB7

DPB6

DPB5

DPB4

DPB3

DPB2

DPB1

DPB0

Regs. $04 TA LO y $05 TA HI (Timer A): Estos dos registros se combinan para formar los 16-bits del temporizador A. Una lectora a estos registros entrega el estado actual del temporizador, mientras que al escribir se carga el temporizador con un nuevo valor.

Read

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

$04
TA LO

TAL7

TAL6

TAL5

TAL4

TAL3

TAL2

TAL1

TAL0

$05
TA HI

TAH7

TAH6

TAH5

TAH4

TAH3

TAH2

TAH1

TAH0


Write

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

$04
TA LO

PAL7

PAL6

PAL5

PAL4

PAL3

PAL2

PAL1

PAL0

$05
TA HI

PAH7

PAH6

PAH5

PAH4

PAH3

PAH2

PAH1

PAH0

Regs. $06 TB LO y $07 TB HI (Timer B): Idem TA LO y TA HI para el temporizador B.

Read

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

$06
TB LO

TBL7

TBL6

TBL5

TBL4

TBL3

TBL2

TBL1

TBL0

$07
TB HI

TBH7

TBH6

TBH5

TBH4

TBH3

TBH2

TBH1

TBH0


Write

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

$06
TB LO

PBL7

PBL6

PBL5

PBL4

PBL3

PBL2

PBL1

PBL0

$07
TB HI

PBH7

PBH6

PBH5

PBH4

PBH3

PBH2

PBH1

PBH0

Regs. $08 a $0B Time Of Day/Alarm: Estos registros setean o retornan el estado del reloj de tiempo real. La información esta en BCD.
Una lectura o escritura al registro $0B provoca que el reloj retenga su estado actual y no continue hasta que se realice la correspondiente lectura o escritura al registro $08.
Si el bit 7 del registro CRB ($0F) esta en 1, al escribir en estos registros se setea la alarma en lugar del reloj.

 

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

$08
TOD 10THS

0

0

0

0

T8

T4

T2

T1

$09
TOD SEC

0

SH4

SH2

SH1

SL8

SL4

SL2

SL1

$0A
TOD MIN

0

MH4

MH2

MH1

ML8

ML4

ML2

ML1

$0B TOD HR

PM

0

0

HH

HL8

HL4

HL2

HL1

Reg. $0C SDR (Serial Port): En este registro se puede setear o leer el contenido del registro de desplazamiento del puerto serie, según este configurado.

 

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

SDR

S7

S6

S5

S4

S3

S2

S1

S0

Reg. $0D ICR (Interrupt Control Register): El 6526 tiene 5 fuentes de interrupción, cuando los timers llegan a 0, la alarma del reloj TOD, cuando el puerto serie esta lleno/vacio y -FLAG.
Este unico registro provee tanto información sobre las interrupciones como el enmascaramiento de estas.
Cualquier bit que no este enmascarado (en 0) causara que el bit IR se setee y que el pin -IRQ pase a 0. Esto se revierte al realizar una lectura al registro.
Si al escribir al registro, si el bit 7 esta en cero, los restantes bits en 1 pondran en 0 al correspondiente bit de la mascara, los que esten en 0 no tendran efecto. Por el contrario, si el bit 7 esta en 1 los restantes bit en 1 setearan el correspondiente bit.

Read

bit 7 (MSB)

6

5

4

3

2

1

bit 0 (LSB)

ICR

IR

0

0

FLG

SP

ALRM

TB

TA

Write

               

ICR

S/C

X

X

FLG

SP

ALRM

TB

TA

Regs. $0E (CRA) y $0F (CRB): Estos son los dos registros de control del 6526, CRA controla al Timer A mientras que CRB hace lo propio con Timer B.

CRA:

 

 

Bit

Nombre

Función

0

START

1 = Arrancar Timer A.
0 = Detener Timer A. Este bit se resetea automaticamente cuando la cuenta llega a 0.

1

PBON

1 = La salida del Timer A aparece en PB6.
0 = PB6 opera de la forma normal.

2

OUTMODE

1 = TOGGLE, 0 = Pulso.

3

RUNMODE

1 = Una sola vez.
0 = Continuo.

4

LOAD

1 = FORCE LOAD

5

INMODE

1 = Timer A cuenta transiciones positivas en CNT
0 = Timer A cuenta los pulsos de Ø2.

6

SPMODE

1 = Puerto serie como salida (CNT maneja el reloj del registro de desplazamiento)
0 = Puerto serie como entrada (se requiere reloj externo)

7

TOIN

1 = 50 Hz
0 = 60 Hz


CRB:

 

 

Bit

Nombre

Función

 

 

CRB0 a CRB4 son identicos en funcionamiento a CRA0 a CRA4 pero para el Timer B.

5,6

INMODE

00 : Timer B cuenta pulsos Ø2.
01 : Timer B cuenta transiciones positivas en CNT
10 : Timer B cuenta los pulsos de fin de cuenta del Timer A
11 : Timer B cuenta los pulsos de fin de cuenta del Timer A mientras CNT es alta.

7

ALARM

1 = Escrituras en los registros TOD setea la alarma.
0 = Escrituras en los registros TOD setea el reloj TOD.

 


Instrucciones

No se aplica.


  Temporización Registros Instrucciones
  Descripción Pines Diagramas  
Esta página es parte del sitio 154iSoftware  
Hosted by www.Geocities.ws

1