POLITENICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS Nº 3 “ESTANISLAO RAMIREZ RUIZ” SISTEMAS DIGITALES PRÁCTICAS UNIDAD DE APRENDIZAJE: ELECTRONICA DIGITAL UNIDAD 2 : MEMORIAS EEPROM PROFESOR(A): ALEIDA GOMEZ HURTADO PRÁCTICA No.: 1 NOMBRE DE LA PRÁCTICA: Aplicación de dispositivos lógicos programable (matriz de leds y memoria EEPROM) ALUMNO(A): GRUPO: Fecha: N. BOLETA: EVALUACION: RAP(S) RELACIONADOS CON LA PRÁCTICA: 1. Utilizar la programación de los dispositivos lógicos programables con el fin de darle aplicación práctica a lo largo de este semestre. En esta práctica con el fin de implementarlo con una matriz de LED’s. 2. Conocer a fondo el funcionamiento de una matriz de LED´s y como se realizan interfaces para poder ser implementada con otros dispositivos lógicos programables como lo son los PIC´s y las Memorias de solo lectura (ROM). 3. Usa los diferentes dispositivos programables para solucionar problemas de circuitos digitales. Objetivo de la práctica: . Conocer el funcionamiento y aplicaciones de una Memoria de Solo Lectura Programable y Borrable Eléctricamente (EEPROM) que se utilizará durante el resto de las prácticas del semestre. Competencia genérica: Conocer el funcionamiento de diversos dispositivos lógicos programables como lo son los PICS y las memorias tipo ROM, para poder crear una interfaz que le de implementación con una matriz de LEDS Competencia disciplinar: Al término de la práctica el alumno 1 Conocerá las características principales de una EEPROM y otros dispositivos lógicos programables. Conocerá y creara diversos métodos para implementar dispositivos digitales, como una matriz de LEDS a un dispositivo lógico programable. MATERIAL: Memoria EEPROM o EPROM (utilizada 2864) Software MAXLOADER. Programador de memorias Willon Borrador de memorias. Protoboard, Alambre telefónico Resistores 4.7k y 220ohms Matriz de Leds 5 x 7 C. I 74138 3 Contadores 74LS93 y 2 Timer 555 Software de Programación INTRODUCCION Y MARCO TEORICO Referente a los dispositivos lógicos programables (en este caso memoria EEPROM) En todas las prácticas anteriores trabajamos con memorias tipo RAM, que se caracterizan por ser volátiles, de rápido acceso y porque permiten guardar, borrar y leer datos tantas veces cómo se requiera. Desde la práctica anterior empezamos a trabajar con otro tipo de memoria llamada de Sólo Lectura o memoria ROM, que entre sus características se encuentra la no volatilidad, que tiene un acceso un poco más lento que el de una RAM, pero lo más importante, es que, por lo general, los datos se pueden grabar una sola vez, y a partir de esta la única posibilidad que tendrá será de leer dichos datos. Para esta práctica utilizaremos una variante de la memoria ROM, llamada Memoria ROM Programable y Borrable (EPROM), en la que podemos programar los datos que queremos que almacene mediante un software y un programador universal. Una vez programada, esta memoria no cambiara sus datos. La única forma de borrar todos los datos contenidos en la memoria, es exponer dicho circuito, por un tiempo definido a rayos UV, que entran por la pequeña ventana que tiene y elimina los datos guardados. Entonces ya después de tener en cuenta estos aspectos teóricos previos a las memorias EEPROM y EPROM es necesario conocer más a fondo sobre distintos puntos importantes referentes a este tipo de memorias. Implementación de la Matriz de LEDS con el PIC 2 En esta práctica nosotros nos basamos en la utilidad de una memoria EEPROM para controlar la matriz de leds pero también con un PIC se puede realizar esta práctica, básicamente para controlar la matriz de leds se utiliza un pic 16f628a (o cualquier otro dependiendo de sus atributos) pero el código puede ser fácilmente portable a cualquier otro pic. La matriz es de 5x7 leds, ideal para mostrar números y letras. Los 5 cátodos de la matriz están conectados al puerto A y los 7 ánodos al puerto B. La multiplicación se realiza encendiendo cada una de las columnas de la matriz a la vez, pero se realiza tan rápido que parece que todas las columnas están encendidas de modo que en la matriz se vea lo que se quiere mostrar. En la utilización del PIC (al igual que con la memoria EEPROM) es necesario utilizar una técnica de multiplexacion, la técnica de multiplexación consiste en mostrar una columna a la vez, mientras eso se haga lo suficientemente rápido parecerá que todas las columnas están encendidas a la vez y no se verá ningún parpadeo, por esa misma razón la base de tiempo para la multiplexación es muy importante por lo que se utiliza la interrupción del timer 2 para esa tarea. La multiplexación es muy sencilla y se ejecuta dentro de la rutina de interrupción del timer 2, se realiza más o menos de la siguiente manera: Espera interrupción Se deshabilitan las columnas Se escribe en el puerto B el valor de las filas Se habilita la primer columna Espera interrupción Se deshabilitan las columnas Se escribe en el puerto B el valor de las filas Se habilita la siguiente columna Espera interrupción Así se repite hasta llegar a la quinta columna, entonces la ejecución de la multiplexación vuelve al principio y se vuelve a repetir. Así como fue importante conocer este funcionamiento del PIC con la matriz de LEDS también es necesario retomar teoría antes vista en clase sobre los dispositivos que utilizamos en esta práctica. Memoria de solo lectura programable y borrable (EPROM) La memoria ROM Programable y Borrable (EPROM), se caracteriza precisamente por eso, en que es una memoria que puede ser programada igual que una memoria PROM, con la diferencia de que esta puede ser borrada y reprogramada cuantas veces sea necesario. El elemento de almacenamiento de una EPROM es un transistor MOS con una compuerta de silicio que no tiene conexión eléctrica (es decir, una compuerta flotante) pero está muy cerca de un electrodo. En su estado normal no hay carga almacenada en la compuerta flotante, por lo que el transistor producirá un 1 lógico 3 cada que la dirección se seleccione. Para programar un 0 se utiliza un pulso de alto voltaje para dejar una carga neta en la compuerta flotante. Como la carga está atrapada en la compuerta flotante y no tiene ruta descarga, el cero se almacenará hasta que se borre. Para borrar los datos se restaurarán a 1 lógico. Para ello se neutraliza la carga en el electrodo flotante al exponer el silicio a una luz ultravioleta (UV) de alta intensidad durante varios minutos La 27c64 es un ejemplo de un CI de memoria pequeño de 8k x 8K, que está disponible como PROM (programable una sola vez) y como EPROM (programable y borrable) obviamente la diferencia es que la última se puede borrar y reprogramar; esta característica se nota en el circuito físico, ya que una EPROM cuenta con una ventana de cuarzo transparente que permite exponer la luz UV sobre el Silicio para borrar los datos. Ejemplo de memoria tipo EPROM Electrically Erasable Programmable Read Only Memory (EEPROM) Memoria de sólo lectura programable y borrable eléctricamente. Chip de memoria que retiene su contenido sin energía. Puede borrarse, tanto dentro del computador como externamente. Por lo general requiere más voltaje para el borrado que el común de +5 voltios usado en circuitos lógicos. Funciona como RAM no volátil, pero grabar en EEPROM es mucho más lento que hacerlo en RAM. Aquí lo que podemos destacar es que la memoria EEPROM y EPROM nos funcionaran de igual manera ya que el proceso de programación es el mismo, de igual manera el de funcionamiento pero varia en la forma de borrado, ahora esta se borrara eléctricamente. 4 INVESTIGACION PREVIA Al estar basado el funcionamiento de la practica en la utilización de algún dispositivo lógico programable (en este caso una EEPROM) para controlar una matriz de LEDS es importante conocer el funcionamiento, estructura y utilidad de este dispositivo, para después con los conocimientos adquiridos sobre los lógicos programables podamos darle una aplicación donde se muestre un anuncio en la Matriz. Matriz de LEDS Una matriz de LEDs consiste en un arreglo de LEDs que pueden ser encendidos y apagados individualmente desde un dispositivo lógico Programable. Pueden pensar en ella como una pantalla de pocos pixeles en los cuales pueden presentar gráficos y textos, tanto estáticos como en movimiento. En esta práctica utilizaremos una matriz de 5 x 7 puntos o leds. Matriz de 5 x 7 Ahora bien, es necesario conocer su funcionamiento para poder trabajar con ella y darle la aplicación con los dispositivos lógicos programables. 5 El gráfico presenta una matriz de 5×7 LEDs, donde las columnas corresponden a los cátodos (deben ir conectados a tierra) y las filas corresponden a los ánodos (deben ir conectados a +Vcc). Para encender un LED específico debe ubicarse la intersección entre la columna y la línea correspondiente. Por ejemplo, para encender el LED que se muestra en la figura siguiente, la columna 3 (C3) debe ser conectada a tierra (a través de una resistencia de 220 ohm) mientras que la fila 5 (R5) es conectada a voltaje (5v). Para poder mostrar imágenes, letras o símbolos en el display es necesario programar la los dispositivos lógicos programables de tal manera que acciones los leds correspondientes en el instante correspondiente, para esto tenemos como base los siguientes pasos: Apagar todas las filas. Escribir los valores correspondientes a la primer fila en el registro de desplazamiento, teniendo en cuenta que el primer digito binario colocado corresponde al último LED de la fila, y el ultimo en poner al de la primer columna. Encenderla primer fila, esperar un tiempo, y volver a apagarla. Repetir los pasos 2 y 3 para las filas restantes. Cabe destacar que el código que se muestra en la matriz se forma por el “barrido” de las columnas a las que se les hacen llegar en el momento apropiado los datos que queremos visualizar. Estos datos llegan de a uno por vez y se colocan en el lugar que le corresponde a cada uno dentro del mapa de bits creado en forma previa. Al repetir el ciclo muchas veces en un segundo, la imagen dará la impresión de estar fija. Dicho esto en otras palabras, no se activan todas las columnas al mismo tiempo si no que se van activando segmentos por cada tiempo y al repetirse esto muy rápido 6 a nuestra visión se ve una imagen, letra, símbolo, etc, fijo o estable en el plano de la matriz. DESARROLLO Los pasos a realizar en el desarrollo serán: I. II. III. IV. V. Construir el código que se desea mostrar en la matriz para su futura programación en el dispositivo lógico programable (EEPROM) En base a un Software programador introducir el código de la matriz a la memoria (software MAX LOADER) Quemar la memoria con el programa creado para la Matriz Realizar el circuito electrónico en simulación (ISIS) y probar su funcionamiento Llevar el armado del circuito en físico con la memoria ya programada y la matriz mostrando el código previamente hecho en el programa I. Construir el código para programar la memoria Para poder construir un código en hexadecimal (ya que así lo requiere el software con el cual programaremos) es necesario saber que los valores dependerán de los puntos que necesitamos prender, dicho de otra forma los valores con los cuales se formara el código para cada letra serán dados dependiendo de la posición de los led a prender por cada fila, teniendo así la siguiente secuencia de acciones: Primero colocamos la letra deseada en la matriz y colocamos su numeración para código binario a cada columna, de tal forma, que por ejemplo en una matriz de 8 x 8, obtenemos lo siguiente: Ahora bien ya con esos valores tenemos que sumar los números en los cuales se activan los puntos, de esta forma la suma total de cada columna nos dará el valor decimal de que puntos se tienen que activar por columna, para satisfacer el prendido y apagado de los puntos, primero por letra y después a través de un arreglo de contadores cada letra va ir formando las palabras correspondientes. Ese es el fundamento para obtener el código del programa, pero también hemos interactuado con una manera de obtener el código más fácil, que es atreves de la 7 creación de una hoja en EXCEL con la cual, en base a sumas y potencias (y respetando el mismo principio antes dicho) vamos generando el mismo código automáticamente, lo cual se explica a continuación: (2) (1) (3) (4) (5) (1).- Lo primero que se hace es generar con la cuadricula del EXCEL una matriz de lo que se necesita, en nuestro caso una matriz de 5 x 7, darle las respectivas coordenadas X y Y, y como se menciono anteriormente asignar el valor con el cual se obtendría su numeración binaria a cada columna. (2).- Ahora lo que se hace es generar un arreglo de potencias donde se multiplica la potencia de cierta coordenada por el valor que se encuentre en la misma y después se suma a las siguientes coordenadas que ya tendrían que haber hecho lo mismo. (3).- Con ese paso anterior se consigue dicha suma que hemos venido hablando donde se suma el valor que correspondería a binario en cada fila, obteniendo así en la fila 1 el valor de 15 que proviene de la suma de 1+2+4+8. (4).- Posteriormente esos valores en decimal los convertimos a hexadecimal, que es con lo que trabaja nuestro software programador. (5).- Y con la interfaz que hemos creado basta con dibujar la letra que deseamos en nuestra matriz en EXCEL colocando “1” en el punto o led a prender, nuestra hoja nos generara el código en hexadecimal para cada letra. Bastara después ingresar 8 en el software las letras en el orden correspondiente para ir formando las palabras. Con todo este proceso desarrollado tenemos el siguiente código, donde se muestra cada código por cada palabra, que después organizaremos al irlo ingresando en el software para mostrar el siguiente anuncio: CODIGO LETR A CODIGO LETR A CODI GO LETR A A B C D E F G H I 4 A 11 11 1F 11 11 0 F 11 11 F 11 11 F 0 1C 2 1 1 1 2 1C 0 7 9 11 11 11 9 7 0 1F 1 1 7 1 1 1F 0 1F 1 1 F 1 1 1 0 E 11 1 1D 11 11 E 0 11 11 11 1F 11 11 11 0 1F 4 4 4 4 4 1F 0 J K L M N O P Q R S 1F 8 8 8 8 9 6 0 11 9 5 3 5 9 11 0 1 1 1 1 1 1 1F 0 11 1B 15 11 11 11 11 0 11 13 17 15 1D 19 11 0 E 11 11 11 11 11 E 0 F 11 11 11 F 1 1 0 1E 11 11 11 1E 10 10 0 F 11 11 F 5 9 11 0 1E 1 1 E 10 10 F 0 T U V W X Y Z 3 1F 4 4 11 11 11 11 11 11 11 11 11 11 A E 11 11 A 1F 10 8 F 10 10 9 4 4 4 4 0 11 11 11 E 0 11 11 A 4 0 11 11 15 A 0 4 E A 11 0 4 4 4 4 0 4 2 1 1F 0 E 10 10 F 0 El anuncio que se tiene que mostrar en la Matriz está compuesto por las siguientes palabras: Palabras mostradas en la Matriz en ese orden INSTITUTO POLITECNICO NACIONAL CECYT 3 ESTANISLAO RAMIREZ RUIZ ELECTRONICA DIGITAL Es importante recordar que la manera de ir metiendo los códigos en la matriz será de letra por letra hasta formar una palabra, y cada letra tomara una dirección, así también cada letra tendrá sus 8 códigos hexadecimales, esto se explicara mejor en el siguiente punto del desarrollo. II.- Crear el programa en el software de programación 1.- Lo primero que tenemos que hacer es descargar el MAX LOADER ya sea desde algún dispositivo de almacenamiento externo o desde algún sitio Web, después de descargarlo, ejecutarlo con el icono: 2.- Cuando lo ejecutemos nos aparece una ventanilla como la siguiente, donde podemos seleccionar el tipo de programador que utilizaremos o podemos darle continuar y ponerle que usaremos el que nos da por default: 10 3.- Posteriormente nos aparece la Interfaz del programa en donde estaremos trabajando para realizar el proyecto, la interfaz luce como la siguiente, donde nos tenemos que dirigir a BUFFER Edit Buffer y ahora tendremos la siguiente interfaz que se muestra en la figura 2: 4.- Ya teniendo el código en la mano podemos empezar a meterlo en el MAX LOADER de esta manera creando nuestro programa, en el cual se ingresaran letra por dirección, ocupando los 8 espacios de cada código/letra: En la imagen podemos ver el código generado para que en la matriz de leds aparezca letra por letra la palabra “POLITECNICO”. 5.- Después de ingresar todo el código, letra por letra hasta ingresar todas las palabras, en el programa damos clic en el icono guardar, donde después de hacer 11 clic nos abrirá una ventana donde tenemos que elegir “Intel Hex File.hex” y aparte de ponerle al nombre del programa la terminación .hex para que se nos genere el archivo .HEX III.- Quemar la memoria con el programa creado En este paso quemaremos la memoria EEPROM con la información del programa previamente hecho, cabe remarcar que el hardware que utilizaremos para dicho fin es el programador universal WELLON Los Programadores WELLON son programadores universales asequibles, confiables, y rápidos. Están diseñados para operar con computadores IBM compatibles de escritorio y portátiles basadas en un Intel Pentium. No se requiere de una tarjeta de interfaz para conectar el programador a una PC (esta característica es especialmente útil para usuarios de computadores portátiles). La interfaz, manejada a través de menús, del software de programación hace de ellos, programadores de fácil operación. Antes de poder programar la memoria es necesario instalar los controladores del programador en la computadora, para después utilizar el hardware, lo cual se desarrolla en los siguientes puntos: 1.- Instalar los controladores y el Software en la computadora, esto se realiza insertando el disco de instalación y siguiendo las instrucciones: 12 2.- Ya instalados los controladores conectar el programador WELLON a la corriente para alimentarlo y conectarlo con el PC a través del cable USB: 3.- Colocar la memoria sobre el zócalo y asegurarla con el broche, después seleccionar la memoria con la cual se estará trabajando y poner en LOAD el archivo a cargar: 4.- Para quemar el programa en la memoria basta con oprimir el botón de PROG. que se encuentra en el único menú de la barra superior de la pantalla y el programa quedara cargado en la memoria en cuestión de decimas de segundo, el siguiente 13 paso es retirar la memoria con cuidado recordando que está hecho con tecnología MOS. IV.- Realizar la simulación en ISIS y probar su funcionamiento: Ya que tenemos el programa debemos realizar una simulación de este en PROTEUS, por lo que realizamos el siguiente circuito en Proteus: En la imagen podemos notar el circuito completo de la conexión de la memoria EEPROM (o 2764) conectada a los contadores, los cuales están a su vez conectados con timer 555 y después la salidas que controlan las filas se multiplexan con el 74138. Y para cargar la memoria con la simulación del programa que hemos hecho en max loader le damos clic derecho al Integrado 2764 y abrimos el archivo “.hex” desde Image File V.- Llevar el circuito al armado en físico con la memoria programada En este punto se tiene que armar el circuito de la práctica en físico con los respectivos componentes y conexiones, lo cual lo podemos ver en las siguientes imágenes: 14 A continuación se mostrara una secuencia en orden de las letras mostradas en la Matriz formando una palabra, lo cual nos dará el anuncio sobre la matriz de LEDs, que es el objetivo de la práctica: Cuestionario: 1.- ¿Qué es un dispositivo lógico programable y da ejemplos? 15 Un dispositivo lógico programable es un circuito, arreglo o dispositivo que tiene la peculiaridad de ser manipulado, pudiendo así el usuario programar su contenido, tal es el caso de los PICs, las GALs, y las memorias que hemos utilizado en esta práctica. 2.- Describe las características de la memoria utilizada en esta práctica: En esta práctica ocupamos una memoria tipo EEPROM a la cual le hemos grabado los datos con los que contara su contenido. 3.- Cuales son las aplicaciones más comunes de las memorias tipo ROM: Se ocupan principalmente en las computadoras como las que almacenan la información de arranque tal es el sistema operativo y programas del CPU. 4.- ¿Qué es una matriz de Led´s? Una matriz de LEDs consiste en un arreglo de LEDs que pueden ser encendidos y apagados individualmente desde un dispositivo lógico Programable. Pueden pensar en ella como una pantalla de pocos pixeles en los cuales pueden presentar gráficos y textos, tanto estáticos como en movimiento. 5.- ¿Qué matriz de Led´s se ha ocupado en esta práctica? Para realizar esta práctica hemos utilizado una matriz de Led´s de 5 x 7 puntos o diodos emisores de luz. 6.- ¿Cómo se logra programar una memoria PROM o EPROM? Se logra programar en base a un código escrito en hexadecimal o binario, que generalmente bien en un programa fijo tal es el caso del MAX LOADER y otros en donde se crea el programa, y posteriormente con una interfaz programadora o programador, como es el WILLON se quema la memoria con la información del programa. 7.- ¿De qué tipo de tecnología es la memoria EPROM 2764 y la EEPROM? a) b) c) d) MOS TTL PIN-PIN LOGIC MEMORY 8.- ¿Cuál es el significado de EEPROM? a) Memoria Pasiva al Ordenar b) Memoria de Acceso Ordenado 16 c) Memoria Programable y Eléctricamente Borrable de solo Lectura d) Memoria de solo Lectura 9.- ¿Cómo es el borrado de una memoria EEPROM? a) b) c) d) Se le meten pulsos positivos con un LM555 Se le meten pulsos negativos con tierra de una pila Borrado eléctricamente con programador el cual crea cortos internos Se arma un divisor de voltaje siendo la memoria el RX 10.- ¿Cuál es el otro dispositivo lógico programable ideal para utilizar con Matriz de Leds? a) b) c) d) e) f) Programas de lenguaje C++ PIC’s Ordenadores Personales Compuertas Básicas Timers Flip Fliops tipo D y JK 11.- Son algunas aplicaciones de la Matriz de Leds: a) b) c) d) Contadores en binario, Shutdowns, Reles Como dispositivos lógicos programables Programadoras de lenguaje ensamblador, quemador de PIC´s Visualizador de símbolos, anuncios, letras, señalamientos, etc 12.- Brevemente, como se logra que aparezca un letrero en la Matriz: a) Se encienden los puntos de cada fila por tiempos ,muy rápidamente y de esta manera se visualiza un símbolo que aparenta ser estable sobre el plano de la matriz b) Colocamos la dirección de todo el símbolo de una palabra en la matriz y aparecen solo los diodos prendidos por tiempo, pero todos a la ves c) Encendemos punto por punto dándole la dirección de un solo led y lo encendemos, enseguida se apaga y se enciende el siguiente, hacemos estos con tiempos muy rápidos y se visualizaran las letras d) Colocamos una fuente de alimentación en cada punto, de esta manera con un interruptor en cada fuente vamos diseñando la figura a mostrar en la Matriz. Fuentes y Referencias 17 Ronald J. Tocci Sistemas digitales: Principió y Aplicaciones, paginas. 818-905, editorial: Pearson Educacion, 2003, ISBN 9702602971 “Electrónica Digital-Lógica Digital Integrada, Teoría, Problemas y Simulación” Autores; ACHA Santiago, RIOSERAS Miguel, LOZANO Miguel, CASTRO Manuel y PERÉZ Julio. Principios Digitales Roger L. Tokheim TERCERA EDICION IMPRESO EN ESPAÑA PRINTED IN SPAIN. ©Alfaomega Rama 2007 Electrónica digital principios y aplicaciones de Roger Tokheim. pág. 378,379 y 380. http://memorias.digitalesii.over-blog.es/pages/memoria-eeprom-2859121.html http://www.creatronica.com.ar/lectorgrabador.htm http://galaxi0.wordpress.com/about/salidas-y-entradas-digitales/matriz-de-leds/ http://www.uhu.es/rafael.lopezahumada/Cursos_anteriores/fund97_98/plds.pdf 18