Motorola 6883

De El Museo de los 8 bits
Saltar a: navegación, buscar
SN74LS783
Patillaje del SAM

El SN74LS783/MC6883 Synchronous Address Multiplexer (SAM) es un microchip de múltiples funciones en un encapsulado DIP de 40 pines, fabricado por Motorola, y pensado para actuar en conjunto con el VDP Motorola 6847 y los microprocesadores Motorola 6800, Motorola 6801E, Motorola 6809E y Motorola 68000, sustituyendo numerosos chips pequeños tipo LS/TTL. Se encarga de las siguientes tareas:

  • Generación y sincronización de reloj para la CPU y el VDG
  • Control y refresco de hasta 64 KB de Memoria de Acceso Aleatorio Dinámica (DRAM). 96 KB el SN74LS785
  • Selección de dispositivos basada en la dirección de memoria de la CPU para determinar si el acceso de la CPU es a DRAM, ROM, PIA, etc.
  • Duplicación del contador de dirección del VDG para "alimentar" al VDG con los datos que está esperando

Su propósito principal era controlar la DRAM pero también integraba algunas otras funciones. Generalmente estaba conectado con un cristal a 4 veces la frecuencia del colorburst del televisor (14.31818 MHz para los países NTSC). Internamente se dividía por 4 y con el resultado alimentaba al VDG para su propia sincronización interna (3.579545 MHz para NTSC). El SAM también dividía el reloj principal en 16 (8 en ciertos casos) para el reloj de dos fases de la CPU, esto era 0,89 MHz en NTSC (ó 1,8 MHz si era dividido por 8).

