domingo, 25 de junio de 2017

Sinclair ZX Spectrum 48K: Electrónica

En este artículo voy a analizar la electrónica de mi ZX Spectrum 48K. Si se quitan los tornillos de la parte inferior se puede levantar la tapa con el teclado incluido y queda a la vista la placa con todos los circuitos electrónicos aprovechando todo el espacio. Se hicieron varias versiones de este ordenador con cambios en los componentes, este en concreto es de la versión 3B.

El teclado se divide en tres partes. En la parte superior tiene una placa de metal pegada a la tapa de plástico con las inscripciones en diferentes colores. Debajo de esta placa se encuentra el teclado de goma con las teclas.

Debajo del teclado de goma está la membrana, que se conecta a la placa base mediante dos cables que pasan a través de sendas aberturas en la tapa. La membrana no es la original, ha sido cambiada. Parece ser que era un problema común que la membrana se rompiera y fuera necesario cambiarla.

Debajo de la membrana se encuentra la tapa de plástico que sirve de base del teclado. Cada uno de los cruces de las pistas de la membrana coincide con una tecla. La membrana se compone de tres láminas: dos con pistas conductoras de electricidad y otra que las separa, menos donde se cruzan las pistas, que hay un agujero para que puedan hacer contacto cuando se pulsa una tecla.

En la siguiente imagen se ven las tres partes del teclado: membrana, teclado de goma y placa de metal.

Para saber cual es la tecla pulsada, el teclado consta de una matriz de 5 columnas y 8 filas, en total 40 teclas. Tiene 5 columnas, a las que llegan cinco pistas por el cable de la izquierda. Cada columna abarca 4 teclas en cada lado del teclado, unidas por una pista en la parte inferior. Y tiene 4 filas por cada lado del teclado, a las que llegan 8 pistas por el cable de la derecha.

Las pistas de las columnas van por una lámina y las pistas de las filas por la otra. Cuando se presiona una tecla y se hace contacto en un cruce de pistas se ponen en contacto una pista del cable izquierdo con una pista del cable derecho indicando la posición en la matriz y por tanto la tecla.

Por ejemplo, si presionamos la tecla "F" se ponen en contacto la cuarta pista del cable de la izquierda con la pista tercera del cable de la derecha, columna 4 y fila 3.

La membrana se conecta a la placa en dos conectores, con 5 y 8 contactos, que se encuentran a los dos lados de la placa y que seguramente tampoco son los originales.


En la parte de arriba a la derecha de la placa, conectado a la entrada de 9 V sin regular, se encuentra el regulador de voltaje de 5 V 78005AP que suministra un voltaje constante de 5 V de corriente continua a los componentes del ordenador.

Si se quita la placa de metal atornillada al regular de voltaje y que le sirve de disipador de calor se pueden ver el bus de expansión y algunos chips que estaban tapados por la placa, quedando a la vista todos los componentes. En el manual de servicio se puede ver un esquema con la interconexión de los componentes.

El bus de expansión tiene 27 contactos por cada cara. Entre los contactos número 4 y 5 hay una muesca que hace de guía de inserción para que no sea posible conectar los dispositivos al revés. Este bus permite acceder a las señales internas del ordenador para conectar todo tipo de aparatos y ampliaciones.

Debajo del bus de expansión se encuentra la memoria ROM D23128C de 16 KiB, fabricada por NEC, donde se encuentran las funciones y datos básicos del sistema y el interprete de BASIC. Esta memoria se encuentra en el principio del espacio de direcciones del procesador (0x0 - 0x3FFF).

Debajo de esta memoria está el procesador Zilog Z80A. En esta ocasión fabricado por la empresa SGS Microelettronica (ahora parte de STMicroelectronics) con el nombre Z8400. Era común que se licenciara la fabricación de los procesadores a otras empresas para que hicieran de "segunda fuente" para poder tener más producción y que el cliente no dependiera de una sola empresa y evitar que posibles problemas en la producción de esta bloquearan el suministro de chips.

