Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice



Acasa » referate » informatica
Memoria de date de tip EEPROM

Memoria de date de tip EEPROM





Memoria de date de tip EEPROM

            Memoria de date de tip EEPROM poate fi atit inscrisa cit si citita pe tot parcursul unei functionari normale, pentru tot domeniul admisibil al tensiunii VDD.

            Acest tip de memorie nu este mapat nici in spatiun memoriei program nici in spatiul memoriei de date de tip SRAM.

            Toti membrii familiei PIC16F8x au cu cite 64 de octeti de memorie de date de tip EEPROM.

            Adresarea acestei memorii de tip special se realizeaza:

· in domeniul de adrese de 0x00 – 0x3F;

· se foloseste un mod indirect de adresare;



Gestionarea memoriei de date de tip EEPROM se face cu ajutorul a 4 registri cu functii speciale:

                        · EECON1 = registru de comanda si control;

                        · EECON2 = registru meimplementat fizic, folosit doar pe parcursul secventei de inscriere;

                        · EEDATA = destinat pentru data pe 8 biti care urmeaza sa fie citita sau inscrisa;

                        · EEADR = destinat pentru a pastra adresa locatiei ce se doreste a fi accesata;

Observatie: Memoria de date de tip EEPROM poate fi atit citita cit si inscrisa. In momentul inscrierii unui octet mai intii locatia respectiva este stearsa in mod automat si apoi este inscrisa.

Observatie: Ciclurile stergere / inscriere sunt scurte, durata lor fiind controlata de un timer incorporat. Timpul de inscriere variaza in functie de temperatura, de tensiunea de alimentare si, evident, de la chip la chip.

Observatie: In cazul in care este setata protectia de cod, CPU-ul poate continua sa citeasca sau sa inscrie memoria de date EEPROM. Dispozitivul de programare poate avea acces la aceasta zona de memorie.

1. Registrul de adrese EEADR

            EEADR este un registru pe 8 biti cu ajutorul caruia se pot accesa pina la 256 de octeti. Familia PIC16F8x nu are implementati fizic decit primii 64 de octeti, pentru care sunt necesari pentru adresare doar cei mai putini semnificativi 6 biti ai registrului EEADR. Cei mai semnificativi 2 biti ai registrului EEADR intra si ei la codarea adreselor, ceea ce inseamna ca acestia trebuie sa fie totdeauna “0” pentru a fi siguri ca adresarea se face in spatiul primilor 64 octeti.

2. Registrii EECON1 si EECON2

            EECON1 este un registru de control care are implementati fizic doar cei mai putin semnificativi 5 biti. Restul de 3 biti nu exista si sunt cititi ca “0”.

 


            Bitii RD si WR initializeaza operatii de citire, respectiv de inscriere. Acesti biti nu pot fi stersi ci numai setati prin program. Ei sunt resetati de catre hardware in mod automat la sfirsitul operatiilor de citire, respectiv de inscriere.

Observatie: Incapacitatea bitilor RD si WR de a fi resetati prin soft se traduce ca fiind o masura de protectie impotriva terminarii accidentale sau premature a operatiilor de citire sau de inscriere, in special.

Observatie: Bitul WREN, cind este setat, face posibila efectuarea unei operatii de inscriere. La Power-up

acest bit este resetat tocmai ca o protectie impotriva inscrierilor accidentale.

Observatie: Bitul WREER este setat cind o operatie de scriere este intrerupta datorite unui semnal de reset aplicat pe pinul MCLR sau datorita aparitiei unui reset comandat de WDT care a detectat o situatie de time-out pe parcursul unei functionari normale. In aceste situatii, dupa reset, programatorul trebuie sa verifice starea bitului WREER si daca acesta este setat, se reia ciclul de inscriere in EEPROM, tinind cont ca registrii EEDATA si EEADR ramin neschimbati.

