Articulo de referencia

Tecnología MOS 6522

Configuración de pines de la VIA 6522 Rockwell 6522 VIA El adaptador de interfaz versátil (VIA) 6522 de MOS Technology es un circuito integrado diseñado y fabricado por MOS Tech...

Configuración de pines de la VIA 6522
Rockwell 6522 VIA

El adaptador de interfaz versátil (VIA) 6522 de MOS Technology es un circuito integrado diseñado y fabricado por MOS Technology como controlador de puertos de E/S para la familia de microprocesadores 6502. Proporciona dos puertos de E/S paralelos bidireccionales de 8 bits, dos temporizadores de 16 bits (uno de los cuales también puede funcionar como contador de eventos) y un registro de desplazamiento de 8 bits para comunicaciones en serie o conversión de datos entre formatos serie y paralelo. La dirección de cada bit de los dos puertos de E/S se puede programar individualmente. Además de ser fabricado por MOS Technology, el 6522 fue suministrado por otras compañías, como Rockwell y Synertek .

El 6522 se utilizó ampliamente en las computadoras de la década de 1980, particularmente en las máquinas de Commodore , [ 1 ] y también fue una parte central de los diseños del Apple III , Oric-1 y Oric Atmos , BBC Micro , Victor 9000/Sirius 1 y Apple Macintosh . Plataformas de videojuegos como Vectrex también usaron el 6522, al igual que el panel de instrumentos digital del Corvette de 1984 a 1989. Una versión CMOS de alta velocidad , el W65C22 , es producida por el Western Design Center (WDC).

puertos de entrada/salida

El VIA contiene 20 líneas de E/S, organizadas en dos puertos bidireccionales de 8 bits (o 16 líneas de E/S de propósito general) y cuatro líneas de control (para control de flujo y generación de interrupciones ). Las direcciones de las 16 líneas de propósito general (PA0-7, PB0-7) se pueden programar de forma independiente. Las líneas de control se pueden programar para generar una interrupción al activarse (las cuatro), mantener el puerto de E/S correspondiente (CA1 y CB1), generar automáticamente señales de control de flujo para los dispositivos conectados a los puertos de E/S o funcionar como salidas programables (CA2 y CB2). CB1 y CB2 también se utilizan como entrada de reloj y línea de datos para el registro de desplazamiento, lo que impide su uso para otras funciones mientras el registro de desplazamiento esté habilitado.

Temporizadores

El VIA proporciona dos temporizadores/contadores de 16 bits. Cada uno puede usarse en modo monoestable (de un solo disparo ) como temporizador de intervalos; el temporizador 1 también puede usarse en modo de funcionamiento continuo (con divisor/ onda cuadrada ), en el que se reinicia automáticamente con el conteo inicial al llegar a cero, y el temporizador 2 puede usarse en modo de conteo de pulsos, en el que cuenta las transiciones de estado alto a bajo del pin PB6 (el séptimo bit del puerto de E/S paralelo B). En el modo monoestable, cada temporizador continúa funcionando de forma continua para determinar el tiempo transcurrido desde que se alcanzó el cero, pero no se emite ninguna otra interrupción hasta que se reinicia. Cada temporizador puede generar una interrupción al llegar a cero, y el temporizador 1 también puede emitir pulsos (en el modo de temporizador de intervalos) u ondas cuadradas (en el modo de funcionamiento continuo) en el pin PB7 (el octavo bit del puerto B). El temporizador 2 se puede usar para proporcionar la frecuencia de reloj para el registro de desplazamiento. Una característica útil del modo de funcionamiento libre es que el pestillo del contador de 16 bits se puede cargar con un nuevo conteo sin recargar el contador, de modo que cargará el nuevo conteo solo después de que el conteo actual llegue a cero, cambiando la frecuencia de salida sin interrupciones. Esta característica del temporizador 1, combinada con su capacidad de salida al pin PB7, se puede usar para generar formas de onda complejas, por ejemplo, señales de modulación por ancho de pulso , barridos de frecuencia o flujos de bits seriales bifásicos o codificados en FM . [ 2 ]

Registro de turnos

El registro de desplazamiento del VIA es bidireccional, de 8 bits de ancho y puede funcionar con un reloj generado por el temporizador 2, el reloj de la CPU o una fuente externa en la línea CB1. La entrada/salida serie se encuentra en la línea CB2 , y CB1 también puede programarse para generar una señal de reloj de bits para dispositivos serie externos sincronizados .

Salida IRQ

El NMOS 6522 tiene una salida IRQ de drenaje abierto que puede utilizarse en circuitos de interrupción OR cableados . El WDC W65C22S, en cambio, tiene una salida IRQ de tipo tótem que debe aislarse de un circuito OR cableado mediante un diodo Schottky , debido a que la salida de tipo tótem activa el pin IRQ a nivel alto cuando el W65C22S no está generando interrupciones. Este problema específico se resuelve en el WDC W65C22N, que está equipado con una salida IRQ de drenaje abierto. [ 3 ]

Insectos

Debido a un defecto de diseño, si el flanco en CB1 cae dentro de unos pocos nanosegundos del flanco descendente del reloj ϕ2 (fase 2), el flanco de CB1 será ignorado, lo que provocará la pérdida de un bit y errores de trama en los datos subsiguientes.

Una solución alternativa consiste en colocar la señal de reloj externa en la entrada D de un flip-flop 74ACT74 , conectar la salida Q del flip-flop al pin CB1 del 6522 y sincronizar el flip-flop con ϕ0 o ϕ2. [ 4 ]

El error del registro de desplazamiento en serie se corrigió en el microcontrolador CMD G65SC22 de California Micro Devices y en el MOS 6526 , este último dispositivo que Commodore utilizó en lugar del 6522 a partir del Commodore 64 .

Además del mencionado error en el registro de desplazamiento, existía un posible problema de corrupción de registros que generalmente solo ocurría en sistemas que utilizaban el 6522 con un microprocesador con una arquitectura de bus distinta a la del 6502 , como el Motorola 68000. Si las líneas de dirección cambiaban mientras la selección de chip estaba en nivel bajo (inactiva) pero la entrada de reloj ϕ2 estaba en nivel alto (activa), el contenido de los registros podía modificarse a pesar de que el chip no estuviera seleccionado. Este problema se solucionó en algunas versiones CMOS, pero no en todas.

Referencias

  1. La unidad de disquete [Commodore] 1541 tiene dos chips del tipo MOS 6522...
  2. Catálogo de datos tecnológicos de MOS de 1982, págs. 2-54 y 2-55
  3. Adaptador de interfaz versátil W65C22 (VIA)
  4. Wilson, Garth
  • Hoja de datos preliminar del MOS 6522 VIA (1977)
  • Imágenes del chip MOS 6522 VIA
  • Descripción del WDC W65C22