El bus de expansión en los ZX Spectrum

Todos los ZX Spectrum tienen un bus de expansión que facilita la conexión de todo tipo de periféricos, y que posibilita el fácil acceso a las señales internas, tales como el bus de datos y bus de direcciones del microprocesador Z80, señales de video, reset, etc.

Este bus de expansión consiste en una prolongación de la placa con 28 pines por la cara de los componentes y otros 28 por la de las pistas, no existiendo el número 5 como tal, ya que es sustituido por una muesca que sirve de guía de inserción de los periféricos. Esta muesca impide insertar mal los periféricos en el bus de expansión. Esto es muy importante dado que la mala colocación de un periférico puede causar serios daños en el ZX Spectrum.

Visualmente tiene el siguiente aspecto (por el lado de los componentes), siendo identico por el otro lado:

bus expansión sinclair 128K

Esquematicamente:

Existen tres tipos diferenciados de bus de expansión, ya que éste se
modificó primero en los 128k/ 2 y después en los Spectrum 2A, 3, 2B. Aquí tenemos sus características:

Señales bus datos

Podemos ver que existe una leve modificación en los Spectrum 128K y 2A que practicamente no afectan a la mayoria de los periféricos. En el caso de los 2A,B y 3 la distinta situación de algunas señales, incluso su ausencia provocó que ciertos periféricos no funcionaran y que otros diseñados para estos últimos tampoco funcionen en los primeros.

Si se observa con detenimiento se pueden señalar las diferencias entre ambos. Llamaremos A a la cara de los componentes y B a la cara de las pistas, siguiendo las indicaciones de la revista Microhobby y algunas placas (Issue 2, 5, por ejemplo),  sin embargo, en otras placas figura serigrafiado al revés (Issue 4, 6, 128k ).
 

PIN 
48k, 48k
128k ,  2
3, 2A y 2B
4A 
 No conectado 
No conectado
 ROM1 OE 
20A 
 - 5V 
 - 5V 
No conectado
23A 
12V A.C
12V A.C
-12V
28A
 No conectado 
 No conectado
RESET
4B 
  9V 
9V 
 No conectado 
13B
IORQGE
IORQGE
 No conectado 
15B
VIDEO
No conectado
ROM2 OE 
16B
Y
No conectado
DISK RD
17B
V
No conectado
DISK WR
18B
U
No conectado
MOTOR ON
25B
ROMCS
ROMCS
No conectado

En resumen, desaparecen las señales de video en todos los modelos 128k, aparecen las señales control de disco y desaparecen las señales 9V, -5V, 12 A.C y IORQGE en los 2A,B y 3.

También se puede observar que el ROMCS de los modelos 48k/ /128k/ 2 se desdoblan en 2 para poder controlar los 2 bloques de 32K de la memoria ROM de los 2A,B y 3.

Pasamos a detallar las señales que desaparecen:

Señal 9V : En la patilla 4 nos encontramos la alimentación que proporciona la fuente de alimentación del spectrum. Su función principal es la de proporcionar tensión a perifericos 'glotones'. La carga que supondria estos perifericos va a repercutir sobre la fuente de alimentación y no sobre el regulador de tensión interno.
   Como ejemplo tenemos que la fuente original de un spectrum 48K daba una intensidad de salida max de 1.4A. Teniendo en cuenta que consume unos 700 mA nos quedaria aproximandamente 700 mA para alimentar posibles perifericos.

Señal -5V : Es una salida de baja intensidad. En los modelos 48k y 48k alimenta los chip RAM 4116 que conforman los primeros 16K de la RAM, donde se ubica la memoria de video.

Señal 12 A.C: Salida sin rectificar. En los primeros manuales figuraba como -12V, cuando nunca lo fue. Se pueden obtener esos -12V con un sencillo circuito añadido.

Señal 12V : Aunque su situación es identica en todos los spectrum, la naturaleza de la misma es distinta. Mientras en los spectrum 48/ /128K/ 2 los 12V se obtiene de una circuiteria interna que poseen y por lo tanto la intesidad de salida que ofrecen es baja, en los modelos 2A,B y 3, los 12V proviene de la fuente de alimentación, y por lo tanto, la intesidad de salida es mayor.

Señal IRQGE: Manteniendo esta línea a un nivel alto se logrará que la ULA no responda a las peticiones de las E/S. Con circuitos adecuados podría usarse para aumentar el número de dispositivos de E/S que puede seleccionar el Spectrum.

