LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS Y PERIFÉRICOS. PRÁCTICA #3 MEMORIAS DE SÓLO LECTURA SEMICONDUCTORAS OBJETIVO DE LA PRÁCTICA. Conocer las partes integrales de la memoria de sólo lectura semiconductora y su principio de operación, además de los diferentes tipos de memorias ROM que existen. Que el alumno conozca e identifique una memoria comercial EPROM y/o EEPROM, así como la configuración de sus pines y las aplicaciones que puede tener en el campo de la ingeniería computacional. Que el alumno conozca el funcionamiento y operación del programador universal TOPMAX, a través de la grabación de una memoria comercial EPROM o EEPROM. INTRODUCCIÓN. Las memorias de sólo lectura ROMs (Read Only Memories), son aquellas memorias que únicamente permiten la operación de lectura en uso normal, sin embargo cabe señalar que existen algunos tipos de ROMs en las cuales se puede llevar a cabo la operación de escritura, pero el tiempo que requiere para realizarla es mucho mayor que el tiempo necesario para la operación de lectura, por consiguiente no son consideradas como memorias de lectura y escritura. Una característica de las memorias ROMs es que son del tipo de memorias no volátiles por lo que son muy importantes en los sistemas computacionales, esto es debido a que son utilizadas para almacenar información que solamente queremos leer, como por ejemplo para guardar el conjunto de instrucciones que tienen que ser ejecutadas para arrancar un sistema computacional cuando éste es encendido. Otras aplicaciones serían: guardar el sistema operativo, macroinstrucciones, códigos, funciones trigonométricas, logarítmicas, generadores de caracteres, microprogramas, etc. De esta forma las ROMs son integradas como componentes de una computadora, a esto se le conoce con el nombre de firmware (software contenido en hardware). Existen varios tipos de memorias de sólo lectura (ROMs): Memoria ROM de máscara (MROM) Memoria ROM programable (PROM) Memoria ROM programable y borrable con luz ultravioleta (EPROM) Memoria ROM programable y borrable eléctricamente (EEPROM) Y dos tipos de tecnologías de fabricación básicas en las ROMs, la bipolar y la MOS (figura 1). Como puede observarse, en la bipolar sólo hay ROMs de máscara y PROMs, mientras que en la MOS existen además de las anteriores las EPROMs y las EEPROMs. Fig. 1 Clasificación de las memorias ROMs. La principal diferencia entre estas dos tecnologías es el tiempo de acceso. Las ROMs bipolares tienen un tiempo de acceso menor que las ROMs de tecnología MOS. Por consiguiente, las bipolares tienen una disipación de potencia mayor que las MOS. Por otro lado, las bipolares se fabrican principalmente con una capacidad menor que las MOS. Como ya dijimos las memorias ROM son no volátiles y de lectura no destructiva, esto último quiere decir que la información no se pierde cuando se lee una localidad o registro de la memoria. Los dispositivos de almacenamiento tienen como propósito guardar información y proporcionarla cuando ésta se necesite, por tal motivo estos dispositivos requieren de una estructura para poder realizar sus operaciones de lectura o escritura, a continuación se muestra el diagrama de bloques de la estructura básica de estos dispositivos. Fig. 2 Estructura básica de las memorias ROMs. La arquitectura (estructura) de un circuito integrado (CI) ROM es muy compleja, y no necesitamos conocer todos sus detalles. Sin embargo, es ilustrativo observar un diagrama simplificado de la estructura interna, como el que se muestra en la figura 3 para una ROM de 16 x 8. Los cuatro bloques básicos mostrados, funcionan de la siguiente manera: Almacenamiento. Este bloque esta integrado por una matriz de registros que almacena los datos que han sido programados en la ROM. Cada registro contiene un número de celdas de memoria que es igual al tamaño de la palabra. En el caso de la figura, cada registro almacena una palabra de 8 bits. Los registros se disponen en un arreglo de matriz cuadrada que es común a muchos circuitos. Podemos especificar la posición de cada registro como una ubicada en un renglón y una columna específicos. Por ejemplo, el registro 0 se encuentra en el renglón 0 / columna 0, el registro 9 se encuentra en el renglón 1 / columna 2 y el registro 15 se encuentra en el renglón 3 / columna 3. Las ocho salidas de datos de cada registro se conectan a un canal de datos interno que corre a través de todo el circuito (bus de datos). Cada registro tiene dos entradas de habilitación (E); en este caso, ambas tienen que ser altas a fin de que los datos del registro sean colocados en el canal y sean almacenados en el buffer de entrada/salida. Las características de las celdas definen el tipo de memoria, es decir si esta es de sólo lectura o de lectura escritura. Direccionamiento. Este bloque tiene la finalidad de seleccionar una y sólo una localidad o palabra de memoria a la vez, para poder realizar a continuación una operación de escritura o lectura sobre ella. En la figura, el código de dirección aplicado A3A2A1A0 determina qué registro será habilitado para colocar su palabra de datos de 8 bits en el canal. Los bits de dirección A1A0 se alimentan a un decodificador 2 a 4 que activa una línea de selección de renglón, y los bits de dirección A3A2 se alimentan a un segundo decodificador que activa una línea de selección de columna. Solamente un registro estará en el renglón y la columna seleccionados por las entradas de dirección, y éste estará habilitado. También existen unidades de direccionamiento que utilizan solamente un decodificador. Control. Este bloque realiza todo lo necesario para coordinar y controlar el buen funcionamiento. Aquí podemos encontrar las señales de la operación que se realizará al registro seleccionado por el bloque de direccionamiento, además regula el flujo de datos hacia el exterior o interior del dispositivo. Entrada/Salida. Esta integrado por un conjunto de amplificadores que actúan como un registro intermedio (buffer de entrada/salida) para los datos. Este bloque puede estar controlado por un habilitador de salida de datos CS en la figura, o entrada/salida si el bus es bidireccional como regularmente pasa. Se hablará del funcionamiento del buffer en la práctica 4. Fig.3 Arquitectura de una memoria de sólo lectura de 16 x 8. En la actualidad existen comercialmente una gran variedad de memorias seriales y paralelas con características muy particulares por lo que es casi imposible conocerlas todas, así mismo una diversidad de aplicaciones. Por lo que a continuación se verán primeramente a las memorias EPROM y posteriormente a las EEPROM, dándose algunas de sus características y diferencias entre ambas memorias. MEMORIAS EPROM y EEPROM Las EPROM, son memorias de sólo lectura, programables y borrables, se programan mediante pulsos eléctricos y su contenido se borra exponiéndolas a la luz ultravioleta, por lo que éstas también son conocidas como UVEPROM (por sus siglas en Inglés Ultra Violet Erasable Read Only Memory). Una característica que presentan estas memorias es que el circuito integrado presenta una ventanita, véase la figura 4. Para guardar la información en la memoria se requiere de un dispositivo programador y para su borrado se requiere introducir el circuito integrado en un dispositivo borrador, el cual en su interior contiene una lámpara de luz ultravioleta, la cual debe ser aplicada por aproximadamente 20 minutos, borrando la totalidad de las celdas. Fig. 4 Memoria UVEPROM La celda de almacenamiento de una memoria EPROM consiste de un solo transistor MOSFET que contiene una compuerta flotante de silicio llamada FAMOS (Floating Gate Avalanche-Inyection MOS). La programación de una celda consistiría en introducir electrones en forma de avalancha a la compuerta flotante del transistor seleccionado, quedando éstos atrapados en la misma, dicha carga aumenta la conductividad entre las terminales del gate y el source del transistor, haciéndolo conductor (el transistor enciende), en ese caso podríamos decir que la celda tiene almacenado un uno. Si la compuerta flotante del transistor seleccionado esta vacía, este transistor no enciende, por lo que podríamos decir que la celda tiene guardado un cero. El borrado consistiría en colocar el circuito integrado con la ventanita descubierta en un dispositivo borrador, aplicándose los rayos de luz ultravioleta al mismo, con lo cual se eliminarían por efecto fotoeléctrico los electrones que estuvieran atrapados en las compuertas flotantes correspondientes, con lo cual se volvería al estado inicial, es decir ningún transistor podría encender, (el borrado sería en todas las celdas de la memoria), por lo que podríamos decir que la memoria tendría almacenados puros ceros. Las memorias EPROM solamente se pueden borrar un número limitado de veces (entre 6 y 10). Las memorias EEPROMs son memorias de sólo lectura, programables y borrables eléctricamente (su nombre proviene de las siglas en inglés Electrically Erasable Programmable Read Only Memory). Las celdas de memorias EEPROM son similares a las celdas EPROM algunas diferencias se encuentran en la capa aislante alrededor de cada compuerta flotante, la cual es más delgada y no es fotosensible, además cada celda de las memorias EEPROM está integrada por dos transistores, uno de direccionamiento y el otro de almacenamiento, éste último es el que posee la compuerta flotante. Las memorias EEPROM son programables y borrables a través de pulsos eléctricos, se puede borrar totalmente una memoria en un solo instante, o localidades individuales de almacenamiento pueden ser borradas y reprogramadas por medio de pulsos eléctricos, sin necesidad de retirar el circuito integrado de su lugar, con lo cual se logra una gran flexibilidad. Las memorias EEPROM son más caras que las EPROM, además se pueden borrar y reprogramar miles de veces y la información almacenada puede perdurar aproximadamente 100 años. La programación de una memoria EEPROM es muy similar a la EPROM. El significado de las matrículas, por medio de la cual conoceremos algunas características específicas de estas memorias, es el siguiente. Los dos primeros dígitos corresponden al tipo de memoria, por ejemplo en el caso de las EPROM el código es el 27, en el caso de las memorias EEPROM podría ser el 28, 29, 37, varía según sea el fabricante, los siguientes números especifican la capacidad de la memoria en bits, dada en Kbits (1 K = 1x1024 bits). Por ejemplo, una memoria 2764 ó 2864, en el primer caso corresponde a una memoria EPROM y en el segundo corresponde a una memoria EEPROM, el 64, en ambos casos, nos indica que la capacidad de la memoria es de 64 Kbits, es decir 65536 bits o celdas. Por lo tanto podemos decir que la organización interna de la memoria sería de 8 K x 8 bits, o en otras palabras contiene 8 K registros, cada registro de 8 bits. La organización de una memoria, está definida como el número de palabras por el número de bits por palabra, por ejemplo 8K x 8 bits o también se podría decir 8K Bytes. En algunos casos aparece o se omite la letra C entre el identificador (27 ó 28) y la referencia de capacidad, esto se refiere al tipo de tecnología utilizada en la fabricación de la memoria, así pues si tiene una C la memoria es CMOS y si carece de ella es solamente MOS. Observando la tabla 1, la memoria 27C512 sería una memoria EPROM de tipo CMOS y su capacidad es de 512K bits, la siguiente 27C010 corresponde a una memoria EPROM con capacidad de 1024K ó 1 M, la 27C020 y la 27C040 serían de 2M y de 4M respectivamente, todas con un tamaño de palabra de 8 bits. Originalmente se había especificado que las memorias de las series 27 y 28 tendrían un tamaño de palabra fijo de 8 bits, sin embargo posteriormente esto cambio, por ejemplo véase el circuito integrado 27C210, en este caso el 2 indica que el tamaño de la palabra es el doble es decir 16 bits y una capacidad de 1 M. EPROM o EEPROM 27C08 ó 28C08 27C16 ó 28C16 27C32 ó 28C32 27C64 ó 28C64 27C128 ó 28C128 27C256 ó 28C256 27C512 ó 28C512 27C010 ó 28C010 27C020 ó 28C020 27C040 ó 28C040 27C210 ó 28C210 Capacidad (bits) 8K 16 K 32 K 64 K 128 K 256 K 512 K 1024 K = 1 M 2M 4M 1M Organización ( # palabras / # bits por palabra) 1K x 8 2K x 8 4K x 8 8K x 8 16K x 8 32K x 8 64K x 8 128K x 8 256K x 8 512K x 8 64K x 16 Tabla 1. Ejemplos de diferentes capacidades y organizaciones de EPROMs y EEPROMs. La tabla 2 muestra el patigrama de varios circuitos integrados de la familia 27, en éstos se puede apreciar el número de pines que contienen, así como la ubicación y la definición de cada una de ellas. La muesca que presentan los circuitos nos indican la orientación y el orden que siguen los pines, el cual tiene un seguimiento en “U”, como se podrá observar en el circuito integrado. Tabla 2. Patigramas de algunas memorias de la familia 27 Si tomamos como ejemplo, el circuito integrado 27C256 al centro de la tabla anterior, podemos observar la siguiente configuración de los pines: - Los pines A14, A13, A12…A0 son las entradas de las líneas de direccionamiento por medio de las cuales se podrá seleccionar una localidad de la memoria en donde se quiera realizar una operación, ya sea de lectura o escritura. La cantidad de líneas de direccionamiento nos define el número de palabras o localidades que tiene la memoria. Lo anterior se puede obtener mediante la expresión 2n, donde n es el número de terminales de direccionamiento, en este caso se tienen 15 líneas, por lo tanto se tendrán 215, dándonos un total de 32 K localidades de memoria. Los pines O7, O6, O5…O0 son las correspondientes líneas de salida de datos, las cuales en el proceso de grabación de la memoria sirven a su vez como líneas de entrada de datos. El número de líneas dependerá del tamaño de la palabra de la memoria (en este caso 8), sin embargo en el mercado existen memorias de diferentes tamaños de palabras como pudiera ser de: 1, 4, 8 y 16 bits. El pin CE (Chip Enable) se utiliza como habilitador del circuito integrado, por lo regular la memoria esta seleccionada cuando en esta entrada se presenta un voltaje bajo El pin OE (Output Enable) es el habilitador de salida de datos, la salida de datos se encuentra habilitada cuando éste se encuentra a un voltaje bajo, entonces la memoria presenta en sus salidas los datos que tiene guardado, en caso contrario, las líneas de salida de datos presentan una alta impedancia o actúan como entrada de datos en el caso de la programación de la memoria. Los pines VCC y GND corresponden a la línea de voltaje de alimentación y a la línea de voltaje de referencia. El pin Vpp es la línea de entrada para aplicar el voltaje para programación cuando se está en el modo de programación. En la tabla 3 se observan los modos de operación que tienen las memorias EPROM, así como los voltajes de entrada y de salida respectivos. Los diferentes modos de operación son: modo lectura (read), modo espera (standby), modo salidas deshabilitadas (output disable), modo programación (program), modo verificación de programación (program verify) y por último modo programación inhibida (program inhibit). MODE CE OE VPP VCC OUTPUTS READ VIL VIL 5V 5V DOUT STANDBY VIH X 5V 5V HI-Z OUTPUT DISABLE X VIH 5V 5V HI-Z PROGRAM VIL VIH 12.75 V 6.25V DIN PROGRAM VERIFY VIH VIL 12.75V 6.25V DOUT PROGRAM VIH VIH 12.75V 6.25V HI-Z INHIBIT X = no importa, HI-Z = alta impedancia, VIL= Voltaje de entrada bajo, VIH= Voltaje de entrada alto DOUT= salida dato, DIN entrada dato. Tabla 3. Modo de Selección En la figura 5 se muestran los circuitos integrados 27C64 y 28C64 que corresponden a las memorias EPROM y EEPROM respectivamente, ambas con una capacidad de 64 Kbits, en ellos podemos apreciar que casi son idénticos, las diferencias serían que en el pin número 1 de la EPROM aparece el voltaje para programación (Vpp), mientras que en la EEPROM no hay conexión (NC), en el pin 27 en la primera está el pulso de programación (PGM), mientras que en la segunda está el habilitador de escritura (WE). Como se puede observar son casi idénticos. Fig. 5 Circuito Integrado de Memorias EPROM y EEPROM con capacidad de 64 Kbits. Ahora que se conoce cómo identificar una memoria se procederá a ver como grabarla. Lo que debemos tomar en cuenta es lo siguiente: Al comprar la memoria debe de estar cubierta con papel estaño, aluminio o estar contenida en una mica plástica (como estuche transparente), evite tocar los pines de la memoria. Para encontrar el software del programador en la computadora personal (PC), únicamente se busca en el escritorio el icono que dice Acceso directo a ML (Max Loader) figura 6. Fig. 6 Acceso Directo a ML Antes de que se proceda a manipularlo se debe asegurar de que el programador este conectado al puerto paralelo de la computadora, posteriormente enciéndalo en modo operación; no coloque la memoria antes de encenderlo o antes de ejecutar el programa porque se puede dañar el programador o incurrir en un error de software. Ahora ejecute el programa. Aparecerá una ventana como la mostrada en la figura 7, entonces proceda a colocar la memoria; para esto sólo tómela con el dedo índice y el pulgar de los lados extremos de la memoria donde no toque los pines de la memoria. Observe que en el programador el socket o base donde se va a colocar la memoria indicará el sentido y orientación de la memoria, si no lo ubica pregunte a su profesor para que lo asesore, para ésta u otras dudas, NO experimente si no ha entendido . Fig. 7 Ventana principal. Max Loader (Top Max) Enseguida seleccione en la pantalla principal el menú DEVICE y posteriormente dar un click en SELECT, figura 8. Fig. 8 Menú Device. Se abrirá una ventana para identificar la memoria. Primero seleccione el fabricante y posteriormente la matrícula, figura 9. Fig. 9 Menú para seleccionar el circuito integrado a utilizar. Ahora se debe regresar al mismo menú DEVICE , aquí se procederá a seleccionar si se programa, lee o borra la memoria, como se muestra en la figura 10, seleccionándose la opción con un click. Fig. 10 Menú para seleccionar la opción que se quiera realizar. Para comenzar a vaciar los datos se debe entrar a la pantalla anterior y buscar donde diga Buffer y dé un click en Edit Buffer o con F6, dentro de esta herramienta se podrá ver el mapeo de la memoria, o sea los registros asociados de los datos conjuntamente con sus respectivas direcciones. Los datos se podrán ingresar en hexadecimal o en ASCII como se muestra en la Figura 11. Fig. 11 Ventana de edición Para salir del modo programador o salvar el archivo recurra nuevamente al recuadro superior de herramientas y seleccione FILE, dentro del menú procederá a seleccionar la opción ya sea salir, guardarlo o cargar el archivo de datos. En la figura 12 se muestra que se puede utilizar también la barra de herramientas con las mismas acciones, anteriormente explicadas. Fig. 12 Menú Barra de Herramientas Con esto se dará por terminado el uso del programador universal. DESARROLLO Principio de funcionamiento de las memorias ROM i) Implemente la memoria ROM de la figura 13. Nota: Encuentre la forma de utilizar el CI 74LS139 para poder obtener un decodificador 3 x 8 que se necesita para la implementación. Verifique su funcionamiento y escriba la tabla de información que tiene guardada, llame al instructor para la verificación. ¿En qué momento se guardó la información? ¿A qué tipo de memoria ROM pertenece? ¿Qué pasará con la información guardada en la memoria si se quita inesperadamente la alimentación? ¿Por qué sucede esto? ¿Qué implica que haya un diodo o no? Explique cuál es el principio de funcionamiento de esta memoria. Identifique en la figura 13, los bloques básicos que integran una memoria. Fig. 13 Memoria de sólo lectura con organización 8 x 2. Programación de una memoria ii) En una memoria comercial UVEPROM o EEPROM, grabe los siguientes datos: Nombre de la asignatura y semestre. Nombre de los integrantes del equipo. Número de cuenta, grupo de laboratorio y grupo de teoría. ¿Qué aprendió en la práctica? ¿Cómo se borra una memoria UVEPROM y una EEPROM? Texto libre 100 palabras sobre el tema. Muestre al instructor la información anterior en un display de siete segmentos. - ¿Qué organización tiene la memoria utilizada y su capacidad total? - ¿A qué tipo de memoria ROM pertenece? - ¿Qué pasa con la información guardada en la memoria utilizada si se quita inesperadamente la alimentación? - Explique el por qué sucede esto. MATERIAL. 1 CI. 74LS139 (dual decoder 2 x 8). 1 CI. 7404. 1 Memoria EPROM o EEPROM (según su elección). Hojas de especificaciones de la memoria seleccionada (patigrama). 1 display de siete segmentos. 1 Contador Binario. - Suficientes diodos IN4001 ó equivalentes, para armar la memoria ROM. - Resistencias de 330 Ω y de 1 kΩ. 2 diodos leds.