miércoles, 6 de abril de 2016

Arquitectura de memoria EEPROM 28C64

EEPROM o E²PROM son las siglas de Electrically Erasable Programmable Read Only Memory  (ROM programable y borrable eléctricamente). Es un tipo de memoria  que puede ser programada, borrada y reprogramada eléctricamente, a diferencia de la EPROM que ha de borrarse mediante luz ultravioleta. Son memorias no volátiles.


 Aunque una EEPROM puede ser leída un número ilimitado de veces, sólo puede ser borrada y reprogramada miles de veces.
Una memoria EEPROM muy usada es la 28C64. . ATMEL produce la AT28C64( AT quiere decir que ATMEL es el fabricante, 28 identifica el tipo de memoria, en este caso EEPROM; la C significa que la tecnología usada es C-MOS, o sea con base en transistores Mosfet canal P y canal N en modo complementario,  y el 64 es la capacidad: 64 Kilobits, o sea 8192 palabras de 8 bits cada una, lo que es lo mismo que 8 Kbytes)


Otra empresa que produce EEPROM es MICROCHIP, fabricante de la 28C64A, cuya configuración de pines es similar a la de ATMEL. La programación se realiza con el superpro Z, estableciendo las direcciones y los datos en Hexadecimal.



Internamente la memoria dispone de un DECODIFICADOR DE DIRECCIONES.
Para lograr las 8192 palabras se requiere de 13 entradas de dirección ( A0...A12: Addresses Inputs) ( 2 elevado a la 13 es igual a 8192).
El siguiente esquema muestra la arquitectura básica de una ROM con dos entradas de dirección y cuatro salidas, que nos permite comprender lo esencial en la programación:
La capacidad de esta pequeñísima memoria sería de solo 16 bits ( 4 palabras de 4 bits).
Vamos a suponer que en las 4 direcciones  deseamos programar 4 palabras así:
DIRECCION                  DATOS
A1        A0                   00000
 0           0                     1   0   1   0
 0           1                     0   1   0   1
 1           0                     0   1   1   1
 1           1                     1   1   1   1 


Al fijar A1 = 0, A0 = 0, en las salidas de las compuertas AND del decodificador se tiene:"0" = 1,
 "1" = 0,   "2" = 0,   "3" = 0. 
El primer fusible, situado a a la izquierda en cada compuerta OR, se "quema" si el dato a grabar es un CERO, y "no se quema" si el dato a grabar en esa dirección es un UNO.Para nuestro caso se queman los fusibles de las OR correspondientes a las salidas O2 y O0, y no se queman en las OR de las salidas O3 y O1.

Cuando se tiene A1 =0, A0= 1:  "0" = 0, "1" = 1,   "2" = 0,   "3" = 0.  En este caso, los fusibles de O3 y O1 se queman, y los de O2 y O0 no se queman (para que pueda pasar el UNO)

Cuando se tiene A1 =1, A0= 0: "0" = 0, "1" = 0,   "2" = 1,   "3" = 0.  En este caso, solo el  fusible de O3  se quema.

Por último, para A1 =1, A0= 1: "0" = 0, "1" = 0,   "2" = 0,   "3" = 1.  En este caso, ningún fusible se debe quemar.

El programa en hexadecimal que es el exigido por el programador es:

                             Dirección     Dato
                                 0                A
                                 1                5
                                 2                7
                                 3                F  

No hay comentarios:

Publicar un comentario