De las 40 patas que tiene el chip 8 se utilizan para el bus de datos, por eso se dice que el procesador es de 8 bits (1 byte). Otras 16 patas se utilizan para el bus de direcciones, por eso el bus de direcciones es de 16 bits, lo que permite 216 = 65536 direcciones. Cada dirección contiene 8 bits, lo que puede leer o escribir a la vez el bus de datos de 8 bits. Esto hace que el procesador pueda acceder a un total de 65536 bytes = 64 KiB. El resto de patas pertenecen al bus de control, a excepción de la alimentación de 5 V y la conexión a tierra (GND).

Abajo a la izquierda de la placa base se encuentran 8 chips 4116 de 2 KiB de RAM que forman la memoria estándar de 16 KiB de los modelos Spectrum 16K y Spectrum 48K. Cada chip está compuesto de una matriz de bits de 128 filas por 128 columnas. Para acceder a cada posición se utiliza una dirección de 14 bits, 7 para la fila y 7 para la columna, que se toma de los últimos 14 bits del bus de direcciones del procesador. La memoria estándar se encuentra a continuación de la ROM en el espacio de direcciones del procesador (0x4000 - 0x7FFF).

El procesador Z80, con su bus de datos de 8 bits (8 líneas), accede a la memoria en bloques de 8 bits (1 byte). Cada uno de los 8 bits se encuentra en uno de los 8 chips y se accede a ellos utilizando la misma dirección de 14 bits para todos los chips y una línea del bus de datos del procesador por cada chip.

Debajo del procesador y la memoria ROM, en el modelo 48K, se encuentran 8 chips que forman la memoria expandida, que se encuentra en el espacio de direcciones sobre la estándar (0x8000 - 0xFFFF). En este caso son Texas Instruments TMS4532-15NL4 pero también podían ser el chip alternativo OKI MSM3732. Estos chips son memorias de 8 KiB defectuosas de las que solo se puede usar la mitad, 4 KiB.

Se fabricaban para tener 256 bits x 256 bits y direcciones de acceso de 8 bits por fila y 8 bits por columna. Si la memoria tenía defectos, pero solo en una de sus mitades, se podía utilizar la mitad sin defectos. Para ello había que fijar a 0 o 1 el primer bit de la dirección de las filas o columnas dependiendo si los fallos estaban al principio o al final. De esta forma quedan 7 bits de dirección con los que se pueden tener 27 = 128 direcciones que permiten acceder a la mitad sin fallos.

Estas memorias se etiquetaban como chips de 32 kibits (4 KiB) y se podían usar solo 128 filas x 256 columnas (parte superior o inferior) en los Texas Instruments o 256 filas x 128 columnas (parte izquierda o derecha) en los OKI. Estas memorias debían ser más baratas que otras de 4 KiB y las eligieron para reducir el coste del ordenador.

En total la dirección para acceder a la memoria expandida se compone de 7 + 8 = 15 bits que se toman de los últimos 15 bits del bus de direcciones del procesador. Al igual que la memoria estándar los grupos de 8 bits se reparten entre los 8 chips y el procesador accede a ellos de la misma forma.

Mediante unos enlaces en la parte superior de la placa, al lado de los conectores de la grabadora, se indica el fabricante y la mitad operativa. Los chips deben ser del mismo fabricante y tener la misma mitad de la memoria operativa ya que estos enlaces son para todos los chips.

El fabricante puede ser Texas Instruments (TI) o OKI y la parte operativa 3 o 4 para TI y L o H para OKI. En el caso de mi ordenador se ve como están soldados los enlaces TI y 4.

Así que los 8 chips proporcionan solo 32 KiB de memoria RAM expandida al ordenador, que junto a los 16 KiB de la memoria estándar forman los 48 KiB de RAM del modelo 48K. Si a eso se le suman los 16 KiB de la ROM se llega hasta los 64 KiB utilizables con el direccionamiento de 16 bits del procesador Z80.

Encima de la memoria estándar se encuentra un chip ULA (Uncommitted Logic Array). Este tipo de chips los provee el fabricante con una serie de funciones generales y es el cliente el que usa esas funciones para diseñar funciones específicas que son incorporadas al chip.

En este caso el fabricante es Ferranti y Sinclair Research, creadores del Spectrum, usaron el chip para implementar varias funciones específicas que integran al resto de componentes:

  • Generación de la imagen en formato YUV.
  • Lectura y grabación en la grabadora de casetes.
  • Generación de sonido en el altavoz.
  • Direccionamiento de memoria.
  • Lectura de pulsaciones de teclado.

