Memorie serială EEPROM sau Flash?

by donpedro

În multe proiecte este nevoie de o memorie non-volatilă pentru stocarea de date; un monitor cu un bootloader pentru microcontroler sau DSP; sau o memorie ce conţine configuraţii pentru FPGA-uri. În funcţie de proiect, tipul memoriei care se alege poate diferi de la o aplicaţie la alta. Într-o primă fază în dezvoltarea unui proiect putem discuta de două tipuri de interfaţare a memoriilor: serială şi paralelă. În alegerea uneia sau alteia trebuie ţinut cont de specificaţiile şi costurile proiectului. În ambele cazuri se poate opta fie pentru memorie EEPROM, fie pentru una Flash. În cazul aplicaţiilor unde există o constrângere în ce priveşte numărul redus de pini şi dimensiuni fizice reduse, o memorie serială este cea mai bună soluţie. Fiecare memorie aduce păreri pro şi contra în ce priveşte costurile, interfaţa de comunicare utilizată, densitatea memoriei, consumul.

Bootstrap PROM serial
Pentru aplicaţiile care necesită o memorie PROM pentru a stoca un monitor (bootloader), alegerea tipului de interfaţă ţine de microcontrolerul sau DSP-ul utilizat. Dacă interfaţa este serială, memoria ar putea fi EEPROM serial sau Flash serial. Microcontrolerele sau DSP-urile cu cerinţe mari în ce priveşte viteza de transfer a datelor, pot utiliza o memorie de boot serială care conţine un modul software ce va încărca programul de executat într-o memorie volatilă de viteză mare de tip SRAM sau DRAM. Folosirea aceastei metode nu implică restricţii şi limitări asupra vitezei/cantităţii de date transferată pe bus (folosirea memoriei non-volatile reduce viteza de transfer pe bus).
Densitatea memoriei şi costul pot fi factori decisivi în utilizarea unei memorii EEPROM serial sau Flash serial. Dacă capacitatea memoriei necesară este mai mică de 512Mbits, se alege o memorie serială EEPROM deoarece nu există memorii Flash seriale la o densitate aşa de mică. Pentru capacităţi ale memoriei peste 1Mbit, oricare dintre tipurile de memorie pot fi utilizate, restricţia finală fiind costul.
În proiecte ce utilizează FPGA, interfaţarea serială este utilizată pentru configurare la power-up, deoarece pot fi utilizate memorii de orice capacitate.

Memorie de Date serială sau paralelă
Pentru alegerea tipului de memorie non-volatilă într-o aplicaţie trebuie luată în considerare posibilitatea microcontrolerului de a stoca în memoria internă a programului. Dacă programul poate fi stocat în memoria flash internă atunci, pentru stocarea datelor este suficientă o memorie serială. În caz contrar o memorie paralelă este necesară.

De asemenea, în alegerea tipului de memorie se pune accent pe profilul de temperatură în care va funcţiona sistemul, deoarece este un factor important în creşterea consumului de energie al sistemului şi a componentelor acestuia (chiar şi la memorii).
Un alt factor important este numărul de ciclii de scriere în memorie garantaţi pentru fiecare tip de memorie în parte. O memorie Flash paralelă poate atinge o anduranţă de 10,000 ciclii, o memorie Flash serială între 10,000 şi 100,000 ciclii, iar una EEPROM serială de peste 1 milion de ciclii. Aceste nivele de anduranţă garantate pot varia însă pe măsură ce temperatura creşte.
Dacă durata de viaţă a bateriei este un element critic în proiect, în alegerea memoriei trebuie ţinut cont de acest lucru. În cazul unei memorii paralele Flash pentru acces şi update a datelor consumul de energie este mai ridicat. În cazul în care nu sunt mari numărul de ciclii de accesare/salvare a datelor în memorie, consumul de energie nu este foarte ridicat, dar totuşi poate fi un factor important la nivelul întregului proiect. Motivul pentru care memoriile flash au un consum mai mare de energie se datorează faptului că modificarea informaţiilor în memorie se face la nivel de sector. Într-o memorie EEPROM, modificarea datelor se poate face la nivel de byte (octet), aşadar consumul de energie este mic.

EEPROM serial sau Flash serial
În ceea ce priveşte capacitatea, memoriile Flash seriale au capacităţi de stocare mai mari decât cele EEPROM.
În ce priveşte interfaţarea memoriilor la un microcontroler sau DSP, memoriile Flash sunt disponibile doar pe interfaţa SPI. În cazul în care microcontrolerul nu dispune de o interfaţă SPI, una software trebuie emulată pe 5 pini I/O, ceea ce implică o creştere a memoriei program necesare pentru microcontroler. Memoriile EEPROM sunt disponibile atât în interfaţa SPI cât şi în I2CTM.
Dacă plaja de tensiuni pentru funcţionare a memoriilor Flash este 2.7V la 3.6V, pentru memoriile EEPROM avem 1.8V la 5.5V.
Dacă singurul factor important ţine de costul sistemului, atunci este de recomandat o memorie Flash deoarece costurile/bit sunt mai mici decât la EEPROM.

Selectarea uneia sau alteia dintre memorii poate fi o decizie simplă dacă sunt urmărite clar specificaţiile impuse proiectului. Dacă constrângerile sunt de ordin financiar de cele mai multe ori specificaţiile nu pot fi acoperite în totalitate şi produsul final nu va funcţiona la performanţele impuse în faza de proiect. Cum tendinţa la ora actuală este spre sisteme şi dispozitive portabile, pentru a obţine un produs final folositor şi atractiv este impetuos necesară o analiză clară a direcţiei de urmat în stabilirea constrângerilor proiectului.

Distribuitor în România al produselor:
Str. Bună Ziua FN, 400495 Cluj-Napoca
Tel: 0264-503540, 0264-503541, 0264-503542, 0264-503543, 0264-503544 Fax: 0264596862; 0264438403
microchip@vitacom.ro;
industrie@vitacom.ro;
www.vitacom.ro