Exponsor

CURSO TÉCNICO INSTALADOR DE ENERGÍA SOLAR TÉRMICA

Visita el siguiente enlace: http://enersolartermica.blogspot.com.es/ ¡No pierdas esta magnifica oportunidad de poder formarte en esta profesión con gran demanda de empleo! Ahora por oferta de lanzamiento y por tiempo limitado puedes adquirir este curso por solo 9,95€, cuando su valor de mercado es de 49€.

viernes, 20 de marzo de 2009

PROBLEMAS RESUELTOS SOBRE MULTIVIBRADORES, MEMORIAS Y FLIP-FLOP (R-S). PARTE 1ª

PROBLEMA: Analizar el siguiente circuito. Supóngase que la entrada A y la salida son inicialmente cero. Sugiérase también una forma de "limpiar el registro" (regresar la salida a su valor original de "cero")



Cuando la entrada A y la salida son inicialmente "cero" ("0"), el bloque OR está alimentado con dos ceros, produciendo la salida de cero.

Cuando activamos la entrada con un valor de A=1, el bloque OR producirá una salida de "1", lo cual pondrá una entrada de "1" en el mismo bloque OR compatible con la salida de "1".

Al volver a tomar la entrada A su valor de cero, el "1" a la entrada del OR producido por su salida mantendrá la salida del OR en el estado "1". Esto es, cuando A toma el valor de "1", la salida toma también el valor de "1" y permanece en ese estado por tiempo indefinido aún cuando A regrese a su valor original de "0".

Este ejemplo demuestra una característica interesante e importante que juega la retroalimentación (feedback) en los circuitos lógicos. La retroalimentación proporciona memoria a los circuitos lógicos.

Un diagrama de tiempos característico del comportamiento del circuito sería como el siguiente:



Una forma de "limpiar el registro" (esto es, borrar la memoria) es añadiendo unos componentes de la siguiente manera:



Cuando no hay ninguna señal en R (o sea, cuando la entrada en la terminal R es R=0), por la acción del NOT inversor el bloque AND conectará directamente la salida del bloque OR a la entrada del mismo y no tendrá efecto alguno en el diagrama de tiempos del circuito previo. Este circuito se comportará exactamente como el circuito anterior.

Sin embargo, cuando se aplica una entrada de "1" a R, la compuerta AND interrumpirá la alimentación de la salida del OR a la entrada del mismo, "borrando" la memoria si es que la salida era "1" y la terminal S tenía el valor de "0". En el caso de que R permanezca activada con un "1", la salida tomará directamente el valor de S.

Obsérvese que arriba se llevó a cabo un ligero cambio en la notación de las terminales de entrada del circuito. A la entrada que lo puede "ajustar" con una salida de "1" se le ha designado con la letra S, una abreviatura de la palabra inglesa Set que significa precisamente "ajuste", mientras que a la terminal con la cual se puede "reajustar" el circuito "limpiando" el registro previo se le ha designado con la letra R, una abreviatura de la palabra inglesa Reset que significa precisamente "reajuste". Esto se ha hecho para ir adecuando nuestra notación con la notación utilizada en la mayoría de la literatura técnica.

Un diagrama de tiempos ilustrando todas las situaciones posibles se muestra a continuación:





La función de "limpieza de registro" es indispensable en una configuración de circuitos lógicos para borrar información previa y poder procesar información nueva.


PROBLEMA: El Flip-Flop R-S. Analizar el siguiente circuito considerando todas las 16 combinaciones posibles de unos y ceros (cuatro a la entrada y cuatro a la salida) descartando aquellos estados que resulten incompatibles. Asimismo, construír una Tabla de Verdad lo más simplificada posible para dicho circuito.




El análisis se llevará a cabo haciendo un diagrama independiente para cada una de las combinaciones posibles, trazando el flujo de los valores binarios y observando la compatibilidad de los mismos para cada combinación de valores. Empezaremos con la primera combinación en la cual supondremos que tanto las dos entradas R y S como las dos salidas Q y Q tienen valores de cero:

R=0, S=0, Q=0, Q'=0





