You are on page 1of 10

LABORATORIO DE SISTEMAS ELECTRNICOS DIGITALES

LSEDG
CURSO 98/99

PRCTICA BASADA EN EL MICROCONTROLADOR 68HC11 DE MOTOROLA. Versin 1.01 (25-FEB-1999)

GRABADOR DE MEMORIAS EPROM/EEPROM

Introduccin
El objetivo de esta prctica es que el alumno, que opcionalmente haya decidido realizar la prctica del laboratorio utilizando un microcontrolador de la familia 68HC11 de Motorola, disee e implemente un sencillo Grabador de memorias EPROM/EEPROM. El desarrollo de un sistema digital basado en un microprocesador, en un microcontrolador sin demasiada memoria interna, o en un PIC, necesita de la grabacin de una memoria no voltil (Ej. EPROM, EEPROM) (en el caso de un microprocesador siempre es necesario y en el de un microcontrolador depende del mismo y de la aplicacin). Veamos un ejemplo: suponga que desea disear un sistema capaz de emitir mensajes de voz grabados. Dichos mensajes ocupan muchos bytes de memoria pues a una frecuencia de muestreo de 8 KHz, con un byte por muestra, 1 segundo de voz necesita 8000 bytes. Cualquier mensaje necesita de varios segundos y la memoria no voltil interna de un microcontrolador suele ser pocos Kbytes, por lo que no podremos grabar dicha informacin en el propio microcontrolador, necesitando de una memoria externa. Durante el desarrollo de un prototipo son muchas las veces que se grabarn y borrarn estas memorias hasta conseguir la funcionalidad requerida. Este proceso de grabacin/borrado de memorias no voltiles se realiza utilizando un dispositivo conocido como Grabador de Memorias. Se puede comprar en cualquier tienda especializada y su precio suele ser superior a las 40.000 ptas. , dependiendo de sus prestaciones.
-1-

Con el fin de que el alumno aprenda a disear e implementar sistemas digitales basados en un microcontrolador (en concreto uno de la familia 68HC11 de Motorola) y adems, pueda disponer personalmente de su propio Grabador de Memorias de bajo coste, se ha diseado y propuesto la presente prctica.

Descripcin de la prctica
El Grabador de Memorias propuesto grabar memorias de dos tipos: EPROM y EEPROM. Aunque existen distintos modelos de cada una de ellas, las ms habituales (utilizadas) son la serie 27xxx para las EPROM y la serie 28xxx para las EEPROM. Estas dos series son las nicas que deber programar o grabar nuestro prototipo. El motivo de esta limitacin es por un lado pedaggica y por otro prctica, pues se trata de aprender los fundamentos de un Grabador de Memorias en un tiempo limitado por la duracin de la asignatura y adems, el proceso de grabacin y los terminales de las memorias vara ligeramente pero suficiente para complicar el diseo del hardware necesario sin aportar informacin til, desde el punto de vista acadmico, al alumno. Para el desarrollo de la prctica se recomienda que el alumno adquiera o se construya un pequeo sistema basado en el modelo 68HC11E2 de esta familia. De este modo, dispondr de la suficiente memoria EEPROM interna para guardar su programa de aplicacin (Grabador de Memorias). Bsicamente, el sistema dispondr de: Circuito de reloj a 8 MHz Circuito de reset Circuito de alimentacin regulada y estabilizada de +5v Circuito de adaptacin de niveles serie compatibles RS-232C Un microcontrolador 68HC11E2 (con 2 Kb de EEPROM interna) Jumpers de configuracin del modo de funcionamiento

