Vous êtes sur la page 1sur 10

3.

0 EEPROM DE DATOS Y MEMORIA DE PROGRAMA FLASH


En la memoria EEPROM y memoria Flash de programa se puede leer y escribir datos durante el funcionamiento normal. Estas memorias no estn mapeadas en el de espacio de registros. Pero, indirectamente a travs de los Registros de Funciones Especiales se puede realizar estas funciones. Hay seis registros de propsitos especficos (SFRs) que se utilizan para leer y escribir la memoria EEPROM: EECON1 (18Ch) EEADR (10Dh) EECON2 (18Dh) EEADRH (10Fh) EEDATA (10Ch) EEDATH (10Eh) Cuando se interfaz con el bloque de memoria de datos (EEPROM), EEDATA contiene los datos de 8-bits para lectura / escritura y EEADR mantiene la direccin del lugar EEPROM que se accede. Estos dispositivos (PIC16F873) tienen 128 registros (00h a 7Fh). de 8 bits. Cuando el se realiza una interfaz con la memoria de programa (FLASH), los registros EEDATA y EEDATH forman una palabra de dos bytes que contiene los datos de 14-bit de lectura / escritura y el EEADR y los registros EEADRH forman una palabra de dos bytes que contiene la direccin de 13-bits de ubicacin de la memoria del programa que se accede.

