Vous êtes sur la page 1sur 5

Capitulo 10 EEPROM

10.1 Introducción

Este tipo de memoria de sólo lectura (ROM) que puede ser programada y borrada
eléctricamente; a diferencia de las memorias EPROM que requieren de luz ultravioleta
para ser borradas.

Esta memoria puede ser leída un número ilimitado de veces pero sus ciclos de escritura
son limitadas, regularmente alrededor de 100,000 veces.

Los AVRs Atmega48, 88, y 168 poseen 256, 512, y 512 bytes de EPROM respectivamente.

Al realizar una operación de lectura, el CPU se detiene por 4 ciclos de reloj antes de
ejecutar la siguiente instrucción.

10.1 Memorias EEPROM.

10.1 Características

 El microcontrolador atmega48 posee 256 bytes de memoria EEPROM.


 Tiene un ciclo de al menos 100,000 operaciones de escritura/borrado.

Al realizar una operación de lectura, la CPU se detiene 4 ciclos de reloj antes de ejecutar la
siguiente instrucción. Al realizar una operación de escritura, la CPU se detiene por 2 ciclos de reloj
antes de ejecutar la siguiente instrucción.

10.2 Registros de la EEPROM.

10.2.1 registro de dirección de la EEPROM, EEARH y EEARL.

Este registro especifica la dirección de la EEPROM, especifica la dirección dentro del espacio de
512 bytes y es direccionado en forma lineal entre el valor de 0 a511.

10.2.2 Registro de datos de la EEPROM, EEDR.


Este es el registro de datos de la EEPROM, para operaciones de escritura, este registro contiene el
valor que será escrito en la EEPROM, en la dirección dada por EEAR. Para operaciones de lectura,
este registro contiene los datos leídos de la dirección EEAR.

10.2.3 Registro de control de la EEPROM, EECR.

 EEPM1 y EEPM0: modo de programación de la EEPROM, define que acción de


programación se ejecutara cuando se escriba EEPE, de acuerdo a la siguiente tabla.

EEPM1 EEPM0 Tiempo de programación


0 0 3.4 ms. Borrado y escritura en una operación
0 1 1.8 ms Solo borrado
1 0 1.8 ms Solo escritura
1 1 - Reservado para usos futuros

 EERIE: habilitación de interrupción de eeprom lista, un uno en este bit habilita la


interrupción de eeprom lista, siempre y cuando este activado el bit I del SREG.
 EEMPE: habilitación maestra de escritura la eeprom, el bit EEWE debe ser puesto en uno
dentro de los 4 ciclos de reloj siguientes.
 EEP E: habilitación de escritura en la eeprom.
 EERE: habilitación de lectura de la eeprom.

Una escritura en la memoria EEPROM tarda aproximadamente 8,400 ciclos de reloj.

10.3 Funciones para manejo de la EEPROM en WINAVR.

WINAVR cuenta con funciones para lectura y escritura de la memoria EEPROM, que permiten la
lectura de un byte, una palabra o un bloque de memoria EEPROM, así como la lectura de un byte,
una palabra o un bloque de memoria EEPROM.
10.4 Circuito.

10.5 Código

#include <avr/io.h>

#include <avr/eeprom.h>

EEMEM unsigned char ee_byte=1;

EEMEM unsigned int ee_palabra=2500;

EEMEM char ee_bloque[5]=”hola”;

unsigned char ram_byte;

unsigned int ram_palabra;

char ram_bloque[5];

int main(void) {

UCSRB=_BV(TXEN);

ram_byte = eeprom_read_byte(&ee_byte);
ram_palabra = eeprom_read_word(&ee_palabra);

eeprom_read_block(&ram_bloque, &ee_bloque, 4);

ram_byte++;

ram_palabra = 999;

ram_bloque[0] = ´s´;

eeprom_write_byte(&ee_byte, ram_byte);

eeprom_write_word(&ee_palabra, ram_palabra);

eeprom_write-block(&ram_bloque, &ee_bloque, 4);

while(1);

void usart_txc(char ch) {

loop_until_bit_is_set(UCSRA, UDRE);

UDR=ch;

void usart_txs(char *s) {

while (*s) {

usart_txc(*s++);

Vous aimerez peut-être aussi