Zabezpieczenie licznika w eepromie - test.

Pozwolilem sobie zrobic pewien test. Celem bylo sprawdzenie czy latwo uwalic zawartosc licznika trzymanego w eepromie (AT24C02) i zabezpieczonego banalnym algorytmem - namiastka tego o czym ostatnio rozmawialismy. Algorytm pilnujacy licznik wyglada tak: {zapis}

- zapisywana jest zawartosc licznika + jednobajtowe CRC zaraz po nim

- zapisywana jest kopia wczesniejszego wpisu (powinna na osobnej stronie, ale uznalem ze w tym tescie nie ma to znaczenia - teraz zaluje)

{odczyt}

- jesli odczytany pierwszy wpis nie pokrywa sie z CRC, to nastepuje proba odczytania kopi, jesli i ta proba sie nie powiedzie - test jest konczony.

- jesli udalo sie odczytac poprawnie zawartosc licznika, ale byl wykryty blad niezgodnosci crc z licznikiem to wykonywany jest zapis stanu licznika wraz z zapisem bedacym kopia pierwszego zapisu - czyli odbudowywane sa wszystkie zapisy w eepromie.

Licznik jest typu long, a wiec 4 bajty + jeden bajt crc zaraz po bajtach licznika.

Od strony sprzetowej zadbalem o to, aby zasilanie siadalo z czestotliwoscia ~0.3Hz (generator funkcyjny + IRF jako klucz na zasilaniu), program zas stara sie inkrementowac licznik i za kazdym razem zapisywac w eepromie nowa wartosc zgodnie z algorytmem. W praktyce w czasie gdy uklad jest zasilany, licznik zmienia wartosc o kilka jednostek, po czym nastepuje _awaria_ zasilania.

Test trwa juz chyba z 30h, licznik wskazuje >200k, nie bylo zadnego przypadku nieudanego odzyskania wartosci liczika (a wiec test trwa dalej). Szacuje iz _awarii_ bylo juz >30k - niestety nie zrobilem licznika awarii ;-)

Ciekaw jestem kiedy padnie eeprom. Atmel pisze o 1e6... zobaczymy :-)

Ech, nic mi sie nie chce... :-( __ Pzd, Irek.N.

Reply to
Ireneusz Niemczyk
Loading thread data ...

Jak to - przecież się narobiłeś? :-) Ale ja rozumiem - wiosenne przesilenie. Potem będzie wakacyjne dolce far niente, jesienny spleen, zimowa niechęć do roboty z braku słońca ;-)))

Pozdrawiam

Reply to
Marcin Stanisz

No jak diabli ;-)

Oj tak, oj tak ;-)

Nie strasz Marcinie! Z trzech zaplanowanych na dzisiaj dzialan, wyszlo jedno... Zwalam na poswiateczne lanistwo. Jutro siem weznem ;-)

Milej nocki Marcinie. __ Pzd, Irek.N.

Reply to
Ireneusz Niemczyk
Reply to
Piotr Wyderski

Noo... az tak zle bylo? ;-) Ja tam wole przesadzic - przemyslowka mnie tego nauczyla :-(

Nie tak, program sobie zlicza i zapisuje kazda inrementacje jak tylko szybko potrafi (a nie potrafi za szybko jak widac). Natomiast te ulamki Hz wylaczaja po prostu zasilanie. Wczoraj tez doszedlem do tego, ze troche to potrwa i zmienilem wypelnienie (jest dluzej wlaczony niz wylaczony). Dodalem tez rozladowywanie elektrolitow w zasilaczu (bo sie dran przestawal resetowac). W efekcie jak dzisiaj rano wychodzilem z domu na liczniku bylo juz prawie 300k :-)

__ Pzd, Irek.N.

Reply to
Ireneusz Niemczyk

Dzisiaj zabrano mi sterownik, wiec naturalnym trybem rzeczy test zostal zakonczony. Licznik wskazywal >2.2mln wpisow do kazdej z 10 komorek eepromu i w tym czasie nie wystapila ani jedna nieudana proba odzyskania zawartosci licznika. Uwazam wiec ze algorytm jest nie do _zabicia_, a deklarowana przez Atmela ilosc 1mln wpisow calkiem bezpieczna ;-)

__ Pzd, Irek.N. ps. jak wykonam nastepny sterownik (zalezy od klientow) - bede kontynuowal test.

Reply to
Ireneusz Niemczyk

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.