El 0 que suponemos a la salida del NAND superior alimenta con dicho 0 una de las entradas del NAND inferior, el cual junto con el 0 que está siendo puesto en la terminal S producirá un 1 a la salida Q' del NAND inferior. Este 1 es incompatible con el valor de 0 que estamos asumiendo para Q'. Por otro lado, el 0 que suponemos a la salida del NAND inferior alimenta con dicho 0 una de las entradas del NAND superior, el cual junto con el 0 que está siendo puesto en la terminal R producirá un 1 a la salida Q del NAND superior. Este 1 es incompatible con el valor de 0 que estamos asumiendo para Q. Por lo tanto, se descarta por completo esta combinación de valores por no ser una combinación válida.

R=0, S=0, Q=0, Q'=1





En este caso, de nueva cuenta el 0 que suponemos a la salida del NAND superior alimenta con dicho 0 una de las entradas del NAND inferior, el cual junto con el 0 que está siendo puesto en la terminal S producirá un 1 a la salida Q' del NAND inferior. Este 1 sí es incompatible con el valor de 1 que estamos asumiendo para Q'. Sin embargo, por otro lado, el 1 que suponemos a la salida del NAND inferior que alimenta con dicho 1 una de las entradas del NAND superior, junto con el 0 que está siendo puesto en la terminal R producirá un 1 a la salida Q del NAND superior. Este 1 es incompatible con el valor de 0 que estamos asumiendo para Q. Por lo tanto, también se descarta esta combinación de valores por no ser una combinación válida.

R=0, S=0, Q=1, Q'=0





Podemos ver que este caso es similar al caso anterior, lo cual era anticipable por la simetría de la figura.

R=0, S=0, Q=1, Q'=1





Al seguir el flujo de todas las señales con los valores supuestos, encontramos que en este caso los valores sí son compatibles. Por lo tanto, podemos hacer la siguiente Tabla de Verdad para los mismos:



R=1, S=0, Q=0, Q'=0





Nuevamente, encontramos otra situación en la que la combinación de valores no es compatible, razón por la cual se descarta esta posibilidad.

R=1, S=0, Q=1, Q'=0





Esta combinación de valores también se descarta por no ser una combinación compatible.

R=1, S=0, Q=0, Q'=1





Los valores en este caso sí son compatibles, y por lo tanto podemos hacer una Tabla de Verdad para los mismos:



R=1, S=0, Q=1, Q'=1





Esta es una combinación de valores que no es compatible, y por lo tanto se descarta.

R=1, S=0

Antes de proseguir, para ahorrarnos trabajo podemos explotar a nuestro favor una simetría. Puesto que el circuito es simétrico en el sentido de que si tomamos lo volteamos por completo de arriba abajo tendremos en esencia lo mismo, al tratar los cuatro casos correspondientes a los valores de entrada R=0 y S=1 también estamos cubriendo los cuatro casos correspondientes a los valores de entrada R=1 y S=0 con la simple inversión de los elementos de arriba hacia abajo. En base a la simetría y los resultados obtenidos previamente, podemos afirmar que el único conjunto de valores compatibles para R=0 y S=1 es Q=1 y Q'=0, lo cual podemos resumir en la siguiente Tabla de Verdad:



Podemos proseguir con las combinaciones de valores faltantes:

R=1, S=1, Q=0, Q'=0





Esta combinación de valores se descarta por ser totalmente incompatible.

R=1, S=1, Q=0, Q'=1





En este caso la combinación de valores sí es compatible, y su Tabla de Verdad es:



R=1, S=1, Q=1, Q'=0




Los valores en este caso también son compatibles, y su correspondiente Tabla de Verdad será:



Falta ya tan sólo una combinación posible de valores por checar. Es la siguiente:

R=1, S=1, Q=1, Q'=1





Así, la última combinación posible de valores que nos faltaba por checar resulta ser totalmente incompatible, razón por la cual también se descarta.

Podemos juntar ahora todas las Tablas de Verdad para este circuito en una sola:




aPara simplificar esta Tabla de Verdad, como primera observación se nota que el único caso en el cual los valores de Q y Q' no son complementarios es R=0 y S=0. En la terminología técnica empleada en el estudio de los circuitos lógicos, este es un estado es conocido como un estado no-definido. Con esto en mente, y agrupando las salidas similares por razones que pronto quedarán claras, la Tabla de Verdad toma el siguiente aspecto:



Analizando esta Tabla de Verdad, encontramos algunos detalles interesantes. Si las entradas toman los valores R=1 y S=0, las salidas tomarán los valores Q=0 y Q'=1. Y si las entradas cambian a los valores R=0 y S=1, las salidas cambiarán a los valores Q=1 y Q'=0. Esto es, cuando las entradas son complementarias, Q toma el valor de S.