Estos dispositivos tienen 4K palabras de Flash de programa, con un rango de direcciones de 0000h a 0FFFh para la PIC16F873A/874A . La memoria EEPROM permite leer y escribir un solo byte. La memoria de programa Flash permite leer una sola palabra (14y escribir un bloque de cuatro palabras. Las operaciones de escritura automtica en la memoria de programa realizan un borrado-antes de escribir el bloques de cuatro palabras. En la escritura de un byte de datos en la memoria EEPROM, el dispositivo borra automticamente la ubicacin y escribe el dato nuevo (borrar-antes-escritura). El tiempo de escritura es controlada automticamente por un temporizador en el chip. El voltajes de escritura / borrado son generados por una bomba de carga, apto para funcionar en el rango de tensin del dispositivo para las operaciones de un byte o palabra. EEADR y EEADRH: El par de registro EEADRH:EEADR pueden direccionar hasta un mximo de 128 bytes de datos de EEPROM, o hasta un mximo de 8K palabras de FLASH de programa. Cundo se ha seleccionando una direccin de EEPROM de datos, slo se escribe el LSB de la direccin en el registro EEADR. Cuando se selecciona la memoria FLASH, La direccin del programa, el MSByte de la direccin se escribe en el registro EEADRH y el LSByte se escribe en el registro EEADR.

Registro EECON1

BIT 7 - EEPGD: Bit de seleccin de memoria de FLASH de Programa / EEPROM de datos 1 = Acceso a la memoria de programa (FLASH) 0 = Accesos a la memoria de datos (EEPROM). Lee "0" despus de un POR; este bit no se puede cambiar mientras est en curso una operacin de escritura.
BIT 6-4: No implementados, se leen como "0 BIT 3 - WRERR: Bit de bandera de Error EEPROM 1 = Una operacin de escritura se termin prematuramente (cualquier MCLR o cualquier WDT Reset durante el normal funcionamiento) 0 = La operacin de escritura se complet.

BIT 2 - WREN: Permitir la Operacin de Escritura en la EEPROM o FLASH. 1 = Permite ciclos de escritura en la EEPROM o FLASH. 0 = Inhibe escribir en las memorias. BIT 1 - WR: Bit de control de escritura 1 = Inicia un ciclo de escritura. El bit se borra por hardware una vez que la escritura esta realizada. El bit WR Slo se puede establecer a 1 (no puede ser limpiado) por software. 0 = ciclo de escritura a la EEPROM se ha completado. BIT 0 - RD: Bit de control de lectura. 1 = Inicia una lectura de EEPROM, RD se borra por hardware. El bit RD slo se puede establecer a 1 (no puede limpiarse) por software. 0 = No inicia una lectura de EEPROM (o termino la operacin de lectura).

Lectura de la Memoria de Datos EEPROM


Para leer una posicin de memoria de datos, el usuario debe escribir la direccin en el registro EEADR, limpiar el bit de control de EEPGD a 0 (EECON1 <7>) y despus colocar el bit de control de lectura RD a 1 (EECON1 <0>). El dato de 8 bits estar disponible en la siguiente ciclo en el registro EEDATA, por lo que se puede leer en la siguiente instruccin (vase el ejemplo 3-1). El registro EEDATA mantendr este valor hasta que otro sea ledo o hasta que otro sea escrito por el usuario (durante una operacin de escritura).

Los pasos para la lectura de la memoria EEPROM de datos son: 1. Se escribe la direccin en la EEADR. Asegrese de que la direccin no es mayor que el tamao de la memoria de el dispositivo. 2. Borrar el bit EEPGD para apuntar a los datos de la memoria EEPROM. 3. Establezca a 1 el bit RD para iniciar la operacin de lectura. 4. Leer los datos del registro EEDATA.

Ejemplo de Lectura en EEPROM de datos


BANKSEL EEADR ; selecciona Banco 2 MOVF REGDIR,W ; Carga direccin del registro EEPROM en (w) MOWF EEADR ; Escribe direccin EEPROM en EEADR BANKSEL EECON1 ; selecciona Banco 3 BCF EECON1, EEPGD; Selecciona escritura en EEPROM de datos BSF EECON1, RD ; Selecciona lectura de datos de EEPROM BANKSEL EEDATA ; selecciona Banco 2 MOVF EEDATA,W ; Lee dato en (W)

Escritura de datos de la memoria EEPROM de datos


Para escribir un registro en la EEPROM de datos, el usuario debe primero escribir la direccin en el registro EEADR y los datos del registro EEDATA. Luego el usuario debe seguir una secuencia especfica para iniciar la escritura de cada byte.

La escritura no se iniciar si la secuencia no es exactamente la correcta (escribir seguido 55h en EECON2, escribir luego AAh en EECON2, a continuacin, establezca a 1 el bit WR) para cada byte. Se recomienda que las interrupciones sean deshabilitadas durante este procedimiento. Adems, el bit WREN en EECON1 se debe establecer a 1 para permitir la escritura. Este mecanismo evita que accidentalmente se escriba en la memoria EEPROM de datos debido a inesperadas ejecuciones de cdigo (es decir, por perdidas de programas). El usuario debe mantener el WREN a cero (0) en todo momento, excepto cuando requiere la actualizacin de EEPROM. El bit WREN no se borrar por el hardware. En la realizacin del ciclo de escritura, el bit WR es limpiado por hardware cuando se completa la escritura, y el bit de Bandera de interrupcin (EEIF) sera colocado a 1. El usuario puede habilitar la interrupcion o bien realizar una encuesta de este bit. El bit bandera EEIF debe ser realizada por software.

Los pasos para escribir en la memoria EEPROM de datos son:


1. Compruebe el bit WR para ver si una escritura est en curso.
2. Escriba la direccin a la EEADR. Asegrese de que la direccin no es mayor que el tamao de la memoria del dispositivo (128 registros 00h a 7Fh). 3. Escribir el valor del dato de 8-bit que se programar en el registro EEDATA. 4. Borrar el bit EEPGD para apuntar a la memoria EEPROM de datos. 5. Establecer a uno el bit WREN para permitir las operaciones de escritura. 6. Deshabilitar las interrupciones para evitar interrumpir la siguiente secuencia. 7. Ejecutar la secuencia de instruccin especial de cinco: Escriba 55h EECON2 en dos etapas (primero a W, y luego a EECON2) Escriba AAh EECON2 en dos etapas (primero a W, y luego a EECON2) Coloque a 1 el bit WR, este bit inicia la operacin de escritura. 8. Habilitar nuevamente las interrupciones (en caso de que este usando interrupciones). 9. Borrar el bit WREN para desactivar la operacin de escritura.

10. En la realizacin del ciclo de escritura, el bit WR se borra y el bit EEIF de


interrupcin se establece a 1.(EEIF deben ser borrado por el firmware.)

Ejemplo de Escritura en la EEPROM de datos


ATRS

BANKSEL EECON1 ; selecciona Banco 3 BTFSC EECON1, WR ; Espera que la escritura este completa GOTO ATRAS BCF STATUS, RP0 ; Selecciona Banco 2 MOVF REGDIR,W ; Carga direccin registro EEPROM en (w) MOWF EEADR ; Escribe direccin EEPROM en EEADR MOVF REGDATA,W ; Carga dato en (W) MOVWF EEDATA ; Escribe dato (W) en EEDATA BANKSEL EECON1 ; Selecciona banco 3 BCF EECON1, EEPGD ; Selecciona la memoria EEPROM BSF EECON1, WREN ; Habilita escritura BCF INTCON, GIE ; Deshabilita interrupciones globales MOVLW 0X55 ; carga clave parte baja en (W) MOVWF EECON2 ; Carga (W) en EECON2 MOVLW 0XAA ; Carga clave parte alta en (W) MOVWF EECON2 ; Guarda (W) en EECON2 BSF EECON1,WR ; Habilita escritura en EEPROM BCF EECON1, WREN ; Deshabilita escritura BCF INTCON, GIE ; Habilita interrupciones

Lectura de la Memoria de Programa Flash


Para leer una posicin de memoria del programa, el usuario debe escribir dos bytes de la direccin a los registros EEADR y EEADRH, establezca a 1 el bit de control EEPGD (EECON1 <7>) y a continuacin, colocar a uno (1) el control de bit RD (EECON1 <0>). Una vez que el bit de lectura de control est establecido, el controlador de memoria de programa Flash utilizar los prximos dos ciclos de instruccin para leer los datos. Esto hace que estas dos instrucciones siguientes a "BSF EECON1, RD" instruccin para sean ignorado.

Ejemplo de Lectura de datos en Memoria FLASH


BANKSEL EEADR ; selecciona Banco 2 MOVF REGDIRL,W ; Carga direccin baja del registro FLASH en (W) MOWF EEADR ; Escribe direccin EEPROM en EEADR MOVF REGDIRH,W ; Carga direccin alta del registro Flash en (W) MOWF EEADRH ; Escribe direccin alta FLASH en EEADRH BANKSEL EECON1 ; selecciona Banco 3 BSF EECON1, EEPGD; Selecciona memoria FLASH BSF EECON1, RD ; Selecciona lectura de datos en FLASH NOP NOP BANKSEL EEDATA ; selecciona Banco 2 MOVF EEDATA,W ; Lee dato bajo en (W) MOVWF REGDATA_L ; Escribe dato en registro de usuario MOVF EEDATAH,W ; Lee dato alto en (W) MOVWF REGDATAH ; Escribe dato en registro de usuario

Los datos estn disponibles en el ciclo siguiente, en el EEDATA y registros EEDATH.


Proteccin contra escrituras expureas Hay condiciones en al cual el dispositivo no debe escribir en la memoria de datos EEPROM o en la memoria de programa FLASH.

Para proteger de escritura espurias, varios mecanismos son provistos en el dispositivo. En un Power Up, el WREN es limpiado. Tambin el PWT (Power Up Timer, 72 mseg de duracin) previene una escritura en la EEPROM.
El bit WREN previene de una escritura accidental durante un Brown Out producido por un parpadeo de energa o de una mal funcin del software. Operacin con Proteccin de Cdigo Cuando la EEPROM de datos esta protegido por cdigo, el microcontrolador internamente puede leer y escribir la memoria de programa y leer y escribir la EEPROM normalmente.

Sin embargo todos los accesos externos a la EEPROM son deshabilitada. Las escrituras externas a la memoria de programa tambin son deshabilitada.
Cuando la memoria de programa esta protegida por cdigo, el microcontrolador internamente puede leer y escribir la memoria de programa normalmente.

Vous aimerez peut-être aussi