El SN74LS783 original podía manejar memorias de 4K x 1, 16K x 1 y 64K x 1 (128 columnas de refresco). Motorola sacó una segunda versión, etiquetada SN74LS785 que soportaba además memorias de 16K x 4 y 64K x 1 (256 columnas de referesco) y ROMs de bajo consumo (como la MCM68364) sin necesidad de circuitería adicional. Esto se lograba mediante un contador de refresco de 8 bits. Varias ampliaciones de memoria para equipos basados en estos chips (como los Dragon 32 o los CoCo que utilizan DRAM de 256K con conmutación de bancos de memoria requerían de un SN74LS785.

Cambiar el SAM para operar a 1.8 MHz daba a la CPU el tiempo usado ordinariamente por el VDG y el refrescamiento, teniendo como efecto colateral que la pantalla mostrara basura. Este modo fue raramente usado. Sin embargo, había un inusual modo disponible en el SAM llamado modo Dependiente de la Dirección, en donde la lectura de la ROM, puesto que no usaba la DRAM, ocurría a 1.8 MHz pero el acceso regular de la RAM ocurría a .89 MHz. En efecto, puesto que el intérprete BASIC corría desde la ROM, poniendo la máquina en este modo doblaba aproximadamente el desempeño de los programas escritos en BASIC mientras que mantenía la exhibición de video y el refresco de la DRAM. Por supuesto, esto destrozaba los ciclos de sincronización del software y las operaciones de I/O eran afectadas. Sin embargo, a pesar de estos problemas, la instrucción "poke de alta velocidad" fue usada por muchos programas BASIC, aunque causaba un overclocking en un hardware diseñado para operar a 1 MHz.

El SAM no tenía ninguna conexión al bus de datos del MPU. Debido a esto, estaba programado de una manera curiosa, su registro de configuración de 16 bits está distribuido a través de 32 direcciones de memoria (FFC0-FFDF). Escribir a bytes pares, ponían el registro correspondiente a 0, y escribir a bytes impares lo ponían a 1.

Debido a las limitaciones en el empaquetado de 40 pines, el SAM contenía un duplicado del contador interno de dirección de 12 bits del VDG. Normalmente los ajustes del contador estaban dispuestos para duplicar el modo de exhibición de video del VDG. Sin embargo esto no era requerido y resultaba en la creación de algunos nuevos modos de exhibición de video no posibles cuando era usado solamente el VDG en un sistema. En vez de que el VDG leyera por sí mismo datos de la memoria RAM, éste era "alimentado" con datos por la copia interna en el SAM del contador de dirección del VDG. Este proceso era llamado por Motorola como "Interleaved Direct Memory Access" (IDMA) (Acceso Directo de Memoria Intercalado), y aseguraba que el procesador y el VDG siempre tuvieran acceso completo, sin estados de espera o contención, a este recurso de memoria compartido.

Patillaje del SAM

Nombre # Descripción
Vcc 40 Alimentación a +5 Voltios. El SAM consume menos de 230 mA.
GND 20 Masa para el Vcc
A15 36 Bit más significativo
A14 37 Bits de direcciones de la CPU (A0-A15). Las señales vienen directamente de la CPU y se utilizan para direccionar hasta 64 KB direcciones de memoria, o indirectamente hasta 96 KB.
A13 38
A12 39
A11 1
A10 2
A9 3
A8 4
A7 24
A6 23
A5 22
A4 21
A3 19
A2 18
A1 17
A0 16 Bit menos significativo
R/W 15 CPU READ o WRITE. La señal viene directamente de la CPU y para permitir escribir en el registro de control del SAM, en la memoria dinámica (mediante WE) y para haiblitar la selección del dispositivo 0
OscIn 5 Entrada del cristal externo
DA0 8 Display Adress DA0. La función primaria de este pin es leer el bit menos significativo de una dirección de pantalla de 16 bits. Los 15 bits más significativos son salidas para un contador interno de 15 bits que está controlado por DA0. La función secundaria del pin es indirectamente leer el nivel lógico del pin FS (Field syncronization pulse) para actualizar la dirección vertical de video.
HS 9 Horizontal Syncronization La función primaria del pin es detectar la caída de nivel del pin de la VDG HS para iniciar el ciclo de refresco de la RAM. La función secundaria es resetear los cuatro bits menos significativos del contador de direcciones de video
VClk 7 'VGD Clock La función primaria del pin es enviar una onda cuadrada de 3,579545 MHz al pin Clk de la VDG. La función secundaria es resetear el SAM cuando el pin se sitúa a nivel lógico 0.
OscOut 6 Aplica una resistencia de 1.5 kiloOmnios al cristal de 14,31818 MHz y un capacitador de 33 picofaradios como masa
S2 25 Bit más significativo.
(Device Select Bits) El valor binario de S0, S1 y S2 selecciona uno de ocho chunks del espacio de direcciones de la CPU (números 0 a 7). Cambiando la longitud esos chunks proporcionan un mecanismo eficiente de mapeo de memoria para ROM, RAM, vectores de la CPU y dispositivos de entrada/salida.
Bit menos significativo
S1 26
S0 27
E 14 Enable Clock. E y Q están 90 grados fuera de fase y son usados por la CPU 6809E como relojes. Las CPU MC6800 y MC6801E sólo usan E, que también es utilizada por varios chips periféricos del MC6800
Q 13 Quadrature Clock
Z7 35 Bit más significativo
Z6 34 Primero, la menos significativa dirección de bits de la CPU o el VDP se presenta a Z0-Z5 (4K x 1 RAM) o Z0-Z6 (16K x 1 RAM) o Z0-Z7 (64K x 1 RAM). Téngase en cuenta que para las RAMs de 4K x 1 y 16K x 1, Z7 (pin 35) no es necesario para la información de direcciones. Sin embargo el pin 35 se usa también como RAS1
Z5 33
Z4 32
Z3 31
Z2 30
Z1 29
Z0 28 Bit menos significativo
RAS1 35 Row Adress Strobe 1 Este pulso estroboscópico almacena la menos significativa dirección de 6, 7 u 8 bits en la DRAM del banco 1
RAS0 12 Row Adress Strobe 0 Este pulso estroboscópico almacena la menos significativa dirección de 6, 7 u 8 bits en la DRAM del banco 0
CAS 11 Colum Adress Strobe Este pulso estroboscópico almacena la más significativa dirección de 6, 7 u 8 bits en la DRAM
WE 10 Write Enable cuando está bajo habilita a la CPU para escribir en la RAM dinámica

Enlaces externos