El Grabador de Memorias EPROM/EEPROM se comunicar con un PC a travs del puerto serie del mismo (COMx). El nico software necesario en el PC ser un programa de comunicaciones serie estndar (Qmodem, Kermit, Hyperterminal, etc.), que tendr como funcin enviar el fichero ASCII con la informacin a grabar en la memoria desde el PC al Grabador de Memorias. Este fichero de datos no deber tener ningn formato de cdigo mquina especfico (Ej. S28, S19, etc.) para tener la mayor versatilidad posible. Por tanto, cuando queramos grabar un programa de aplicacin, deberemos extraer del fichero con el cdigo mquina del programa obtenido despus de ensamblar y linkar, el cdigo de las instrucciones, eliminando la informacin adicional (checksum, formato del registro, direccin del registro, nmero de bytes del registro, etc.). El Grabador de Memorias (microcontrolador) estar esperando recibir bytes a travs de su puerto serie (debidamente configurado en velocidad y en
-2-

el formato de los caracteres) los caracteres ASCII a grabar en la memoria seleccionada. A medida que recibe los caracteres en hexadecimal, el programa del Grabador de Memorias ir grabando esa informacin (en binario) en la memoria colocada en el zcalo de grabacin, realizando la verificacin de cada dato grabado. En caso de problemas, abortar el proceso de grabacin. Hardware del Grabador de Memorias El Grabador de Memorias necesita de un hardware adicional que el alumno deber disear e implementar a partir de las recomendaciones que se dan en esta memoria, aunque podr alterar el diseo propuesto si as lo cree conveniente siempre que no reduzca las prestaciones y las posibilidades del sistema. Cualquier mejora del diseo ser evaluada y valorada. El esquema de bloques del hardware a disear e implementar es el que se incluye a continuacin.

Vcc
GND

MDULO DE TENSIONES DE GRABACIN

ZCALO DE GRABACIN DE MEMORIAS

MDULO DE CONFIGURACIN

MDULO DE DIRECCIONES

MDULO DE DATOS

PORTB

PORTA,D

PORTC

En el diagrama de bloques de la figura anterior podemos destacar los siguientes mdulos: Mdulo de Direcciones. Es el encargado de poner un valor de direccin en el bus de direcciones de la memoria insertada en el zcalo de grabacin. Deber comprobar si esa direccin es posible para la memoria seleccionada, es decir, que no supera el tamao de la memoria. Este mdulo estar formado por 2 latchs (74373) de 8 bits (podr ser ampliado a 3 latchs en el caso de querer grabar memorias mayores de 64 Kb), de este modo podremos tener direcciones representadas con 16 bits (hasta 32 Kb). Adems, se utilizar un decodificador de 3 entradas y 8 salidas (74138) para poder seleccionar uno de los 2 latchs de direcciones. Se utilizar el
-3-

puerto PORTB como puerto de direcciones. El programa de aplicacin deber ser capaz de escribir cada uno de los 2 bytes que conforman un valor de direccin en su latch correspondiente, como paso previo a la lectura o escritura de un dato en la memoria insertada en el zcalo de grabacin. El alumno debe tener en cuenta que el bus de direccin de las memorias es de 14 bits como mximo (27256, 28256), y el bus de direcciones del grabador es de 16 bits.
Nota.- Es posible que el alumno necesite algn circuito adicional (puertas lgicas) para implementar correctamente este mdulo.

Mdulo de Datos. Este mdulo es el encargado de poner el dato a escribir o leer un dato del bus de datos de la memoria insertada en el zcalo de grabacin. El bus de datos de las memorias es de 8 bits (1 byte), por lo que se debe utilizar el PORTC como puerto de datos del Grabador aprovechando su bidireccionalidad. Para no cargar el PORTC, debemos utilizar un buffer triestado bidireccional (74245) cuyo sentido habr que configurar para poder leer o escribir datos, a travs de l, en el bus de datos de la memoria del zcalo de grabacin.
Nota.- Es posible que el alumno necesite algn circuito adicional (puertas lgicas) para implementar correctamente este mdulo.

Mdulo de Configuracin. Est formado por un conjunto de jumpers o microswitchs que permitir la conexin correcta de los terminales de las distintas memorias a las seales correspondientes del Grabador de Memorias. Mdulo de Tensiones de Grabacin. Las memorias EPROM que se deben utilizar son aquellas cuya tensin de grabacin es + 12.5 v. Recuerde que existen versiones ms antiguas cuya tensin de grabacin es + 25 v, y por tanto, no podrn ser grabadas en el sistema que se va a desarrollar. Durante el proceso de grabacin de una EPROM es necesario mantener la tensin del terminal Vpp de la memoria a + 12.5 v y el terminal Vcc a + 6.25 v, aproximadamente. Para grabar un byte slo habr que generar un pulso negativo en el terminal PGM de la EPROM. Debido a ello necesitamos disear e implementar un mdulo capaz de entregar + 12.5 v a Vpp y + 6.25 v a Vcc cuando activemos una seal de control al comienzo de un ciclo de grabacin de un byte en EPROM, y por otro lado, en condiciones normales (lectura de la memoria), capaz de generar una tensin de + 5 v para Vpp y para Vcc. Este mdulo se alimentar con una tensin superior a + 15 v, no sobrepasando + 20 v para no daar los reguladores de tensin. Para construir este mdulo se recomienda utilizar reguladores de tensin (7812, 7805) para generar las tensiones de + 12.5 y de +6.25. Para conseguir esas tensiones basta con colocar en el terminal de masa del regulador (patilla central) diodos que eleven la tensin de referencia + 1.2 v (con 2 diodos en serie entre el terminal de masa y la propia masa del circuito) para conseguir
-4-