Al tomar las entradas los valores R=1 y S=1; existen dos salidas complementarias válidas. Esto indica que al tomar ambas R y S el valor de 1, se retendrán a la salida los valores de la condición previa, esto es, el circuito "recordará" su estado anterior. Por ejemplo, si la entrada tiene los valores R=1 y S=0, la salida tomará los valores Q=0 y Q'=1. Al tomar la entrada los valores R=1 y S=1, la salida seguirá reteniendo los mismos valores Q=0 y Q'=1. La única manera de invertir la salida Q es aplicando la condición R=0 y S=1. Después de aplicar dicha condición, el circuito mantendrá la salida de Q=1 y Q'=0 al aplicársele la condición R=1 y S=1.

Puesto que en el estado R=1 y S=1 las salidas pueden tomar dos valores que siempre serán complementarios, podemos simplificar aún más la Tabla de Verdad:



Esta Tabla nos quiere decir que para la condición R=1 y S=1, si Q toma el valor de 1 entonces Q' tomará el valor de 0 o bien, si Q toma el valor de 0 entonces Q' tomará el valor 1.

Nótese que cuando R y S son complementarios, el valor de S es igual al valor de Q y el valor de R es igual al valor de Q'. Tomando esto en consideración, se acostumbra invertir de la siguiente manera las terminales de entrada para que estén de acuerdo con el orden en la figura de los valores que toman las terminales de salida:





Frecuentemente, este circuito se encierra en una "caja negra" representándosele de la siguiente forma:





Este bloque se conoce comúnmente como el Flip-Flop R-S, aunque también se le conoce ampliamente como un R-S latch, y desempeña un papel importante en los circuitos lógicos.

El comportamiento de un flip-flop R-S (y de hecho el comportamiento de cualquier circuito lógico secuencial capaz de pasar de un estado estable a otro) puede ser descrito con un diagrama de tiempos como el siguiente, en el cual el paso del tiempo ocurre de izquierda a derecha:



En este diagrama de tiempos, al principio de la "acción" ambas terminales de entrada S y R están puestas a un valor de "1" lógico, mientras que se supone que la salida Q se encuentra en un estado estable de "0". Como podemos ver, la terminal R recibe un descenso de "1" a "0" seguida de un ascenso que la regresa a su valor de "1", pero esto no produce efecto alguno en la salida puesto que para ello es la terminal S la que tiene que ser activada. Esto es precisamente lo que se lleva a cabo a continuación, y podemos ver que al caer S de "1" a "0" la salida Q cambia de inmediato de "0" a "1". Tras esto, la terminal S es llevada de "0" a "1", y nuevamente se le aplica otro descenso, pero en esta ocasión ya no tiene efecto alguno sobre la salida Q, su efecto ya se dejó sentir anteriormente. Por último, con la salida Q ajustada a "1", la terminal R es llevada de "1" a "0", y en esta ocasión si produce un efecto inmediato, "reajustándose" la salida de Q a un valor de "0". Este diagrama de tiempos resume prácticamente todas las condiciones posibles que describen el comportamiento del circuito, como debe hacerlo un buen diagrama de tiempos.

Podemos construír un flip-flop con bloques NAND, o podemos procurarlo ya construído en un componente como el circuito integrado 4044, el cual incluye cuatro flip-flops NAND por el precio de uno solo:




PROBLEMA: Usando álgebra Boleana, encontrar expresiones para las salidas en función de las entradas, simplificando las expresiónes resultantes lo más que se pueda, para un Flip-Flop construído con bloques NAND. Asimismo, constrúyase una Tabla de Verdad para el circuito usando las expresiones obtenidas.

Trazando el flujo de señales para un flip-flop construído con bloques NAND, se ve que las salidas deberán ser como se muestra en el siguiente diagrama:



Las expresiones Boleanas para las salidas son:




Introduciendo cada expresión en la otra para tener las salidas en función de las entradas R y S exclusivamente:



Usando la ley de DeMorgan A · B = A + B para simplificar ambas expresiones:



Con las expresiones anteriores podemos introducir valores de R y S para construír una Tabla de Verdad:

R=0, S=0:
Q = 0 + 0 • Q

Q= 1

Q = 0 + 0 • Q

Q = 1
R=0, S=1:
Q = 0 + 1 • Q

Q = 1 + Q

