martes, 25 de mayo de 2021

Toshiba MSX HX-10 64K: Electrónica

Después de utilizar mi Toshiba HX-10 64K me dispuse a abrirlo para inspeccionar su electrónica. Tiene muchas cosas en común con ordenadores y consolas de la época como el ZX Spectrum 48K, el IBM PC 5150 o la Atari 2600. También tiene cosas diferentes que analizaré a continuación.

Si quitamos los tornillos de la parte de abajo, a excepción de los que sujetan el transformador, podremos levantar la tapa con el teclado. Hay que levantarla con cuidado porque el teclado tiene dos grupos de cables conectados a la placa base. Para terminar de quitar la tapa debemos desconectar estos cables. Una vez quitada la tapa podremos ver el interior del ordenador y la parte de abajo del teclado.


En la placa base, abajo a la derecha, hay dos conectores de nueve y once pines a los que se conectan los cables del teclado. Estos cables también están conectados a las pistas que discurren por debajo del teclado. Los últimos tres pines del conector de once se utilizan para conectar dos cables para los dos leds del teclado y otro para alimentarlos con 5 V. El resto se utilizan para las teclas. A cada tecla llega una pista desde cada uno de los dos conectores formando una matriz de 9 x 8 = 72 teclas que tiene el teclado. La tecla Shift está repetida y a las dos teclas llegan las mismas pistas, haciendo que sea solo una tecla de la matriz.

Por la parte de abajo del teclado se pueden ver los contactos de las teclas y las pistas que los unen. Cada tecla tiene cuatro contactos pero no son los cuatro que están juntos como se puede intuir en un principio sino los que están más separados. En la siguiente imagen se muestran los contactos de la tecla "I" rodeados por un cuadrado blanco. Aunque no se pueda ver por este lado de la placa los contactos de arriba están unidos entre si, lo mismo pasa con los de abajo. En la imagen se indica esta unión con una línea roja y otra azul respectivamente. Por los contactos de arriba pasa una pista de uno de los conectores de la placa (roja) y por los contactos de abajo pasa una pista desde el otro conector (azul). Cuando la tecla es pulsada los contactos de arriba y los de abajo se unen (líneas amarillas) haciendo que la pista de un conector (roja) se una con la pista del otro conector (azul) cerrando un circuito de la matriz. El ordenador puede comprobar todas las combinaciones de dos pistas de la matriz para saber donde se ha cerrado el circuito y que tecla ha sido pulsada.

Arriba a la izquierda se encuentra el transformador. Indica que la toma de corriente es de 240 V pero he podido comprobar que a 220 V funciona correctamente. Proporciona dos voltajes de corriente alterna (8,5 V y 16 V) que en la placa son convertidos a corriente continua. A partir de esos voltajes se generan otros menores y regulados mediante reguladores de voltaje formados por un transistor, un diodo zener y otros componentes.

A la derecha del transformador se encuentra un transistor T-B435 que forma parte del regulador que convierte la tensión de 8,5 V a 5 V para alimentar los componentes del ordenador. El transistor se encuentra atornillado a un disipador de calor.

Más a la derecha hay otros dos transistores. Un T-D880 del regulador que convierte la tensión de 16 V a 12 V y un T-A473 del regulador que la convierte a -12 V. Estos voltajes se utilizan en algunos contactos de la ranura de cartuchos.

Siguiendo el estándar MSX el ordenador tiene un procesador Zilog Z80A fabricado por la empresa Sharp. El procesador tiene un bus de datos de 8 bits y un bus de direcciones de 16 bits. Esto le permite acceder a 216 = 65536 direcciones de 8 bits, en total 65536 bytes = 64 KiB. Para su frecuencia de funcionamiento utiliza un resonador de 3,579545 MHz.


La memoria RAM está compuesta por 8 memorias DRAM HM4864AP-15 de 8 KiB, lo que hace un total de 64 KiB. Cada chip se compone de una matriz de 256 x 256 bits = 65536 bits = 8192 bytes = 8 KiB y permiten leer o escribir un bit a la vez a través de los pines Din (escritura) y Dout (lectura). Los chips tienen un bus de direcciones de 8 bits (28 = 256 direcciones) a través del cual se le indica primero la fila y luego la columna del bit que se quiere leer o escribir.

Cada uno de los 8 pines del bus de datos del procesador se conecta a los pines de lectura y escritura de uno de los 8 chips de memoria, lo que le permite leer o escribir 8 bits a la vez, un bit de cada chip. La dirección de memoria de 16 bits del bus de direcciones del procesador se utiliza para los 8 chips de memoria (8 bits para la fila y 8 bits para la columna). De esta forma cada dirección apunta a los 8 bits que puede leer o escribir el procesador a la vez.

