roxy
Guest
Sat Jan 24, 2009 2:50 pm
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?
Mario
Guest
Sat Jan 24, 2009 3:00 pm
roxy pisze:
Quote:
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.
Ładuj z eepromu przy starcie. Cociaż nie słyszałem żeby była ograniczona
ilość odczytu.
--
Pozdrawiam
MD
Konop
Guest
Sat Jan 24, 2009 3:14 pm
Quote:
Ł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
Mario
Guest
Sat Jan 24, 2009 3:57 pm
Konop pisze:
Quote:
Ł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
MAsz rację. roxy napisał, że ma kilka zmiennych w eepromie, stąd moja rada.
--
Pozdrawiam
MD
T.M.F.
Guest
Sat Jan 24, 2009 4:26 pm
roxy pisze:
Quote:
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?
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.