+ 6.2 v y + 0.6 v (con un solo diodo) para conseguir + 12.6 v, en los reguladores 7805 y 7812, respectivamente. Los diodos pueden ser del tipo 1N4418. El condensador electroltico puede ser de 100 uF, 25 v, y el de salida del regulador, de 100 nF, 30v, de tntalo.

7812

Vpp

7805

Vcc

El control de la tensin obtenida a la salida del circuito de generacin de tensiones (+ 5 v o + 6.2 v, +5 v o +12.6 v), se puede realizar a travs de un transistor funcionando en corte y saturacin, del tipo BC557B. Para implementar el circuito de control podemos seguir el siguiente diseo:

Va
(+6.2 o +12.6)

Vb
(+5.6)

D1
1N4148

R2 Scontrol
10K

TRT
BC557B

Vo
7407

R1
4K7 si Va = + 6.2 10K si Va = +12.6

+5 si Scontrol = 1 +6.2 o +12.6 si es 0

C1
100pF

R3
10K

-5-

En el circuito anterior, la salida Vo depende del valor de la seal de control Scontrol . Cuando sta ltima vale 1 (+ 5 v) el TRT se encuentra en corte, y la tensin de salida Vo es la tensin Vb, mientras que si la seal de control es 0 (GND), el TRT pasa a un estado de saturacin y la tensin de salida Vo es la tensin Va, La seal de control es generada por algn terminal de un puerto del 68HC11E2. Zcalo de Grabacin de Memorias. Este es un zcalo especial de insercin de memorias que puede encontrarse en comercios del ramo, pero su precio es elevado (unas 5.000 ptas.). Permite la insercin/extraccin de memorias con facilidad, sin perjudicar o daar los terminales de las mismas. Se puede sustituir por un zcalo estndar para circuitos integrados del tamao adecuado, que son siempre de ms bajo coste.