Q = 1

Q = 1 + 0 • Q

Q = 0 + 0

Q = 0
R=1, S=0:
Q = 1 + 0 • Q

Q = 0 + 0

Q = 0

Q = 0 + 1 • Q

Q = 1 + Q

Q = 1
R=1, S=1:
Q = 1 + 1 • Q

Q = 0 + Q

Q = Q

Q = 1 + 1 • Q

Q = 0 + Q

Q
= Q
Llamando al estado en el cual los valores de Q y Q no son complementarios (R=0 y S=0) un estado no-definido, podemos construír la Tabla de Verdad con la información obtenida:



Esta es la misma Tabla de Verdad que la obtenida en el problema anterior, excepto que aquí se obtuvo por una vía mucho más rápida, sin tener que probar todas las combinaciones posibles de "unos" y "ceros" en las entradas R y S y en las salidas Q y Q. Nuevamente, la enorme efectividad del álgebra Boleana como herramienta de simplificación muestra su potencia matemática.


PROBLEMA: Usando álgebra Boleana, encontrar expresiones para las salidas en función de las entradas, simplificando lo más que se pueda, para el siguiente flip-flop R-S construído con bloques NOR:



Asimismo, constrúyase una Tabla de Verdad para el circuito usando las expresiones obtenidas.

Trazando el flujo de señales para un flip-flop R-S construído a base de bloques NAND, se ve que las salidas deberán ser como se muestra a continuación:



Las expresiones Boleanas para las salidas son:



Introduciendo cada expresión en la otra para tener las salidas en función de las entradas R y S exclusivamente:



Usando la ley de DeMorgan A + B = A · B para simplificar ambas expresiones:


Con las expresiones anteriores podemos introducir valores de R y S para construír una Tabla de Verdad:

R=0, S=0:
Q = 0 (0 + Q)

Q= 1 • Q

Q= Q

Q = 0 (0 + Q)

Q= 1 • Q

Q = Q
R=0, S=1:
Q = 0 (1 + Q)

Q = 1 (1)

Q = 1

Q = 1 (0 + Q)

Q = 0 (Q)

Q = 0
R=1, S=0:
Q = 1 ( 0 + Q)

Q = 0 (Q)

Q = 0

Q = 0 (1 + Q)

Q = 1 (1)

Q = 1
R=1, S=1:
Q = 1 (1 + Q)

Q = 0 (0)

Q = 0

Q = 1 (1 + Q)

Q = 0 (1)

Q
= 0
Llamando al estado en el cual los valores de Q y Q no son complementarios (R=1 y S=1) un estado no-definido, podemos construír la Tabla de Verdad con la información obtenida:



Comparando esta Tabla de Verdad con la obtenida en el problema anterior para un flip-flop R-S construído con bloques NAND, encontramos que son casi idénticas excepto por una diferencia: mientras que para un flip-flop R-S construído con bloques NAND la condición en la cual el flip-flop entra en un estado indefinido está dada por R=0 y S=0, para el flip-flop R-S construído con bloques NOR la condición en la cual el flip-flop entra en un estado indefinido está dada por R=1 y S=1. Asimismo, la condición en la cual el flip-flop R-S construído con bloques NAND "recuerda" su estado anterior es R=1 y S=1, mientras que para el flip-flop construído con bloques NOR la condición en la cual el flip-flop "recuerda" su estado anterior es R=0 y S=0.

Podemos construír un flip-flop con bloques NOR, o podemos procurarlo ya construído en un componente como el circuito integrado 4043, el cual incluye cuatro flip-flops NOR por el precio de uno solo:



A menos de que se indique lo contrario, en todos los problemas restantes de aquí en adelante se utilizarán exclusivamente flip-flops R-S hechos con bloques NOR.

jueves, 19 de marzo de 2009

MULTIVIBRADORES Y MEMORIAS. EL FLIP-FLOP (R-S). PARTE 2ª

Aunque mucho se ha escrito que la invención del microprocesador en un substrato semiconductor fue lo que posibilitó el abaratamiento y la accesibilidad de las computadoras para prácticamente cualquier persona alrededor del mundo, sin la invención de las memorias RAM hechas a base de semiconductores las computadoras hoy en día seguirían siendo un lujo accesible únicamente a grandes empresas e investigadores y personal académico universitario trabajando con un amplio subsidio gubernamental. Es importante señalar que fue la misma compañía, Intel, la que inventó las dos cosas, el microprocesador y la memoria RAM ambos implementados en la microelectrónica de los semiconductores. Y de allí en adelante el mundo no volvería a ser igual.