Señales Y, V, U y VIDEO : En los modelos 48k y 48k la ULA generaba las señales de video que atacaban al modulador LM1889. Las señales V,U correspondonden a señales que transportaban colores y la señal Y que llevaba la luminancia.  La señal VIDEO es la señal procesada por el modulador y que ataca al modulador UHF que se encargaba de pasarla al conocido canal 36 de nuestros televisores.

Esta señal VIDEO es la famosa señal de video compuesto que podemos extraer para conseguir una señal en la televisión de mejor calidad.

En los modelos 128K el tratamiento de la señal de televisión difiere de los primeros modelos, de ahi que las señales Y, U, V y VIDEO desaparezcan. En estos modelos la ULA fue rediseñada para trabajar con señales RGB y el LM1889 fue sustituido por el TEA2000. Con esta nueva manera de trabajar, el Spectrum podía manejar monitores y televisores que admiten estas señales consiguiendo una mejor calidad de imagen. No aparecen en el bus de expansión porque estan disponible en un conector especial que tiene en la parte posterior.

SEÑAL ROMCS : Tal vez la señal más importante y que nos genera el mayor número de incompatibilidades. El funcionamiento de esta señal es sencillo, si se le conecta una señal de 5V, la ROM que ocupa los primeros 16Kb desaparecerá de la memoria.

Todos los spectrum disponen de una ROM donde almacenan instrucciones, variables, funciones, etc. Pero esta ROM es inalterable por lo que no se puede modificar.  Si nosotros quisieramos introducir nuevas funciones tendriamos que guardar estas funciones en la RAM con la consiguiente perdida.

La solución que se aportó fue permitir que los perifericos pudieran insertar sus propias ROMs en las direcciones donde se encuentra la ROM de spectrum.

Las soluciones:

Ahora bien, con lo expuesto anteriormente podemos llegar a la conclusión que algunas de estas diferencias puedan ser subsanadas, por ejemplo, para usar un periférico de los primeros en un bus de los segundos:

9 V
 Se utiliza 12V (Pin 22A). Lo que debemos tener en cuenta es el consumo que va a realizar el periferico. En las fuentes del 2A la señal de 12V no da más de 200mA y en los 3 da 700 mA. En cuanto a la diferencia de tensión hay que tener en cuenta que los 9V son sin regular. Reales suelen ser 10-11V asi que no deberiamos tener problemas al usar 12V
ROMCS
 Se sustituye con ROM1 0E y ROM2 OE, ya que ahora no hay que inhabilitar una ROM si no dos. Se intercala un diodo 1N4148 entre ROMCS y ROM1 0E, y otro entre la primera y ROM2 0E. 

Tambien hay que cortar la señal 15B para impedir la unión de la señal de video con la ROM2 0E

-5V
 Se podría usar -12V (Pin 23A) si observamos que el periferico lleva algún regulador, de no llevarlo tendriamos que modificar el periferico para ponerle uno
VIDEO
 Se puede obtener en los modelos 128k y 2. En los 2A,B y 3B es necesario realizar modificaciones en el Spectrum para poder obterner esta señal
Pero, lo mas importante es estudiar qué pines usa el periférico que vamos a insertar y ver si disponemos de las señales necesarias o si las podemos sustituir. Para esto, podemos apoyarnos en un adaptador que sustituya las señales que necesitemos por las de otros pines que sustituyan a las anteriores.

Como muestra de ello, podemos ver una solución comercial a estos problemas. Existen varios adaptadores, aqui tenemos uno llamado fixit, comercializado por Datel para usarlo con el PlusD:

 
(Pulsar en las imagenes para mayor calidad)
A continuación pondremos el esquema de este adactador. Dada su sencillez, nosotros mismos podremos contruirnos uno.

Como se puede observar, este adaptador soluciona los problemas de las señales ROMCS y 9V.

Para la construcción del mismo seria necesarios los siguentes materiales:

- Conector Bus expansión.
- Placa de 2 caras.
- 2 diodos 1N4148.
Mas información sobre el bus de expansión en las páginas 3031 de la Microhobby 10, y en la 46 y 47 de la Microhobby 162.

Este artículo es cortesía de El Trastero del Spectrum y ha sido elaborado por Jose Manuel y Jose Leandro.