Witam Jak wiadomo mikrokontrolery avr posiadaja ograniczona ilosc cyklii zapisu/kasowania wew. pamieci eeprom. Czy odczyt z tej pamieci mo¿e byæ dokonywany bez ogramiczeñ czy mo¿e rownie¿ skraca on ¿ywotno¶ eeprom'a. Chce umiesic kilka zmiennych ktore bed± odczytywane z pamieci co sekunde i zapisywane do niej kilkanasie razy w roku. Czy w obecnej serii uC ATMega istnieje blad wystepujacy w serii AT90 zwiazany z mozliwoscia przypadkowej zmiany zawartosci komorki pamieci eeprom o adresie 0? Czy w dalszym ci±gu nie zapisujecie pod ten adres danych? Ja po prostu inicjowalem zmienna typu char ktora kompilator/linker umieszczal pod adresem 0 i nigdy jej nie uzywalem w programie. Jak szanowni czytelnicy rozwiazuj± ten problem w uC ATMega?
[AVR] eeprom
Jan 24, 2009
4 Replies
roxy pisze:
Ładuj z eepromu przy starcie. Cociaż nie słyszałem żeby była ograniczona ilość odczytu.
Raczej nie ma ograniczonej liczby zapisów. Pamięć EEPROM nie musi być zapisywana po odczycie, więc odczyt jej nie szkodzi :). Na pewno skopiowanie całej zawartości do RAMu byłoby wskazane, spowodowałoby szybszą pracę itp. ale trzeba pamiętać, że niektóre AVRy mają tyle EEPROMa co RAMu, albo niewiele mniej. Więc wówczas nie możemy wykorzystać całego EEPROMa, bo zabrakłoby nam RAMu ;).. kwestia tego co jest priorytetem. Jak szybkość, to faktycznie lepiej trzymać w RAMie, a jak potrzebujemy dużo EEPROMa, to nie ma sensu zapychać sobie RAMu :). Co do błędu adresu 0 - raczej pisali o tym w notach katalogowych, więc jak nie jest napisane, to raczej błędu nie ma :)...
Pozdrawiam Konop
Konop pisze:
MAsz rację. roxy napisał, że ma kilka zmiennych w eepromie, stąd moja rada.
roxy pisze:
Ilosc odczytow jest dowolna, chociaz w ATMega upierdliwa. Lepiej to rozwiazano w XMega gdzie EEPROM jest zmapowany w przestrzen adresowa procesora. Co do mozliwosci skasowania komorki o adresie 0 to w ATMega8 zaobserwowalem ten problem. Byc moze, tu moje spekulacje, chodzi generalnie o komorke pamieci na ktora wskazuje aktualnie rejestr adresowy EEPROM. Dlatego lepiej po procedurze zapisu ustawic go na jakis nieuzywany adres EEPROM, co zreszta gdzies tam bylo opisywane.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required