A Intel no le llevó mucho tiempo fabricar otro tipo de memoria RAM, la memoria RAM estática, usando un principio de operación diferente. En la siguiente fotografía tenemos la "pastilla semiconductora" (la cual cabe fácilmente en la yema de un dedo) de la memoria RAM estática C51C98-25, con una capacidad de almacenamiento de 16 mil palabras binarias de 4 bits cada una:





Al final del Suplemento # 1: Las familias lógicas se han incluído explicaciones más a fondo sobre cómo trabajan ambos tipos de memoria RAM, tanto la memoria RAM dinámica como la memoria RAM estática, de acuerdo con la tecnología de semiconductores con la cual son construídas en la actualidad.

Es importante hace notar que existe otra clase de memorias que nada tiene que ver con el flip-flop R-S. Un ejemplo típico es la Memoria de Lectura Unicamente (Read-Only Memory o ROM), en la cual la información ya está almacenada permanentemente y es imposible borrarla o modificarla, teniendo por lo tanto la ventaja de que retiene la información puesta en ella aún cuando el equipo en el que se encuentra es apagado. Esta es una memoria imprescindible en prácticamente todas las calculadoras electrónicas de bolsillo, los relojes digitales, las carátulas de los hornos de microondas, e inclusive en muchas computadoras de escritorio, porque es precisamente el tipo de memoria que contiene los programas (software) que permiten que estos artículos puedan trabajar apropiadamente al momento de ser encendidos. Aunque la memoria ROM tuvo sus inicios como un circuito integrado pequeño, cualquier tecnología que contenga información grabada que no puede ser alterada también puede ser considerada como una memoria ROM, lo cual permite clasificar a los discos CD de datos como memorias ROM. La enorme ventaja de las memorias ROM es que en virtud de que no pueden ser alteradas, son inmunes al ataque de algún virus elaborado por un hacker. En tiempos recientes, con el advenimiento de las memorias flash de bajo costo que son reprogramables, ha habido una tendencia a favorecer el uso en los nuevos diseños de las memorias flash sobre las memorias ROM. Desafortunadamente, justo por el hecho de ser reprogramables, esto las hace vulnerables a ataques cibernéticos como el ocasionado por el tristemente célebre virus informático Chernobyl, el cual al reprogramar el circuito integrado BIOS de las computadoras de escritorio (este circuito integrado está presente en todas las computadoras, el cual contiene los programas preliminares encargados de inicializar la máquina antes de que un sistema operativo como Windows o Linux tome el control de la computadora) echaba a perder el BIOS inutilizando con ello a la computadora, la cual tenía que ser desechada por completo al no haber forma de poder inicializarla (la razón principal dada por los fabricantes para substituír el BIOS basado en memorias ROM por memorias flash era para permitirle al usuario llevar a cabo actualizaciones para permitirle a su máquina la instalación y el manejo de equipos novedosos como los lectores de discos DVD que no existían cuando las máquinas salieron a la venta).

Históricamente hablando, al aparecer en el mercado las memorias ROM construídas a base de semiconductores hicieron su aparición poco después en 1956 las memorias ROM programables eléctricamente, conocidas como memorias PROM (Programmable Read-Only Memory). Estas memorias, las cuales en su interior tienen un arreglo rectangular de fusibles, antes de ser programadas tienen todas sus salidas puestas a un bit de "1" lógico. La programación de las memorias PROM se lleva a cabo quemando en forma selectiva los fusibles bajo el control de una computadora de escritorio conectada al "quemador", lo cual hace que la salida se ponga a "0" lógico en cada punto en donde se "quema" un fusible, razón por la cual estas memorias sólo pueden ser programadas en una sola ocasión. El siguiente diagrama esquemático nos muestra el aspecto funcional de una memoria PROM que puede almacenar tres palabras binarias formadas por tres bits cada una (los fusibles son las pequeñas líneas curvas en forma de "onda"):



