001:hardware

No renderer 'odt' found for mode 'odt'

Microhobby 1. Año I, del 5 al 11 de noviembre de 1984

Cuando usted pierde el control de su propio programa o intenta retornar al Basic desde alguno de los que existen comercialmente, se encuentra con que al Spectrum le falta un botón: el 'reset'. Para inicializar el microprocesador es necesario desconectarlo de la red. Con este artículo vamos a solucionar esta deficiencia.

La CPU (Unidad Central de Proceso) está desempeñada en el Spectrum por un microprocesador cuyo código comercial es Z-80 'Z', alusión directa al fabricante original Zilog y '80', porque forma parte de los microprocesadores de la serie 80 comercializada por otros fabricantes). No podemos en este breve apartado extendernos sobre el funcionamiento interno del microprocesador, por lo que haremos referencia tan sólo a los conceptos anexos al reset.

Aspecto final del pulsador 'reset' en el Spectrum una vez cerrado

La parte interna de contenido variable de un µP (Microprocesador) son los registros, compuestos por series de biestables de ocho y dieciséis bits. Mediante estos registros el microprocesador opera, avanza en la ejecución del programa y se relaciona con el exterior, es decir, la memoria y los periféricos.

Los registros toman valores aleatorios en el momento de puesta bajo tensión o alimentación. Si no fuera porque está previsto su control en este momento, el microprocesador se perdería de forma similar a lo que sucede cuando se hace correr un programa no adecuadamente depurado. Esto sería así porque el µP toma como dirección inicial de ejecución el contenido aleatorio que existiría en su registro de dieciséis bits denominado PC o registro contador de programa que es el encargado de controlar el bus de direcciones para moverse por todo el espacio de memoria direccionable (para el Z-80 son 16^16 = 65536 direcciones posibles).

A su vez, la memoria volátil (RAM), donde residen todos los programas cargados por el usuario para su ejecución, toma también valores aleatorios en el momento de la conexión.

Si unimos la aleatoriedad inicial del contenido del PC con la de la memoria, lo más probable sería que el microprocesador perdiera el control y se quedara ejecutando bucles contenidos en forma aleatoria en la memoria o bien que, en su deambular perdido, encontrara un contenido cuyo código máquina fuese 'HALT', y entonces se detendría radicalmente de forma intemporal.

En el interior del Z-80 los biestables de todos los registros se encuentran unidos entre sí a una entrada de reset común: la pata número 26 del microprocesador. Cuando esta entrada es llevada a nivel bajo (0 voltios) todos los registros se borran, se ponen a cero, cesan los ciclos de refresco de la memoria RAM dinámica y los buses de datos y dirección son puestos a alta impedancia. Esta situación se mantiene en tanto que la entrada de reset se encuentre a nivel bajo o puesta a masa.

Registros del Z80

Cuando esta entrada pasa a nivel lógico alto, el microprocesador inicia instantáneamente todas sus operaciones ejecutorias, accede a la dirección 0000H impuesta por el reset y toma como primera instrucción lo que allí encuentre. En el Spectrum esta primera instrucción está contenida en la ROM, por lo que es inalterable.

La señal reset ha de cumplir la condición de permanecer a nivel bajo al menos durante 70 nS (70×10^-9 segundos). El Spectrum tiene en la entrada de reset un condensador de 1 µF (C-27) y una resistencia de 22K (R-31); ambos conforman una red RC capaz de proporcionar un tiempo de permanencia a nivel bajo del orden de 15 mS (15×10^-3 segundos), tiempo más que suficiente para proporcionar una correcta señal de reset. El nivel bajo es producido por la carga del condensador para volverse a descargar a través de la circuitería tras la desconexión del Spectrum. Una vez que el condensador se carga, permanece en este estado mientras no se desconecte el aparato. Gracias a esta red el Spectrum tiene asegurada una correcta señal de reset en el momento de su conexión, que además es suficientemente efectiva como Vd. habrá podido comprobar tras sacar y meter la clavija de alimentación dejando un tiempo intermedio para que el condensador se descargue.

Detalle de la ubicación del pulsador reset en la tarjeta del Spectrum versión...

