A modo de demostración de la placa de prototipos para ZX Spectrum del mensaje anterior (*) y aprovechando unas pruebas que he realizado recientemente, comparto este circuito simple con muy pocos componentes para ZX Spectrum 16k/48k/48k+. Una vez conectado al ordenador su única función es simular la pulsación de la tecla B cuando se pulsa un botón del circuito.
El esquema es el que se muestra a continuación.
Esquema
Lista de componentes (6)
Cantidad | Referencia | Valor | Formato/Descripción |
1 | U1 | 74LS32 | DIP-14 |
1 | U2 | 74LS244 | DIP-20 |
2 | C1,C2 | 100nF 10V | Condensador MLCC |
1 | R1 | 10kΩ 1/4W ó 1/8W 1% | Resistencia de película metálica |
1 | SW1 | B | Pulsador SPST 6x6mm ó 12x12mm |
Está dividido en cuatro bloques, de izquierda a derecha,
- lógica de control,
- botón,
- dato,
- alimentación y desacoplo, y
- el bus de expansión del ZX Spectrum.
La
lógica de control se encarga de determinar en qué condiciones el prototipo va a comunicarse con el Spectrum. Para ello utilizan 3 puertas lógicas OR (suma lógica) de doble entrada (chip U1), para asegurarse de que el prototipo actuará sí y solo sí el microprocesador Z80 está accediendo a un puerto de entrada/salida (/IORQ=0), que está leyendo de dicho puerto (/RD=0), que el número de puerto es par (A0=0) y que el bit más significativo del puerto también es 0 (A15=0). Comprobamos que A0=A15=0 porque el número de puerto 32766 (en binario, 0111 1111 1111 1110) es el asociado a la semifila del teclado del Spectrum en la que se encuentran las teclas Espacio, Symbol Shift, M, N y B. En resumen, el pin 8 del chip U1 estará a nivel lógico bajo solamente cuando el Z80 está leyendo del puerto de entrada/salida 32766.
El
botón es que hace contacto entre su pin izquierdo y derecho cuando es pulsado. A su izquierda está conectado a la lógica de control y, a su derecha, a las señales de control del integrado U2 de las que hablaremos más adelante. En su pin derecho tiene además una resistencia de elevación (
pull-up) de 10kΩ (R1) que se encarga de que las señales de control del integrado U2 estén a nivel lógico alto cuando el botón no esté pulsado.
El integrado U2 en el bloque
dato se puede dividir en dos partes bien diferenciadas,
- las señales de control (/OEa y /OEb) que según si están a un nivel lógico bajo o alto, conectan o desconectan respectivamente los pines de su parte derecha; y
- las líneas de datos, las de entrada (a la izquierda) INa, INb y las de salida (a la derecha) ONa y ONb. Cuando la señal /OEa está a nivel lógico bajo, I0a es conectado a O0a, I1a a O1a,... Cuando la señal /OEb está a nivel lógico bajo, I0b es conectado a O0b, I1b a O1b,... Si la señal de control está a nivel lógico alto, los pines correspondientes quedan desconectados.
Para configurar el valor correspondiente a la tecla B (175, en binario 1010 1111) en el chip U2,
- I0a, I1a, I2a, I3a, I1b e I3b están conectados a +5V para que queden a nivel lógico alto, mientras que
- I0b e I2b están conectados a +0V (tierra) para que queden a nivel lógico bajo.
Por tanto cuando las señales de control (/OEa y /OEb) están a nivel bajo, los pines de salida (derecha) del chip U2 quedan dispuestos de la siguiente forma.
I3b | I2b | I1b | I0b | I3a | I2a | I1a | I0a |
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 |
El bloque de
alimentación y desacoplo engloba a la alimentación del chip U1 y los condensadores de desacoplo de los chips U1 y U2. Estos condensadores cumplen una doble función, estabilizar la tensión y reducir el ruido de conmutación para cada uno de los integrados. Su valor es de 0.1µF o, lo que es lo mismo, 100nF porque es un condensador pequeño y económico (en general, a mayor capacidad, mayor precio y tamaño), porque su disponibilidad es alta y porque por capacidad es adecuado para la frecuencia con la que trabaja este circuito (menor de 10MHz).
En el bloque del
bus de expansión del ZX Spectrum se realizan el interconexionado entre nuestro circuito y el bus de expansión del ordenador.
Fotografías
Nota: Por incompatibilidad con el funcionamiento del
gate array, este prototipo no funcionaría en los ZX Spectrum +2A/+3/+3B.
(*) para facilitar el acceso, el primer mensaje de Febrero de 2022 ha sido separado del tema con el resto de
proyectos.