Otro componente importante del estándar MSX es el chip de vídeo Texas Instruments TMS9918 o alguna de sus variantes. Este ordenador incluye la variante TMS9929A que tiene una salida de vídeo YPbPr a 50 Hz para su posterior codificación en PAL o SECAM. No se puede ver la inscripción con el modelo porque tiene pegado encima un disipador de calor. El chip permite tres modos gráficos, uno de texto y el uso de "sprites". Para su frecuencia de funcionamiento utiliza un resonador de 10,6875 MHz.


A la izquierda del ordenador, fuera de la placa base, se encuentra el codificador PAL EMC PB3605E. A él llega la señal de vídeo del chip TMS9929A a través de seis cables.

El codificador convierte la señal a vídeo compuesto PAL usando un chip LVA510. Para la frecuencia de la subportadora de crominancia se utiliza un resonador de 4,433619 MHz.


Mediante un cable, protegido por una funda de plástico, la señal de vídeo compuesto es enviada a la parte superior de la placa donde se encuentra el modulador de televisión y la salida de vídeo compuesto. El modulador inserta la señal de vídeo compuesto y el audio en un canal de televisión para que se pueda ver y oír en televisores que no tengan entrada de vídeo compuesto y audio. Se encuentra encerrado en una caja de metal para evitar emitir ondas electromagnéticas que pudieran interferir en el funcionamiento del ordenador u otros aparatos.

Por el reverso de la placa base se puede ver como el modulador de televisión tiene un tornillo que al girarlo modifica la frecuencia del canal de televisión. Cambiar la frecuencia era necesario si el canal coincidía con otro canal ya utilizado o el televisor tenía problemas sintonizándolo.

El chip TMS9929A utiliza para almacenar la información de la imagen a mostrar una memoria de 16 KiB formada por ocho memorias DRAM 4116 de 2 KiB. Esta memoria no es accesible directamente por el procesador. Para escribir o leer en ella es necesario utilizar el chip TMS9929A.

El estándar MSX también indicaba que el ordenador debía tener un generador de sonido General Instrument AY-3-8910. El chip tiene tres canales de audio y además dispone de dos puertos de entrada/salida de 8 bits usados para los puertos de joystick.

A la izquierda del procesador se encuentra una memoria ROM MB83256 de 32 KiB donde se almacenan el BIOS (Basic Input/Output System) y MSX-BASIC, el entorno de desarrollo y ejecución de BASIC.

Arriba a la derecha se halla la ranura para cartuchos con 50 contactos, algunos ordenadores MSX tenían dos ranuras. El estándar MSX define un sistema de seguridad para no utilizar el cartucho hasta que esté completamente insertado. Se entiende que el cartucho está completamente insertado cuando los contactos SW1 y SW2 de la ranura están unidos. Mientras no hay un cartucho insertado el ordenador mantiene unidos estos dos contactos mediante un interruptor. A la derecha de la ranura hay una palanca que es presionada por el cartucho al introducirlo y abre el interruptor desuniendo los contactos. Cuando el cartucho está completamente introducido este se encarga de unir los contactos.


El bus de expansión, al que se accede por detrás del ordenador, tiene el mismo número de contactos que la ranura de cartuchos, con la misma función pero distinto formato físico. Por el reverso de la placa base se puede ver como la ranura de cartuchos y el bus de expansión están conectados a las mismas pistas de la placa base, con alguna excepción como los contactos SW1 y SW2. La ranura recibe el nombre de "SLOT #1" y el bus "SLOT #3". "SLOT #2" se asignaría a la segunda ranura si el ordenador la tuviera.

Por la parte inferior de los cartuchos se pueden ver los contactos que se introducen en la ranura de cartuchos.

Si abrimos el cartucho podremos ver la placa de circuitos en la que se encuentran los contactos, en este caso 18 por cada cara. Estos contactos están unidos a un chip de memoria ROM 9128CS-1578 que contiene el programa o juego. Se puede ver que este cartucho no necesita usar los contactos 50-49 (primeros contactos) y 16-5 (espacio sin contactos a la derecha).


También podemos ver que los contactos SW2 y SW1 (46 y 44) están unidos para cumplir con el sistema de seguridad en la inserción de cartuchos. El contacto SW1 tiene recortada la punta para asegurar que se produzca la unión en los contactos de la ranura cuando el cartucho esté completamente insertado.