(Por razones de simplicidad didáctica, no se han mostrado en este diagrama esquemático cada uno de los diodos conectados a los nueve puntos de cruce en donde se encuentran los fusibles, los cuales tienen como propósito impedir el flujo de la corriente eléctrica hacia las otras terminales actuando a la vez como los componentes de un decodificador disfrazado. En esencia, estos diodos tienen el efecto de implementar el equivalente de la función AND. Para mayores detalles, véase el Suplemento # 1: Las familias lógicas.)

En esta memoria PROM (y lo mismo puede decirse para todas las demás) sólo una de las líneas de domicilio (address) que en este caso son A0, A1, y A2 puede estar activada a la vez con un "1". En la memoria PROM tal y como está mostrada arriba, si la línea del domicilio A0 es activada con un "1", este "1" será puesto en las tres líneas de salida de datos (data) D2, D1 y D0 por estar intactos los tres fusibles. En otras palabras, bajo el domicilio A0 el dato encontrado será D2D1D0=111, puesto que ninguno de los fusibles ha sido "quemado". También en los dos domicilios restantes A1 y A2 los datos obtenidos serán D2D1D0=111 al tener intactos sus fusibles. ¿Y qué sucederá si en el proceso de programación ("quema") del PROM quemamos los tres fusibles que van conectados al renglón A0? En tal caso y en ese renglón la fuente de voltaje +V no podrá llegar por la ausencia de dichos fusibles a las líneas D2, D1 y D0, y la salida será D2D1D0=000. Este será el dato binario almacenado bajo el domicilio A0.

El siguiente esquemático nos muestra el diagrama funcional de otro PROM que aún no ha sido "programado", un PROM con capacidad para almacenar ocho palabras binarias, con cuatro bits de extensión cada una (precaución: cada uno de los AND mostrados no es un AND de una sola entrada sino un AND de tres entradas, del mismo modo que los OR mostrados son ORs de entradas múltiples y no de una sola entrada; la representación simbólica utilizada aquí se hizo con el propósito de evitar una "sobrepoblación" de líneas de conexión y así simplificar el diagrama; tampoco se muestran aquí los diodos que implementan las funciones AND y OR en cada uno de los puntos de cruce):




Podemos ver mejor lo que ocurre en este tipo de memoria suponiendo varios valores para el domicilio de entrada A2A1A0. Supóngase que A2A1A0=000. Entonces el AND de tres entradas puesto en el primer renglón y alimentado con A2A1 A0=111 será activado por la función decodificadora de los tres NOT cuyas tres salidas alimentan el AND que conduce hacia el primer renglón. Esto pondrá un "1" lógico en la línea del primer renglón, y como los fusibles están intactos por ser un PLA aún sin ser programado, la salida será S3S2S1S0=1111. Ahora supóngase que A2A1A0=001. Entonces el AND de tres entradas puesto en el segundo renglón y alimentado con A2A1A0=111 será activado por la función decodificadora de los tres NOT cuyas tres salidas alimentan el AND que conduce hacia el segundo renglón. Esto pondrá un "1" lógico en la línea del segundo renglón, y como los fusibles están intactos por ser un PROM aún sin ser programado, la salida será también S3S2S1S0=1111.

La programación de las PROM se lleva a cabo aplicando pulsos de voltajes elevados que no son encontrados durante la operación normal de las mismas, y aunque pueden ser programadas bit-por-bit normalmente son programadas con el "quemador de PROMs" conectado a una computadora de escritorio.

Funcionalmente hablando y como podemos comprobarlo arriba, la memoria PROM consiste en la utilización de una matriz (arreglo rectangular) fija, el equivalente de bloques de entrada AND que siempre produce una salida de "1" en una línea distinta para cada una de todas las combinaciones posibles de "unos" y "ceros" a la entrada (domicilio); seguida de otra matriz capaz de seleccionar una o varias de las líneas horizontales para combinar en suma Boleana todos los términos seleccionados de cada renglón.

La estructura operacional del PROM la podemos resumir en forma más concreta con el siguiente diagrama funcional de bloques:



Tiempo después, en 1971 hizo su aparición la memoria EPROM (Erasable Programmable Read-Only Memory), la cual a diferencia de las memorias PROM que no pueden ser programadas de nuevo tras la "quema" de sus fusibles internos, puede volverse a programar borrando por completo la información contenida. Para poder ser borrada con el fin de ser programada de nuevo, la memoria EPROM tiene que ser expuesta a una luz ultravioleta a través de la ventana transparente que la cubre en su circuito integrado, como la siguiente memoria EPROM 27C256 (equivalente a la memoria EPROM 27256) con capacidad de almacenamiento de 32K bytes:



A continuación tenemos el diagrama de la relación funcional de las terminales "pins" de este circuito integrado:



Para la programación de este circuito integrado, se va aplica en la terminal Vpp (terminal 1) un voltaje mayor del valor de operación normal. Una vez programada la información dentro de esta memoria EPROM, podemos localizar algún byte específico poniendo la combinación de "unos" y "ceros" del domicilio binario (address) bajo el cual se encuentra el byte que estamos buscando, identificado por las terminales de la 2 a la 10 y de la 23 a la 27. El byte almacenado es recuperado a través de las terminales de datos (data) en las terminales 11 a la 13 y de la 15 a la 19. A modo de ejemplo, en el siguiente domicilio:

A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0 = 11010011010001

podríamos localizar el siguiente byte:

D7D6D5D4D3D2D1D0 = 01101011

Para programar este tipo de memorias, utilizamos un "quemador" como el siguiente conectado a una computadora de escritorio:





Puesto que estos equipos no son baratos, teniendo precios que pueden llegar a los miles de dólares, una alternativa atractiva para escuelas técnicas y estudiantes de ingeniería puede ser la construcción o adquisición de "kits" de bajo costo, como el diseño económico del Doctor Glenn Pure descrito en el siguiente enlace:

http://www.siliconchip.com.au/cms/A_30475/article.html

y para el cual podemos obtener los programas ejecutables de software en el siguiente sub-enlace de su página casera:

http://glenn.pure.site.net.au/electron.htm

Otro ejemplo típico de este tipo de memorias es el Arreglo Lógico Programable (Programmable Logic Array ó PLA) que una vez programado ya no se puede "desprogramar" en virtud de que su programación se lleva a cabo "soldando" con antifusibles (los cuales tienen una acción contraria a los fusibles en el sentido de que al "quemarse" no se abren sino que se funden estableciendo un contacto eléctrico) los puntos seleccionados (hay también memorias PLA equipadas con "fusibles" convencionales como los que usan las memorias PROM). La principal diferencia entre el Arreglo Lógico Programable y las memorias PROM que vimos arriba es que podemos programar no sólo las líneas de salida sino también las líneas de entrada al PLA. Para poder apreciar esto mejor, a continuación se presenta primero un esquema simplificado de un PLA sin programar:



seguido por el mismo PLA ya programado:



Podemos ver cómo partiendo de las entradas a, b, c y d del PROM así como de los complementos a', b', c' y d' de las entradas se seleccionaron ciertos puntos (nueve en total) de la matriz de entradas en el plano AND para ser "fusionados" (soldados, estableciéndose una conexión eléctrica) y así tener disponibles en los renglones de la matriz de la izquierda (la matriz de salida en el plano OR) los términos ab, b'c'd', bc' y c'd'. En el plano OR dos salidas (columnas) y1 y y2 fueron seleccionadas para tener en dichas salidas los términos:

y1 = ab + b'c'd'

y2 = ab +bc' + cd'

El diagrama de este ejemplo muestra claramente que no sólo las salidas pueden ser seleccionadas y "fusionadas" (programadas) a voluntad, sino también las entradas. Obsérvese la rica variedad de posibilidades que un PLA nos ofrece sobre un PROM.

Como esto puede parecer más complicado de lo que realmente es, veremos a continuación un segundo ejemplo de otro PLA, ya "programado":



En este segundo ejemplo estamos obteniendo de la matriz de ANDs todas las cuatro combinaciones posibles para los términos de entrada: A·B, A·B, AB y AB. Y con la matriz de ORs estamos seleccionando dos salidas con distintas combinaciones de dichos términos: A·B+AB y A·B+ AB.

Resumiendo, el PLA normalmente sería idéntico en su funcionamiento a un PROM, excepto que las conexiones de entrada ligadas a los AND también son seleccionables y programables mediante la "fusión" con antifusibles de los puntos seleccionados. Esta estructura operacional del PLA la podemos resumir en forma más concreta con el siguiente diagrama funcional de bloques:





En virtud de que en el PLA ambas matrices, tanto la de compuertas AND como la de compuertas OR (implementadas con diodos en cada punto de cruce, los cuales no se han mostrado para mantener la simplicidad de los diagramas), son programables, esto nos habilita para incrementar el número de entradas disponibles sin necesidad de tener que aumentar el tamaño de la matriz, y nos permite "diseñar" a nuestro antojo un bloque combinatorio de entradas múltiples y salidas múltiples con una gran variedad de combinaciones posibles. Esta estructura permite una mejor utilización de los recursos disponibles en el circuito integrado, de tal forma que se requiere un mínimo numero de términos necesarios para generar una función lógica .

En la sección de problemas resueltos correspondiente a este capítulo se pueden encontrar ejemplos que muestran específicamente la presencia de los diodos que permiten implementar tanto la función AND como la función OR en cada matriz.

El flip-flop R-S, el elemento de memoria fundamental construído con funciones lógicas básicas, es también conocido como un multivibrador biestable por tener dos estados estables (Q=0 y Q=1).

También es posible tener un multivibrador monoestable; esto es, con un estado estable y un estado inestable. Este tipo de multivibrador es también conocido en la literatura técnica de habla inglesa como one-shot (un "disparo", posiblemente en alusión a la acción que se lleva a cabo cuando se jala el gatillo de una pistola).

Igualmente posible es la existencia de un multivibrador astable, esto es, con dos estados inestables (Q=0 y Q=1), lo cual implica que actuará como un oscilador.

A continuación se muestra un diagrama de tiempos que ejemplifica el comportamiento de los tres tipos de multivibradores:





En el diagrama superior correspondiente al inciso (a) que muestra el comportamiento de un multivibrador astable (astable multivibrator) se puede ver que este tipo de multivibrador no precisa de ninguna señal a su entrada (input), y de hecho este tipo de circuito no tiene terminal de entrada alguna. Su salida estará oscilando todo el tiempo entre el nivel de voltaje positivo (+Vout) y el nivel de voltaje negativo (-Vout) produciendo una forma de onda cuadrada. (Podemos tomar +Vout como un "1" lógico y -Vout como un "0" lógico.)

En el diagrama intermedio correspondiente al inciso (b) que muestra el comportamiento de un multivibrador monoestable (monostable multivibrator) se puede ver que la acción de "disparo" a la salida es iniciada por un brevísimo pulso de voltaje aplicado a la entrada en un tiempo t1. Inmediatamente, a la salida, el voltaje cambia de polaridad por un período prefijado de tiempo, después de lo cual la salida regresa a su valor original de voltaje. Este tipo de circuito tiene una sola terminal de entrada, la terminal de "gatillo" (trigger) que se usa para "disparar" la acción del circuito.

Y por último, en el diagrama final correspondiente al inciso (c) que muestra el comportamiento de un multivibrador biestable (bistable multivibrator) se puede ver que el circuito tiene dos estados estables. Para hacerlo cambiar de estado, aplicamos un pulso brevísimo de voltaje a una de las dos entradas (la cual podemos suponer como la entrada S de un flip-flop R-S) en un tiempo t1, con lo cual el circuito permanecerá en dicho estado por tiempo indefinido (segundos, minutos, horas, días, meses, años). Si queremos que el circuito regrese a su estado anterior, tenemos que aplicar un pulso brevísimo de voltaje en la otra terminal de entrada (la cual podemos suponer como la entrada R de un flip-flop R-S) en un tiempo t2, con lo cual el circuito volverá a su estado anterior, permaneciendo en dicho estado por tiempo indefinido hasta que no se aplique nuevamente un pulso en la terminal de entrada correspondiente para llevar a cabo tal acción.

Si lo deseamos, podemos construír con relativa facilidad cualquiera de los tres tipos de multivibradores con componentes que podemos obtener comercialmente en el mercado. Por ejemplo, si queremos construír un multivibrador monoestable, lo podemos hacer con el circuito integrado 74121 cuyo diagrama funcional interno es el siguiente:





Para construír el multivibrador monoestable, necesitamos proveerle al circuito integrado unos componentes adicionales, tales como la resistencia R y el capacitor C cuya constante de tiempo RC fijará la duración del pulso de salida. El diagrama completo de un monoestable tal es el siguiente:



En este caso, la resistencia R tiene un valor de 10K (10 mil ohms) y el condensador tiene un valor de 2 uf (2 microfarads), lo cual le fijará al pulso de salida una duración de 0.066 segundos con un comportamiento mostrado por el siguiente diagrama de tiempos.



Además del circuito integrado 74121, podemos utilizar otro circuito integrado extremadamente versátil, el cual pese a que tiene ya varias décadas de haber sido introducido, sigue resonando aún por su enorme flexibilidad y bajo costo, el timer 555.