Al basarse en un chip ya parcialmente diseñado y unir varias funciones en un solo chip se reducían costes.

El chip ULA está directamente conectado a la memoria estándar y tiene preferencia de acceso sobre el procesador. En los primeros 6912 bytes se escribe la información que usa el ULA para crear la imagen.

El conector del teclado de 5 contactos va conectado al chip ULA y el de 8 al bus de direcciones del procesador. El bus de datos del procesador está conectado al chip ULA. De esta forma se cierra el circuito de la matriz del teclado y el procesador puede escanear las teclas pulsadas.

A la izquierda del procesador se encuentran 6 chips de la serie 7400 que se utilizan para interactuar con los chips de memoria. Las letras del inicio indican el fabricante y las del centro la tecnología que utilizan. Es posible que alguno de los chips no sean los originales y varíe el fabricante o la tecnología.

Cada uno de los 4 chips 74LS157 contiene 4 multiplexores 2 a 1. En grupos de dos permiten dividir las direcciones de 14 y 15 bits del procesador en 7/8 bits para las filas y en 7/8 bits para las columnas de las matrices de bits de los chips de memoria. Los dos chips junto al procesador se usan para la memoria estándar y los otros dos para la memoria expandida.

Ya que las memorias ROM, estándar y expandida están conectadas al mismo bus de datos y direcciones del procesador, es necesario un sistema que detecte a que memoria pertenece la dirección solicitada por el procesador para activar solo los chips que pertenecen a esa memoria.

Los dos primeros bits de la dirección permiten al ordenador diferenciar entre las tres partes de las que se compone la memoria del ZX Spectrum 48K: ROM (00), estándar (01) y expandida (10 y 11).

El chip 74HCT32 tiene 4 puertas OR y el 74HCT00 4 puertas NAND. Estos chips reciben ordenes de lectura o escritura desde el procesador a través del bus de control. Si detectan que la dirección del bus de direcciones pertenece a la memoria expandida, al tener el primer bit activado, proceden a preparar los chips de memoria expandida para la lectura o escritura.

Primero seleccionan la dirección de la fila mediante los multiplexores y ordenan a los chips de memoria que la lean. A continuación seleccionan la dirección de la columna y de igual forma ordenan a los chips de memoria que la lean. De esta forma los chips de memoria quedan preparados para la lectura o escritura en la fila y columna requerida a través del bus de datos del procesador.

En el caso de las direcciones pertenecientes a la memoria estándar estas funciones las realiza el chip ULA. Ese chip también se encarga de activar o desactivar la memoria ROM.

A la izquierda del chip ULA se encuentra el chip LM1889N y varios transistores que reciben la imagen del ULA y la convierten en vídeo compuesto con sistema PAL.

Junto al chip ULA se hayan dos resonadores de cuarzo. Uno de 4,433618 MHz para la frecuencia de la subportadora de crominancia del sistema PAL en el chip LM1889N y otro de 14 MHz, dividido entre dos (7 MHz) para el dibujado de la imagen por el chip ULA y dividido por cuatro (3,5 MHz) para el procesador Z80A.

Cada imagen se compone de 352x296 puntos. El chip ULA dibuja uno de estos puntos por cada ciclo suyo o lo que es lo mismo, dos puntos por cada ciclo del procesador. Además consume 96 ciclos en comenzar una nueva línea de puntos y el equivalente al tiempo necesario para dibujar 16 líneas antes de cada nueva imagen. Así que 448 ciclos (352 + 96) por línea, por 312 líneas (296 + 16), hacen un total de 139776 ciclos por imagen.

El chip ULA funciona a 7 MHz, 7 millones de ciclos por segundo. Dividido entre 139776 ciclos por imagen son 50,08 imágenes por segundo, lo que se aproxima lo suficiente a las 50 imágenes por segundo del sistema PAL para que no hubiera problema en que el televisor mostrara las imágenes.

El procesador Z80A podía funcionar a un máximo de 4 MHz pero los diseñadores del ordenador debieron pensar que era mejor perder algo de velocidad de proceso usando solo 3,5 MHz para poder utilizar un solo resonador para el chip ULA y el procesador reduciendo costes y simplificando la sincronización entre ambos.