Nota.- Las seales de control necesarias (R/W#, PGM#, Vpp, Vcc, etc.) se obtendrn de terminales de los puertos PORTA y PORTD debidamente configurados. Software del Grabador de Memorias Para implementar toda esta funcionalidad el alumno deber desarrollar las siguientes rutinas: Rutinas de control del puerto serie asncrono RS-232C (driver COM) Rutinas de escritura/lectura de memorias EPROM (driver EPROM) Rutinas de escritura/lectura/borrado de memorias EEPROM (driver EEPROM) Rutina de comprobacin del borrado de la memoria EPROM Rutinas de control y ejecucin de los comandos enviados desde el PC al Grabador de Memorias (configuracin puerto serie, tipo de memoria a grabar, memoria a grabar (27256, 27128, 2764, 28256, 28128, 2864), direccin inicial y final de grabacin, verificacin de borrado de una memoria EPROM, volcado del contenido de cualquier memoria).

Adems, deber disear e implementar el programa principal encargado de llamar adecuadamente a cada de las rutinas antes mencionadas. Tenga en cuenta que todo el programa debe tener un tamao menor de 2 Kb y necesitar una memoria RAM de menos de 256 bytes (la memoria interna) si no quiere conectar una memoria RAM externa. Se valorar todo aquello que sea incorporado por el alumno y que mejore la funcionalidad del grabador (p. ej. indicadores acsticos, I/F de usuario fcil de manejar, verificadores on-line del proceso de grabacin, etc.). Adems, se valorar la reduccin del hardware necesario (menor coste), la posibilidad de grabar ms tipos de memoria (p. ej. flash EPROM), etc.

-6-

Informacin Complementaria
A continuacin se incluye informacin interesante para el desarrollo de la prctica. Esta informacin deber complementarse con las datos tcnicos de los fabricantes de los distintos componentes que se utilicen durante la realizacin de la misma.

Memorias EPROM Las memorias EPROM (erasable and programmable read-only memory or ROM) son memorias regrabables un nmero elevado de veces. Su funcin suele ser almacenar programas y datos que nunca, o con muy escasa frecuencia, necesitan ser alterados. El motivo es que el borrado de dichas memorias no puede realizarse in situ, sin extraer la memoria del sistema del que forma parte, pues necesita de luz UV (ultravioleta) y de un proceso de grabado imposible de realizar, la mayor parte de los casos, sobre el propio sistema del que forman parte (necesitan tensiones especiales por encima de los +5 v. tpicos de la alimentacin de un sistema digital). Borrado de una EPROM El borrado de una memoria EPROM necesita de iluminacin UV. La radiacin alcanza las clulas de la memoria a travs de una ventanilla transparente situada en la parte superior de la misma. Debido a que la radiacin solar e incluso la luz artificial proveniente de tubos fluorescentes borra la memoria lentamente (de una semana a varios meses), es necesario tapar dicha ventanilla con una etiqueta opaca que lo evite, una vez que hayan sido grabadas. El proceso de borrado necesita de una lmpara de luz UV que emita radiacin en torno a los 2537 a una distancia de unos 2,5 cm de la memoria. Para borrarla se necesita que la cantidad de radiacin recibida por la misma se encuentre en torno a los 15 W/cm2 durante un segundo. El tiempo de borrado real suele ser de unos 20 minutos debido a que las lmparas utilizadas suelen tener potencias en torno a los 12 mW/cm2 (12 mW x 20 x 60 seg. = 14.4 W de potencia suministrada). Es importante recordar que no es aconsejable la sobreexposicin, es decir, sobrepasar el tiempo de radiacin o lo que es lo mismo, la potencia luminosa suministrada a la memoria. Conviene que exista algn procedimiento para comprobar el estado de una EPROM despus del proceso de borrado. Si est bien borrada todos los bytes que se lean deben contener el valor $FF (todos a 1). En el laboratorio de SEDG existe un borrador de EPROMs a disposicin del alumno, para que pueda utilizarlo durante el desarrollo de la prctica. Para su uso deber hablar con algn profesor de la asignatura con el fin de regular lo mejor posible el empleo del nico borrador disponible por todos los alumnos que decidan hacer esta prctica.
-7-

Grabado de una EPROM Las memorias EPROM que se grabarn son de la serie 27xxx, en su versin moderna, con una tensin de grabacin de 12.5 v (en el encapsulado de la memoria suele existir informacin de la tensin de grabacin como PGM 12.5). Es importante que el alumno se asegure que las memorias que adquiera tengan esa tensin y no otra. Su precio oscila en torno a las 300 ptas. De la serie 27xxx slo se grabarn las memorias siguientes: 27256 (32 Kb), 27128 (16 Kb), 2764 (8 Kb), por considerar que esos tamaos son suficientes para almacenar los programas y los datos de pequeas aplicaciones. Adems, los terminales de las 3 memorias tienen funciones muy parecidas, lo que simplifica mucho el hardware a disear. Para grabar una memoria EPROM es necesario utilizar un algoritmo recomendado por los fabricantes de memorias con el fin de acelerar el proceso de grabacin de un byte y es el siguiente: 1. Establecer la direccin a grabar en el bus de direcciones de la EPROM 2. Establecer el dato (byte) a grabar en el bus de datos de la EPROM 3. Cambiar las tensiones (Vcc de +5 v a + 6.2 v, y Vpp de +5 v a 12.6 v), y poner OE# a 1. 4. Inicializar a 0 un contador de pulsos de grabacin aplicados 5. Generar un pulso de grabacin (PGM#) negativo de al menos 1 ms 6. Incrementar en 1 el nmero de pulsos aplicados 7. Si se han aplicado ya 25 pulsos, activar un flag de fin de pulsos aplicados 8. Leer el byte que se acaba de grabar. Para leer el byte basta con poner la seal OE# a 0 despus de desactivar el pulso negativo en PGM#. 9. Compararlo con el byte original 10. Si son distintos: Si no se han aplicado 25 pulsos, ir a 5; Si se han aplicado los 25 pulsos, dar un mensaje de fallo de la memoria, poner Vcc a +5 v y Vpp a +5 v, y salir. 11. Si son iguales, poner Vcc a +5 v y Vpp a +5 v, y salir. Para poder realizar el proceso de grabacin del algoritmo es necesario disponer del circuito electrnico capaz de generar las tensiones necesarias: + 6.25 v para Vcc y + 12.5 v para Vpp, que ya hemos estudiado. Es conveniente obtener la informacin tcnica que facilita el fabricante para cada una de las memorias que vamos a grabar. Observaremos que no existe compatibilidad total entre ellas, por lo que se recomienda utilizar jumpers o microswitchs para la configuracin hardware adecuada en funcin de la memoria a grabar.

-8-

Memorias EEPROM

Las memorias EEPROM (electrically erasable and reprogrammable ROM) o E2PROMs como son llamadas habitualmente, son memorias ms caras y ms rpidas que las EPROM (pueden tener tiempos de acceso alrededor de 35 ns) y una vida media en torno a los 10.000 ciclos de borrado/escritura. Se caracterizan por usar una nica tensin para su lectura y su escritura, coincidiendo con la tensin de + 5 v. de alimentacin de un sistema digital. Este hecho las hace muy atractivas en muchas aplicaciones, pues permite alterar su contenido sin necesidad de extraer la memoria del sistema digital del que forma parte.

Borrado de una EEPROM El proceso de borrado de una EEPROM es muy sencillo. En realidad las memorias actuales incorporan en su interior los recursos necesarios para borrar la propia memoria elctricamente. Durante el proceso de grabado, la propia memoria realiza el borrado previo del byte que va a grabar de forma automtica. No es necesaria ninguna tensin especial de borrado ni ningn procedimiento.

Grabado de una EEPROM La grabacin de una memoria EEPROM no requiere ninguna tensin especial (basta con los + 5 v de la alimentacin general del sistema y de la propia memoria, su Vcc), ni dispone de terminales especiales de grabado como en el caso de la EPROM. Su aspecto, desde el punto de vista de terminales y de funcionalidad es similar al de una memoria SRAM (esttica) equivalente. Es el propio terminal de lectura/escritura el que hace las funciones de terminal de grabacin. Lo nico que vara con respecto a una memoria RAM es el tiempo necesario para grabar la memoria (en torno a los 10 ms/byte). El hecho de necesitar slo una tensin de alimentacin/grabacin de + 5 v es debido al hecho de que las EEPROMs actuales incorporan las bombas de carga necesarias durante el proceso de grabacin y funcionan con esta tensin. De la serie 28xxx de EEPROMs slo vamos a grabar la 28256, 28128, 2864, por las mismas razones que vimos en el caso de las memorias EPROM. Adems, esta serie 28xxx y la 27xxx de las EPROM son bastante parecidas en terminales, por lo que el hardware adicional se simplifica. Los fabricantes recomiendan (algoritmo) para grabar sus memorias: seguir el siguiente procedimiento

-9-

1.Establecer la direccin a grabar en el bus de direcciones de la EEPROM 2.Establecer el dato (byte) a grabar en el bus de datos de la EEPROM 3.Activar la seal R/W# a 0 (escritura) 4.Leer el byte que se acaba de grabar. Para leer el byte basta con poner la seal R/W# a 1. Leer el bit MS del byte grabado. 5.Compararlo con el bit MS del byte original 6.Si son distintos, volver a 4. Si son iguales, salir.

Durante el proceso de grabacin de un byte, mientras se est grabando el dato, el bit de mayor peso (MS) tiene el valor complementado del valor real del mismo, es decir, si realmente es un 1 en el byte que se est grabando, mientras se realiza el proceso, valdr 0. Este mecanismo incorporado en la memoria permite simplificar el proceso de grabacin de la misma pues slo habr que esperar a que este bit MS deje de estar complementado (tiempo de grabacin de la memoria) para continuar grabando otro dato. Igual que en el caso de las EPROM, se recomienda obtener las hojas tcnicas del fabricante de cada una de las memorias de la serie 28xxx que vamos a grabar. Como observar, no existe compatibilidad total entre ellas, y se recomienda utilizar jumpers o microswitchs para la configuracin hardware adecuada en funcin de la memoria a grabar.

Bibliografa
Hojas de caractersticas de las memorias 2764, 27128, 27256, 2864, 28128, 28256 de cualquiera de sus fabricantes (INTEL, ST THOMSON, etc.). Esta informacin se podr conseguir en la ventanilla del laboratorio. Microprocessor Systems Design, 68000 Hardware, Software and Interfacing, Alan Clements, Third Edition, PWS Publishing Company, Boston

-10-

You might also like