http://micropic.free.fr
La gestion de la mémoire EEPROM
Interressons nous maintenant à la lecture et à l'écriture dans la mémoire EEPROM des Pics en version Flash.

La taille de cette mémoire est variable suivant le type de Pic utilisé.
Elle est par exemple de 64 octets sur les Pics 16F84.

Voir en
page 9 pour connaitre les caracteristiques de cette mémoire suivant le type de Pic.


La lecture de la mémoire EEPROM

La lecture d'une adresse mémoire EEPROM se fait de manière trés simple : il suffit d'entrer dans le registre EEADR l'adresse mémoire à lire , puis de valider le bit RD de EECON1.
L'octet ainsi lu se trouvera dans le registre EEDATA.

exemple :
MOVLW 0
MOVWF EEADR
BSF STATUS,RP0 ; Bank 1
BSF EECON1,RD ; EE Read
BCF STATUS,RP0
MOVF EEDATA,W

A la fin de cette routine , l'octet lu se trouve dans le registre W.



L'écriture dans la mémoire EEPROM

La routine d'écriture est un peu différente.
En effet , elle requier une séquence spécifique avant l'écriture dans la mémoire , ceci afin d'éviter toute écriture inattendue ( par exemple un programme qui se plante ).
Cette séquence est décrite dans la note d'application de microchip et est la suivante :
- Ecrire l'adresse dans EEADR
- Ecrire la valeur de l'octet dans EEDATA
- Interdire les interruptions
- Autoriser l'écriture dans la mémoire en activant le bit WREN de EECON1
- Ecrire H55 dans EECON2
- Ecrire HAA dans EECON2
- Enfin lancer l'écriture en mettant à 1 le bit WR de EECON1

exemple :
MOVLW 0
MOVWF EEADR
MOVLW D'15'
MOVWF EEDATA
BSF STATUS,RP0 ; Bank 1
BCF INTCON,GIE ; Interdire les interruptions
BSF EECON1,WREN
MOVLW H'55'
MOVWF EECON2
MOVLW H'AA'
MOVWF EECON2
BSF EECON1,WR ; Lancer l'écriture
BSF INTCON,GIE ; Autoriser les interruptions

L'exemple précédent écrit la valeur décimale 15 à l'adresse mémoire EEPROM 0 ( adresse qui varie de 0 à 64 sur un 16F84 )
© 1999-2004 Philippe Brégea