El procesador recibe la frecuencia de 3,5 MHz desde el chip ULA. Como la información necesaria para crear la imagen se encuentra en la memoria estándar, el chip ULA tiene preferencia sobre el procesador para leer esta memoria y poder crear la imagen a la velocidad necesaria sin depender o ser interferido por el procesador. Si el procesador intenta leer o escribir esa parte de memoria mientras el chip ULA la está leyendo, este corta la frecuencia de 3,5 MHz, parando el procesador hasta completar la lectura. Este sistema recibe el nombre de Contended Memory.

En la parte de arriba a la izquierda de la placa base se encuentra una pequeña caja de metal que contiene el modulador de televisión UHF, fabricado por la empresa Astec International. Ahí llega la señal de vídeo compuesto, es modulada en UHF y a través de un conector RCA hembra sale la señal de televisión para conectar el ordenador a la toma de antena del televisor.


Al lado del modulador se encuentran los dos conectores hembra de audio analógico. Estos conectores se utilizan para la conexión de datos con la grabadora de casetes, para el sonido se utiliza un altavoz conectado a la placa abajo a la derecha y controlado por el chip ULA, sin utilizar un chip dedicado de sonido.

Por el reverso de la placa base se pueden ver las conexiones de todos los componentes. Arriba a la izquierda se encuentran los 27 contactos más muesca de este lado del bus de expansión y abajo a la izquierda está el hueco del altavoz por el que puede salir el sonido.

Arriba a la derecha se puede leer el nombre de la empresa (Sinclair), el modelo de ordenador (ZX Spectrum), el año de fabricación (1983) y la versión (3B).

Por último en la siguiente foto se pueden ver todas las piezas. De arriba a abajo y de izquierda a derecha: carcasa inferior, placa base, tornillos de la carcasa, tapa de modulador UHF, adaptador de corriente, membrana del teclado, teclado de goma, placa de metal del teclado y carcasa superior. El adaptador de corriente no es el original sino uno compatible.

Después de familiarizarnos con la electrónica del ordenador es hora de hacer una pequeña modificación para poder utilizar el ordenador con televisores modernos o capturadoras de vídeo. En el siguiente artículo, ZX Spectrum 48K: Vídeo compuesto, se muestra como sacar la señal de vídeo compuesto por el conector RCA de la salida UHF.

5 comentarios:

  1. muy bueno el articulo uno de los mejores

    ResponderEliminar
  2. Hola,
    Conecté por error al spectrum un transformador que no era el adecuado. Salió un poco de humo y dejo de funcionar. ¿Que parte crees que puede estar dañada?

    ResponderEliminar
    Respuestas
    1. Posiblemente el regulador de voltaje 7805. Es el encargado de tomar la corriente de 9V del adaptador y suministrar 5V a los componentes del ordenador. En el artículo se puede ver una foto, esta al lado de la toma de corriente y atornillado a la placa de metal que le sirve de disipador. Hay que comprobar que en una de sus patas tenga 5 V. Si solo se ha roto eso es fácil encontrar un repuesto y cambiarlo.

      Eliminar
  3. Buenas tardes, acabo de ver este articulo y me parece un gran trabajo. Me gustaría reperar mi zx spectrum despues de 25 años. En su momento fallo por que le conecté al bus de expansión reles mecánicos para luces de 230 VAC conectadores por transistores, tras unos días de repente el ordenador falló. ¿que chip pudiera haberse afectado?, gracias.

    ResponderEliminar
    Respuestas
    1. ¿El ordenador se enciende?. ¿Sale algo por pantalla? Lo primero que puedes comprobar es si el adaptador de corriente suministra 9-12V aproximadamente, puede variar ya que es sin regular. Y a continuación si funciona el regulador de voltaje 7805. En una de sus patas debe tener 5V para alimentar los componentes. Si alguno de los chips se caliente mucho seguramente esté cortocircuitado. Si tienes un osciloscopio puedes mirar las entradas y salidas de los chips para ver su actividad. Si algún condensador tiene una mancha seguramente esté roto. Si arranca el ordenador quizás puedas ejecutar algún programa de chequeo de memoria.

      Eliminar