El reset automático producido en la conexión no presenta problemas normalmente en el Spectrum, por si desea generar un reset para irse al inicio del sistema operativo o sencillamente para abandonar un programa del cual resulta por concepción difícil de salir, entonces hay que recurrir a la engorrosa operación de desconectar y conectar. Con ello se consigue, provocando un reset, devolver el control del sistema a la ROM en donde reside el EDITOR-BASIC. También se produce un borrado total de la memoria RAM. Este borrado tiene dos cometidos principales; el primero es hacer un test de la memoria, verificando si hay alguna celda deteriorada y la segunda, fijar el límite de la RAM. De esta forma la CPU se entera si está conectada en un microordenador de 16K ó 48K bytes.

Para hacer un reset manual desde el exterior, el Spectrum incluye una prolongación de la entrada de reset hasta el conector posterior. Concretamente al terminal 20B.

Para realizar un reset manual hace falta obviamente un pulsador, como por ejemplo el mostrado en la figura 3. Este pulsador ha de ser un cierre, es decir: sus contactos se cierran al ser oprimido.

La primera forma es sencilla. Tendrá que proveerse de un conector hembra de doble cara y 28 terminales, un pulsador y unos centímetros de cable. Seguidamente se conectará el pulsador por una de sus patas al terminal 20B del conector hembra y por otra al terminal 7B que es masa. La cara B del conector es la que queda hacia las patas del Spectrum.

Una vez hecho esto, enchufe el conector a la parte posterior del Spectrum, preferiblemente con éste desconectado eléctricamente, para no producir extraños cortocircuitos que podrían dañar al microordenador. Y ahora ya estamos en condiciones de usarlo. Oprima el pulsador. Observará que inmediatamente se ennegrece el área gráfica de la pantalla formada por el recuadro central. Durante este tiempo la CPU está ocupada en borrar la totalidad de la memoria RAM durante unos segundos. Este tiempo depende totalmente del tipo de Spectrum de que se disponga (16K ó 48K). Tras esto aparece el conocido mensaje '© 1982 SINCLAIR RESEARCH Ltd' en pantalla: el reset se ha producido.

La segunda forma de incluír el pulasdor reset en el Spectrum es algo más elaborada, requiere algunos cuidados y, por supuesto, decidirse a abrirlo y manipular en su interior. No es tan complicado como parece. Tan sólo requiere un poco de atención, en especial para los menos expertos en realizaciones de hardware.

En primer lugar, al igual que anteriormente, hace falta un pulsador como el mostrado en la figura 3, unos centímetros de cable y un corto alambre de cobre de aproximadamente 1,5 milímetros de diámetro. Seguidamente se soldará este alambre a uno de los terminales del pulsador. Previamente hay que doblarlo en forma de L dejando aproximadamente doce milímetros a un lado y unos cuatro milímetros al otro. El lado largo de la L es el que se suelda al pulsador de manera que quede como se muestra en la figura número 5.

Ahora hay que abrir el Spectrum. Para ello, si no lo ha hecho nunca, hay que retirar los tornillos negros de la parte inferior del aparato. Seguidamente abra la tapa y con sumo cuidado desenganche las dos cintas de plástico con pistas metalizadas que son las que conectan la tarjeta al teclado. En principio no es problema desconectar y conectar estas cintas; pero no podrá hacerlo más de unas veinte veces, porque la finísima película metálica de sus pistas no resiste el roce de la presión que necesariamente ofrecen los conectores hembras de la tarjeta. No obstante, por un par de veces que se haga esta operación, no ocurrira absolutamente nada.

Llegados a este punto hay que decir que en España el Spectrum está comercializado bajo dos versiones: La versión 2 y la versión 3B. Las diferencias entre ellas afectan al diseño de la ULA que tiene diferente código y al circuito impreso en el cual se han hecho algunos cambios que suponen mejoras. Entre otras cosas se aprecia a simple vista que han cambiado de sitio el regulador 7805 llevándolo próximo al conector posterior en la versión 3B donde, debido a la abertura, disipa mejor su elevada temperatura. El segundo cambio apreciable es la sustitución del transistor que antiestéticamente se encontraba soldado encima de la CPU por puertas lógicas. Este cambio de versión afectará a este y a futuros montajes que propongamos.

Antes de soldar el pulsador a la tarjeta hay que hacer un agujero en la tapa superior del Spectrum, tal como se puede observar en la figura número 6.

Este taladro será de unos cinco milímetros de diámetro y estará situado a 11 milímetros de la cara del conector y a 27 milímetros del lateral más próximo a la entrada de tensión '9VDC'.

El taladro es fácil de hacer, incluso prácticamente sin herramientas, dado que el plástico de la cubierta es blando. Se podrán utilizar unas vulgares tijeras.