Los componentes mencionados anteriormente y el puerto de impresoras se conectan directamente al bus de datos del procesador. La RAM, ROM, cartuchos y dispositivos del bus de expansión también se conectan al bus de direcciones. El procesador solo puede interactuar con uno de estos dispositivos a la vez. Para intercambiar los dispositivos y seleccionar cual usar en cada momento se utiliza el chip TCX-1007 creado por Toshiba para este ordenador.

El procesador solo puede acceder por sus propios medios a 64 KiB de memoria. Entre ROM, RAM, cartuchos y dispositivos de expansión suman más de esa cantidad. Para solucionar este problema la primera versión del estándar MSX define el sistema de "slots". A partir de la segunda versión se pueden utilizar también "memory mappers". En el sistema de "slots" hay cuatro "slots" primarios y cada uno ellos puede tener cuatro "slots" secundarios. Los "slots" tienen 64 KiB y cada uno de ellos se divide en páginas de 16 KiB. En total se puede usar hasta 64 KiB x 16 slots = 1024 KiB de memoria. Cada componente físico tiene asignado parte de un "slot" o un "slot" completo. El BIOS incluye funciones para seleccionar "slots" y realizar operaciones como lectura, escritura o ejecución de funciones.

Ese es el sistema software que puede utilizar cualquier programa para MSX y funcionará en cualquier ordenador que implemente el estándar. A nivel hardware, en este ordenador, el chip TCX-1007 es el encargado de activar el dispositivo adecuado dependiendo del "slot" seleccionado. En otro ordenador MSX el hardware puede ser completamente distinto. Junto al chip TCX-1007 se utilizan varios chips de la serie 7400 para la conexión y activación/desactivación de los componentes.

Para seleccionar una dirección de la memoria RAM se utilizan 2 chips selectores/multiplexores MB74LS157 que permiten dividir la dirección de 16 bits del procesador en 8 bits para la fila y 8 bits para la columna. Cada chip tiene 8 entradas y 4 salidas, las entradas se dividen en 2 grupos de 4 y el chip permite seleccionar que grupo conectar con las 4 salidas. Las entradas están conectadas a los 16 pines del bus de direcciones del procesador y las salidas a los 8 pines del bus de direcciones de los 8 chips de memoria.

El chip TCX-1007 está conectado al pin de selección de los chips selectores y a los pines RAS (Row Address Strobe) y CAS (Column Address Strobe) de los chips de memoria. Cuando se selecciona el "slot" de la RAM y el procesador quiere leer o escribir en una dirección, el chip TCX-1007 selecciona 8 bits de la dirección de memoria y activa el pin RAS de los chips de memoria para que lean la dirección de la fila. A continuación selecciona los otros 8 bits de la dirección de memoria y activa el pin CAS para que lean la dirección de la columna. De esta manera los chips de memoria quedan listos para que el procesador lea o escriba un bit en cada uno de ellos en la fila y columna seleccionadas.

Los chips de vídeo, audio, ROM, cartuchos y dispositivos de expansión tienen pines para su activación y desactivación. El chip TCX-1007 se conecta a esos pines para controlar que componente activar. El chip de vídeo TMS9929A tiene los pines CSR y CSW que es necesario activar para leer o escribir a través de su bus de datos. El chip de audio AY-3-8910 tiene los pines BCDIR, BC2 y BC1. Diferentes combinaciones de valores en estos tres pines ponen el chip en diferentes estados para activarlo, desactivarlo, leer o escribir. La memoria ROM MB83256 tiene dos pines, E y EO, que tienen que estar en nivel bajo para activar la memoria. Los cartuchos y dispositivos de expansión, que son un "slot" de memoria, tienen el pin SLTSL (Slot Select) para seleccionarlos.

Entre el procesador y la ranura de cartuchos/bus de expansión se encuentran cuatro chips HD74LS367AP con seis puertas "buffer" cada uno. Estos chips se conectan entre los buses de direcciones/control del procesador y la ranura de cartuchos/bus de expansión. Dos de las puertas se usan para conectar el chip TCX-1007 a los pines CLOCK y RESET de la ranura de cartuchos/bus de expansión.

La activación y desactivación de las puertas que usa el procesador se realiza en los pines G mediante un flip-flop de un chip MB74LS74A. Las puertas que usa el chip TCX-1007 están controladas por un pin G conectado a tierra, por lo que siempre están activas. El flip-flop tiene conectado a sus entradas los pines WAIT, BUSRQ Y RESET del procesador.

Los pines de datos del puerto de impresora están conectados al bus de datos del procesador mediante un chip MB74LS373. Este chip tiene ocho entradas conectadas al bus de datos del procesador y ocho salidas conectadas a los pines de datos de la impresora. Para controlar su activación tiene los pines LE (Latch Enable) y OE (Output Enable). El pin LE está conectado al chip TCX-1007 y el OE a tierra. Cuando se necesita escribir en el puerto de impresora el chip TCX-1007 activa el pin LE.

