-
1. Data: 2009-01-24 13:50:55
Temat: [AVR] eeprom
Od: "roxy" <k...@o...pl>
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?
-
2. Data: 2009-01-24 14:00:36
Temat: Re: [AVR] eeprom
Od: Mario <l...@p...onet.pl>
roxy pisze:
> 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
-
3. Data: 2009-01-24 14:14:30
Temat: Re: [AVR] eeprom
Od: Konop <k...@g...pl>
> Ł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
-
4. Data: 2009-01-24 14:57:49
Temat: Re: [AVR] eeprom
Od: Mario <l...@p...onet.pl>
Konop 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 ;)
MAsz rację. roxy napisał, że ma kilka zmiennych w eepromie, stąd moja rada.
--
Pozdrawiam
MD
-
5. Data: 2009-01-24 15:26:50
Temat: Re: [AVR] eeprom
Od: "T.M.F." <t...@n...mp.pl>
roxy pisze:
> 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.