A continuación procederemos a soldar el pulsador de la tarjeta de circuito impreso. Primeramente retire la tuerca del pulsador que no será usada. Luego suelde el lado corto de la L de alambre, anteriormente unida al pulsador, en la pista ancha del negativo que se encuentra próxima al conector de alimentación de 9VDC. El terminal negativo de este conector es el rabillo central que se encuentra en su interior, por tanto la pista negativa será aquella que vaya soldada a él en la tarjeta.

Una vez soldado el pulsador ajuste su altura para que penetre estéticamente por el taladro de la tapa. Este ajuste de altura se puede obtener retocando la soldadura de la parte larga de la L, que habrá quedado vertical a la superficie del circuito impreso.

Proceda seguidamente a la conexión del terminal que quedó libre en el pulsador. Suelde a éste un extremo del cable que teníamos para tal efecto. A continuación suelde el otro extremo al terminal positivo del condensador C-27 que se encuentra próximo al conector KB-2 del teclado. El terminal positivo de este tipo de condensadores se reconoce por ser el más próximo a la franja de estrechamiento. También suele venir indicado en el propio cuerpo del condensador. Por último, coloque el cable entre los componentes sin que entorpezca al cerrar y coloque la tapa e inserte de nuevo las cintas del teclado en sus conectores respectivos. Conecte el aparato y observe cómo al oprimir el pulsador y luego soltarlo se producen los efectos ya mencionados del reset.

Si el reset no funcionara proceda cuidadosamente a repasar todas las operaciones. Si todo ha sido bien realizado ha de funcionar con toda seguridad. Unicamente cabe mencionar, que preste atención en no equivocar la pista negativa del conector 9VDC, lo cual podría dañar la CPU. Por ello le aconsejamos siga meticulosamente los dibujos y, en especial, el correspondiente a la figura 10, en la que se representan en planta los detalles de la conexión del pulsador.

En la versión 3B de la tarjeta, la colocación del pulsador y conexiones son idénticas aunque, al cambiar la ubicación de algunos componentes, presentará un ligero desplazamiento hacia el lateral del pulsador y su taladro en la tapa superior.

Un pulsador es un elemento mecánico y, por muy perfeccionado que esté, siempre se producirán rebotes en su acción. Estos rebotes son inapreciables al tacto; pero existen. La duración típica de cada rebote es tan sólo de unos pocos milisegundos, tiempo suficiente para actuar repetidamente sobre los circuitos electrónicos que presentan tiempos de respuesta del orden de nanosegundos. Por todo esto el condensador conectado entre el reset y masa tiene la segunda misión de absorber los impulsos producidos por los microrebotes en el pulsador.

Pulsador para realizar el reset manual Detalle del rabillo de alambre de cobre que hay que soldar al pulsador para... Detalle del taladro a practicar en la tapa superior del Spectrum para introducir... Detalle del pulsador ya instalado junto al conector de alimentación En la versión 3B del Spectrum, el lugar de ubicación queda ligeramente...

El reset manual es, como ya se ha mencionado, un complemento práctico a su Spectrum, permitiéndole devolver el control del programa al Basic desde cualquier punto de la memoria en que se halle operando el microprocesador.

Usted observará, una vez realizado, lo útil que es disponer de un pulsador reset tal como tienen los mejores ordenadores personales y por supuesto, los profesionales.

Conexión del reset manual mediante un conector hembra

Con todo esto habremos eliminado el fastidio que supone tener que interrumpir la alimentación, cada vez que deseamos salir de un programa comercial en Código Máquina, o de los nuestros propios, en caso de que hayamos perdido el control, con el consiguiente desgaste y deterioro de los conectores.

Por último, recuerde que el reset no sólo hace que el microprocesador aborte el programa en ejecución en cualquier circunstancia y punto retornando a la primera dirección de memoria, sino que el mismo programa es inmediatamente destruído junto con sus variables, resultados parciales, mensajes, etc. La totalidad de la memoria es puesta a cero, incluyendo la zona de las variables del sistema y la zona de presentación por pantalla.

De todo lo mencionado se deduce que sólo habrá que utilizar el reset cuando se pretenda retornar al basic sin que importe la destrucción del programa en RAM, por lo que hay que evitar la acción accidental sobre este pulsador.

Figura 3: Distribución de señales a los pines (patitas) del microprocesador...

Primitivo de Francisco

  • 001/hardware.txt
  • Última modificación: d/m/Y H:i
  • por 127.0.0.1