Lecții Avr 15

Cred că nu toate, dar foarte puțini oameni știu că, în plus față de principalele controlerele AVR, memorie și memorie pentru stocarea firmware-ului, există, de asemenea, un non-volatilă de memorie de tip EEPROM. Această memorie se face prin ștergerea electrică a tehnologiei informației, spre deosebire de EPROM precursorul său în care neclaritate a fost realizată doar cu ajutorul razelor ultraviolete, este posibil de a utiliza tipul de memorie activă, practic, peste tot. După cum știm, există mai multă memorie nevolatilă, cum ar fi carne, care este mult mai ieftin, dar care are, de asemenea, un dezavantaj semnificativ. Nu este posibil să se șterge un singur octet de ștergere numai blocuri care nu este foarte convenabil, în unele cazuri, mai ales atunci când se solicită informații pentru a stoca un pic, iar această informație este un pic parametri de reglare. Prin urmare, ar trebui să ne concentrăm, de asemenea, pe acest tip de memorie. Și nu doar din cauza faptului că acesta este prezent în controler, și datorită faptului că este foarte convenabil pentru a stoca unele valori pe care trebuie să fie, chiar și după ce puterea controler este pierdut.

Din moment ce sunt de lucru cu controlerul Atmega8A, documentația tehnică a MC, iar noi vom deschide și să vedem ce toate acestea memorie avem 512 bytes. Nu este totuși atât de puțini. Dacă noi, de exemplu, va orice program de service pentru a instala datele nu este pierdut atunci când alimentarea este oprită, am putea vă referiți la această memorie. De asemenea, documentația spune că această memorie este garantat pentru a supraviețui 100.000 de cicluri de scriere / citire.

Acum, se pune întrebarea. Deoarece procesul este organizat cu această memorie în AVR microcontroler. Ca întotdeauna, compania Atmel a avut grijă de ea și a organizat procesul la nivel de hardware, ceea ce este foarte plăcut pentru că avem în mod constant pentru a proteja resursele controlerului. Există anumite registre pentru a controla acest nivel de hardware.

registru de date EADR - Următoarea

Ei bine, ca de obicei, aproape nici periferice și tehnologii, organizate la nivel de hardware, nu fără registrul de control. Noi de control registru este registru EECR

Să ne uităm la un pic de acest registru.

Bit EERE - biți, cauzând procesul de a începe citirea din memoria EEPROM. Și, odată ce datele sunt citite și scrise în registrul de date, acest bit este resetat. Prin urmare, putem presupune biți danny nu este doar managerul, ci, de asemenea, un statut sau un pic de stare.

Bit EEMWE - biți, permițând (nu începător) procesul de înregistrare.

bit Straniu - întrerupe biți activat.

Ei bine, acum trecem la proiect. Proiectul a fost creat în modul standard, de obicei și numit Test13. Acesta a fost conectat, de asemenea, fișiere main.h și creează fișiere și eeprom.c eeprom.h.

Aici este codul sursă al fișierelor generate

void EEPROM_write (nesemnate int uiAddress. unsigned char ucData)

în timp ce (EECR (1<

EEDR = ucData; // registru de date Pischem

EECR | = (1<

EECR | = (1<

EEPROM_read unsigned char (unsigned int uiAddress)

<> // așteptați pentru eliberarea capătului de pavilion al ultimei operații de memorie

EECR | = (1<

EEDR reveni; // returneaza rezultatul

Scriem prototipuri funcționale la datele din fișierul eeprom.h

anula EEPROM_write (nesemnate int uiAddress unsigned char ucData.);

unsigned char EEPROM_read (unsigned uiAddress int);

Noi folosim ca experiențele aceeași placă de depanare, nimic de ea, fără a conecta

Lecții Avr 15

Va aduna proiectul și trece la programul de Avrdude firmware-ului.

Am ales în cazul în care fișierul nostru de firmware, apoi încercați să ia în considerare controler, apoi șterge totul pe „delete all“

Lecții Avr 15

Lecții Avr 15

Puteți scrie nici un fel, în cazul în care doar a declarat că a părăsit purtătorul cu o astfel de scrisoare a existat și a fost disponibil pentru înregistrare. De asemenea, este mai bine pentru a crea un dosar în avans, de asemenea.

Acum vom găsi fișierul pe disc și deschideți-l în Notepad

Lecții Avr 15

Închideți fișierul, încercați să lumineze intermitent controler, și apoi citiți din nou memoria EEPROM într-un fișier și deschideți fișierul

Vedem că înregistrează numărul „78“ în fișierul, ceea ce înseamnă 120 în format zecimal.

Acum, încercați să apăsați „Erase All“, în acest caz, stetesya de memorie EEPROM nu ar trebui.

EEPROM citit din nou într-un fișier, deschideți fișierul și a vedea că memoria a fost ștearsă, ne din nou toți „FF“.

De ce s-a întâmplat? Deoarece este necesar să se stabilească Fyuz. citește Fyuz

Lecții Avr 15

Fiți atenți la EESAVE biți. Atunci când acest bit una (așa cum avem, și acolo, biți ca inversiune), atunci forța atunci când puterea este oprit, iar când ștergerea șterge EEPROM. Și că ei nu au, bitul pe care doriți să resetați, care este, de a pune-l DAW si flash Fyuz.

SEWS Fyuz, șterge controler controler sews, șterge din nou, citiți memoria EEPROM într-un fișier și deschideți-l. Acum vedem că nu este nimic nu ne-am șters

Acum vom încerca să deconectați comanda de la sursa de alimentare și se aplică după o anumită perioadă de timp puterea din nou. Din nou, citiți fișierul EEPROM, avem totul intact. Excelent!

În următoarea parte a lecției vom încerca să citească datele din programatic memoria EEPROM.

Cumpara programator aici (vanzator de încredere) USBASP USBISP 2.0

Lecții Avr 15

articole similare