Observatie: Flagul de intrerupere EEIF este setat numai cind ciclul de inscriere curent este terminat. Acest bit poate fi sters numai prin soft.

            Registrul EECON2 nu este un registru implementat fizic. Citirea acestui registru are ca rezultat obtinerea valorii 0x00. Acest registru este folosit exclusiv numai pe parcursul secventelor de inscriere a memoriei de date de tip EEPROM.

3. Citirea din memoria de date de tip EEPROM

            Pentru citirea unui singur octet de date din memoria de date de tip EEPROM, programatorul trebuie sa parcurga urmatorii pasi:

· incarca adresa dorita in registrul EEADR;

· seteaza bitul RD din registrul EECON1 => este initializat procesul de citire a octetului;.



· data este disponibila in registrul EEDATA in ciclul imediat urmator; de unde, pe parcursul

  a inca a unui ciclu, data citita din EEPROM poate fi preluata.

Observatie: Registrul EEDATA isi pastreaza nemodificat continutul pina la urmatoarea secventa de citire sau pina la urmatoarea secventa de inscriere.

Exemplu: Citirea unei date din mem. de date de tip EEPROM:

                        BCF                 STATUS, RP0 ; selectare Bank0

                        MOVLW         Address_                     ; incarca in W adresa locatiei care se doreste a fi citita

                        MOVWF         EEADR                       ; incarca in EEADR adresa dorita

                        BSF                 STATUS, RP0 ; selectare Bank1

                        BSF                 EECON1, RD              ;  RD = “1” => initializ. operatia de citire

                        BCF                 STATUS, RP0 ; selectare Bank0

                        MOVF             EEDATA, W               ; citirea datei din EEADR si incarcarea sa in W

4. Inscrierea in memoria de date de tip EEPROM

            Pentru inscrierea unui singur octet de date in memoria de date de tip EEPROM, programatorul trebuie sa parcurga urmatorii pasi:

· incarca adresa dorita in registrul EEADR;

· incarca data ce se doreste a fi salvata, in registrul EEDATA;

· inactiveaza sistemul de intreruperi prin setarea bitului GIE din registrul INTCON;

· se seteaza bitul WREN din registrul EECON1 pentru validarea inscrierilor;

· secventa de initializare a operatiei de inscriere:

                        · se incarca constanta 0x55 in EECON2;

                        · se incarca constanta 0xAA in EECON2;

                        · se seteaza bitul WR din registrul EECON1

Observatie: Trebuie respectata intocmai secventa specifica de initializare pentru operatiilor de inscriere in mem. de date de tip EEPROM ( se incarca 0x55 in EECON2, se incarca 0xAA in EECON2, se seteaza bitul WR ), altfel nu se realizeaza inscrierea.

Observatie: Este foarte recomandat ca sistemul de intreruperi sa fie inactivat pe parcursul secventei de initializare a unei operatii de inscriere in mem. de date de tip EEPROM.

Observatie: Secventa de initializare a operatiei de inscriere in mem. de date de tip EEPROM se repeta intocmai pentru fiecare octet in parte ce se doreste a fi inscris.

Observatie: Acest mecanism previne inscrierile accidentale in mem. de date de tip EEPROM. Programatorul trebuie sa mentina tot timpul bitul WREN in “0”, in afara cazurilor in care se doreste salvarea in EEPROM.

Observatie: ATENTIE!!! Bitul WREN nu este resetat automat de catre hardwarw. Astfel , sarcina de a fi resetat cade in totalitate in sarcina programatorului.

Observatie: Dupa ce secventa de inscriere a fost initializata, stergerea bitului WREN nu afecteaza cu nimic ciclul de inscriere.

Observatie: Daca bitul WREN nu este setat atunci numai prin setarea bitului WR nu se va initializa nici un ciclu de inscriere.

Observatie: La sfirsitul unui ciclu complet de inscriere, bitul WR este resetat automat de catre hardware iar flagul de intreruperi EEIF este setat automat de catre hardware.