El puerto de impresora además de los pines de salida tiene el pin de entrada BUSY para informar al procesador que la impresora está ocupada. Este pin se conecta a un pin del bus de datos del procesador mediante una puerta "buffer" del chip HD74LS367AP. El chip TCX-1007 controla la activación de la puerta mediante el pin G2. Otra puerta de este chip se utiliza para que el chip TCX-1007 active el led de mayúsculas activadas del teclado.

El chip TCX-1007 también se encarga de escanear la matriz del teclado para detectar las teclas pulsadas. Se conecta al primer conector del teclado mediante un decodificador BCD a decimal HD74LS145P. A los primeros ocho pines del segundo conector se conecta directamente.

El chip TCX-1007 envía continuamente al decodificador por sus cuatro pines de entrada los números del 0 al 8 en binario y el decodificador pone todos sus pines de salida en voltaje alto menos el de la posición del número recibido. Esto hace que se vayan poniendo sucesivamente las líneas del primer conector a nivel bajo. Cuando una tecla es pulsada y una línea de un conector hace contacto con una línea del otro, el chip TCX-1007 detecta a través de la línea del segundo conector el voltaje bajo de la línea del primer conector y sabe que se ha pulsado la tecla donde se juntan las dos líneas.

EntradaSalida
012345678
0000011111111
0001101111111
0010110111111
0011111011111
0100111101111
0101111110111
0110111111011
0111111111101
1000111111110

El chip TCX-1007 también controla la lectura y escritura en casete. Para activar el motor de la grabadora se utiliza un relé situado en la parte de arriba de la placa base.

Los 8 pines de entrada/salida de los dos puertos para joystick u otros dispositivos están conectados a pines de entrada/salida del chip AY-3-8910. Los pines 1, 2, 3, 4, 6 y 7 (arriba, abajo, izquierda, derecha, botón 1, botón 2) de los dos puertos comparten para la entrada seis pines del chip. Para ello se conectan a través de dos chips selectores/multiplexores MB74LS157 iguales a los usados con la memoria RAM. El chip AY-3-8910 se encarga de seleccionar el joystick del que recibir datos. Los pines 8, de salida, se conectan directamente a dos pines del chip AY-3-8910. Los pines 6 y 7 de los botones también son de salida para recibir información, como por ejemplo la orden de hacer vibrar el joystick. Para la salida de estos pines se utilizan otros 4 pines del chip AY-3-8910 y un chip HD74LS09P con puertas AND de dos entradas. Una entrada está conectada al pin del chip AY-3-8910 y la otra a VCC, por lo que las puertas siempre están activas y funcionan como "buffers". La salida se conecta al pin de botón del puerto de joystick.

Por último en la siguiente imagen se muestra la placa base indicando la posición de los principales componentes.

Esta es a grandes rasgos la construcción del aparato. En posteriores artículos quizás profundice sobre los chips de audio o vídeo.

5 comentarios:

  1. Buen trabajo de análisis, es muy difícil de encontrar información de este ordenador, esquemas o manuales, pero en este caso me a ayudado a diferenciar las memorias de video y ram.

    ResponderEliminar
    Respuestas
    1. Alejandro Sánchez7 de octubre de 2023, 15:17

      Gracias. Me alegra que sea útil el artículo.

      Eliminar
  2. Es genial el trabajo.una pregunta.voy a hacer que el msx sea portable con bateria.no he entendido bien eso de que tenga 2 salidas de tension.yo he medido en las salidas del transformador y me da 10v.tiene 2 salidas.alguien puede aclarar eso.mas que nada para no cargarme la placa.gracias!

    ResponderEliminar
    Respuestas
    1. Alejandro Sánchez8 de enero de 2024, 16:19

      En mi transformador se indica que tiene dos salidas sin regular: 8,5 V y 16 V. Luego en la placa se utilizan esos voltajes para dar 5 V, 12 V y - 12V regulados. Mira a ver que es lo que pone en tu transformador, a lo mejor es distinto al mio. También puede influir que son voltajes sin regular y pueden variar bastante arriba o abajo.

      Eliminar
    2. Alejandro Sánchez14 de enero de 2024, 1:52

      Lo he vuelvo a mirar y los voltajes de 8,5 y 16 voltios del transformador son de corriente alterna. Luego en la placa se convierten en corriente continua y finalmente los reguladores de voltaje los convierten en voltajes regulados de 5, 12 y -12 voltios de corriente continua.

      Eliminar