La EEPROM o E2PROM es un tipo de memoria ROM que puede ser programada, borrada y reprogramada eléctricamente, a diferencia de la EPROM que requiere rayos ultravioleta. Mantiene la información sin alimentación y se comunica mediante protocolos como I2C, SPI. Tiene baja velocidad pero bajo consumo, y permite el almacenamiento y sobreescritura de datos mediante voltajes de operación.
EEPROM O E2PROM: Características y funciones básicas
1.
2. EEPROM O E2PROM
Son las siglas de Electrically-Erasable Programmable
Read-Only Memory (programable y borrable
eléctricamente). Es un tipo de memoria ROM que
puede ser programado, borrado y reprogramado
eléctricamente, a diferencia de la EPROM que ha de
borrarse mediante un aparato que emite rayos
ultravioletas. Son memorias no volátiles.
3. EEPROM O E2PROM
La principal característica es permitir el
almacenamiento y la sobre-escritura de datos por
medio de los voltajes de operación, además sostienen
la información por muchos años sin fuente de
alimentación.
Estos dispositivos suelen comunicarse mediante
protocolos como I²C, SPI y Microwire. En otras
ocasiones, se integra dentro de chips como micro
controladores y DSPs para lograr una mayor rapidez.
4. EEPROM - 28C64A
Esta memoria tiene una capacidad de 8K X 8 . La información almacenada puede
perdurar aproximadamente 100 años y puede soportar hasta 100.000 ciclos de
grabado y borrado.
5. EEPROM O E2PROM
INTERFAZ SERIAL
( 1 ó 2 pines ), habilitación
( 1 pin ), reloj de sincronismo
( 1 pin ), direccionamiento de dispositivo
( 3 pines) que no existen en la interfaz paralela
( 2 pines )los pines de alimentación del circuito.
Los datos y la dirección de las posiciones de memoria
utilizarán únicamente uno o dos pines, dependiendo de el
tipo de comunicación utilizada ( dos o tres hilos ).
La velocidad de transferencia de datos puede variar desde lo
100 KHz hasta los 600 MHz, dependiendo del tipo de
memoria y del sistema de comunicación utilizados.
6. CARACTERISTICAS
Se pueden conectar fácilmente con microprocesadores o micro
controladores, algunas de estas memorias tienen pines para realizar
esta labor.
Transferencia de datos de manera serial , lo que permite ahorro del
micro para dedicarlo a otras funciones.
El consumo de corriente es mucho menor que en las memorias que
trabajan en paralelo.
Un aspecto que podría significar una limitante para las memorias
seriales es la velocidad de lectura, si se comparan con la EEPROM
paralelas, aunque las velocidades que se logran son aceptables para la
mayorías de las aplicaciones.
Tres hilos maneja datos de 8 a 16 bits, mientras que
Dos hilos maneja 8 bits;
Dos hilos la protección contra escritura es por el hardware,
Tres hilos se protege a través de el software;
la operación de la de tres hilos es de hasta 6 MHz y la de
Dos hilos es de 100 KHz y 400 KHz con opción de 1 MHz;
Tres hilos tiene 4 pines de comunicación,
Dos hilos tiene solamente dos pines.
7. FUNCIONES BASICAS
value = read_eeprom (address): función básica para leer
el valor de la EEPROM interna . Devuelve un valor entero
(int8) de un byte. "address" puede ser un entero de 8 ó 16
bit. Dependiendo del PIC que utilicemos dispondremos de
mas ó menos memoria EEPROM, por ejemplo el PIC
16f84A dispone de 64 bytes y los pic16F87X tienen 256
bytes que se direccionan del 0 a 255.
write_eeprom (address, value): esta función escribe un
dato (entero de 8 bit) en la dirección especificada en
address en la memoria interna del PIC. Al igual que
read_eeprom address puede ser un entero de 8 ó 16 bit
8. EJEMPLO
Dentro de la función de interrupción nos encontramos con tres
sentencias condicionales:
if ((read_eeprom(0)==0x99)||(read_eeprom(0)==0xFF))
{
write_eeprom(0,0);//escribo el valor 0 en la dirección 0 de la
memoria EEPROM
puerto_D=read_eeprom(0);//asigno al puerto D el valor
devuelto por la función de lectura de la EEPROM
}
La primera vez que se ejecute el programa el valor de la EEPROM es
0xFF (viene así de fabrica) por lo que tendremos que sobre escribir su
valor a 0 para iniciar el contaje, después de esto esta condición solo se
cumplirá cuando el contador llegue a 99.
else if ((read_eeprom(0) & 0x0F)<0x09)
{
write_eeprom(0,(read_eeprom(0))+1);
puerto_D=read_eeprom(0);
}