Observatie: Flagul de intrerupere EEIF ( EE Write Complete Interrupt Flag ) poate fi activat pentru a se genera o cerere de intrerupere la sfirsitul fiecarui ciclu complet de inscriere. Acest flag poate fi resetat numai prin program.

Observatie: Programatorul poate sa nu activeze aceasta intrerupere si sa implementeze o bucla de pooling pentru a determina starea flagului EEIF in vederea salvarii in EEPROM a datelor dorite.

Exemplu:

                        BCF                 STATUS, RP0 ; selectare Bank0

                        MOVLW         Address_                     ; incarca in W adresa dorita

                        MOVWF         EEADR                       ; incarca in EEADR adresa dorita

                        MOVLW         Data_                          ; incarca in W data dorita

                        MOVWF         EEDATA                    ; incarca in EEDATA data dorita

                        BSF                 STATUS, RP0 ; selectare Bank1

                        BCF                 INTCON, GIE ; invalidare sistem intreruperi

                        BSF                 EECON1, WREN       ; validare operatiilor de inscriere

                        MOVLW         0x55                            ; incarca in W constanta 0x55

                        MOVWF         EECON2                     ; incarca in EECON2 constanta 0x55

                        MOVLW         0xAA                          ; incarca in W constanta 0xAA

                        MOVWF         EECON2                     ; incarca in EECON2 constanta 0xAA


                        BSF                 EECON1, WR ;  WR = “1” => initializ. operatia de inscriere

                        BSF                 INTCON, GIE ; revalidare sistem intreruperi

 


5. Verificarea datelor inscrise in mem. de date de tip EEPROM

            In functie de aplicatie, de multe ori este necesara verificarea datelor salvate in memoria de date de tip EEPROM.

Exemplu: Verificarea datelor inscrise in mem. de date de tip EEPROM:

            ============================

secventa de inscriere prezentata mai sus

            ============================

; registrul EEDATA inca mai pastreaza valorea ce a fost inscrisa si care trebuie verificata

                        ============================

      ; incarca in W data care tocmai a fost inscrisa

                        BCF                 STATUS, RP0 ; selectare Bank0

                        MOVF             EEDATA, W              

            ============================

; registrul EEADR inca mai pastreaza adresa la care s-a efectuat inscrierea si de unde

      ; trebuie efectuata o citire in vederea verificarii

                        ============================

                              ; efectuarea citirii pentru verificare

                        BSF                 STATUS, RP0 ; selectare Bank1

                        BSF                 EECON1, RD              ;  RD = “1” => init. citirea de verif.

            ; rezultatul citirii de verificare este deja in registrul EEDATA

                        ============================

                        BCF                 STATUS, RP0 ; selectare Bank0

                        SUBWF          EEDATA, W               ; scade continutul lui W din EEDATA si pastreaza

                                                                                    ; rwezultatul in W

                        ============================

                        BTFSS            STATUS, Z                 ; testeaza rezultatul scaderii

; · daca Z = 1, => rezultatul operatiei de scadere este zero, adica valoarea inscrisa este egala cu

; valoarea rezultata din citirea pentru verificare => se sare peste instructiunea GOTO si se

; continua in mod firesc programul

; · daca Z != 0 => rezultatul operatiei de scadere NU este zero, adica valoarea inscrisa

; NU este egala cu valoarea rezultata din citirea pentru verificare => se executa instr. GOTO

                        GOTO `           WRITER_ERROR      ; salt spre rutina de tratare a erorilor de inscriere

                        ============================

                    ; continuarea programului

6. Protectia impotriva inscrierilor accidentale in mem. de date de tip EEPROM

            Exista conditii extreme care ar favoriza inscriei accidentale. Exista conditii in care dispozitivul nu trebuie sa execute inscrieri ( in mem. de date de tip EEPROM ).

Din aceste motive s-au implementat diferite mecanisme interne care au rolul de a impiedica realizarea unor inscriei false. Acestea sunt:

                        · la power-up bitul WREN este sters;

                        · Power-Up Timer care asigura o temporizare de 72 ms la punerea sub tensiune;

                        · necesitatea parcurgerii secventei de initializare a unei operatii de inscriere;

            In acest fel se face practic imposibila intrunirea aleatoare a tuturor conditiilor de inscriere, adica aceste mecanisme fac imposibila aparitia unor inscrieri false chiar in conditiile cele mai defavorabile de functionare ( brown-out, power glitch, software malfunction, ….etc. )

 Accesul la mem. de date de tip EEPROM in conditiile setarii protectiei asupra codului

            Chiar daca este setata protectia impotrina citirii din exterior a codului, CPU-ul este capabile in continuare sa citeasca sau sa inscrie date din / in memoria de date de tip EEPROM.

            Pentru variantele de dispozitive prevazute cu ROM exista 2 biti pentru protectia codului.

Unul pentru protectia ROM-ului iar altul pentru protectia EEPROM-ului









Politica de confidentialitate

.com Copyright © 2019 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.


Proiecte

vezi toate proiectele
 PROIECT DE LECTIE Clasa: I Matematica - Adunarea si scaderea numerelor naturale de la 0 la 30, fara trecere peste ordin
 Proiect didactic Grupa: mijlocie - Consolidarea mersului in echilibru pe o linie trasata pe sol (30 cm)
 Redresor electronic automat pentru incarcarea bateriilor auto - proiect atestat
 Proiectarea instalatiilor de alimentare ale motoarelor cu aprindere prin scanteie cu carburator

Lucrari de diploma

vezi toate lucrarile de diploma
 Lucrare de diploma - eritrodermia psoriazica
 ACTIUNEA DIPLOMATICA A ROMANIEI LA CONFERINTA DE PACE DE LA PARIS (1946-1947)
 Proiect diploma Finante Banci - REALIZAREA INSPECTIEI FISCALE LA O SOCIETATE COMERCIALA
 Lucrare de diploma managementul firmei “diagnosticul si evaluarea firmei”

Lucrari licenta

vezi toate lucrarile de licenta
 CONTABILITATEA FINANCIARA TESTE GRILA LICENTA
 LUCRARE DE LICENTA - FACULTATEA DE EDUCATIE FIZICA SI SPORT
 Lucrare de licenta stiintele naturii siecologie - 'surse de poluare a clisurii dunarii”
 LUCRARE DE LICENTA - Gestiunea stocurilor de materii prime si materiale

Lucrari doctorat

vezi toate lucrarile de doctorat
 Doctorat - Modele dinamice de simulare ale accidentelor rutiere produse intre autovehicul si pieton
 Diagnosticul ecografic in unele afectiuni gastroduodenale si hepatobiliare la animalele de companie - TEZA DE DOCTORAT
 LUCRARE DE DOCTORAT ZOOTEHNIE - AMELIORARE - Estimarea valorii economice a caracterelor din obiectivul ameliorarii intr-o linie materna de porcine

Proiecte de atestat

vezi toate proiectele de atestat
 Proiect atestat informatica- Tehnician operator tehnica de calcul - Unitati de Stocare
 LUCRARE DE ATESTAT ELECTRONIST - TEHNICA DE CALCUL - Placa de baza
 ATESTAT PROFESIONAL LA INFORMATICA - programare FoxPro for Windows
 Proiect atestat tehnician in turism - carnaval la venezia

Marketingul traditional– rezultat al practicii de marketing
Evolutia calculatoarelor
Interfata Seriala RS-232
E-mail-ul ca instrument al cercetarii
Informatia ca bun specific in afaceri si-n organizatii publice
INTRODUCERE IN INFORMATICA
Cyber –consumatorul
Cautarea tabelara (Table search)



Termeni si conditii
Contact
Creeaza si tu