logo elektroda
logo elektroda
X
logo elektroda
ADVERTISEMENT
ADVERTISEMENT
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Ile razy można zapisać program i dane w Atmega16 oraz EEPROM?

lukzak2298 05 Jun 2006 23:56 5069 10
ADVERTISEMENT
  • #1 2702148
    lukzak2298
    Level 18  
    Posts: 667
    Help: 5
    Rate: 90
    Próbowałem znaleźć w wyszukiwarce na Elektrodzie ale ciągle pojawia się ten błąd:
    Fatal error: Call to a member function on a non-object in /var/www/html/includes/sessions.php on line 183

    nie wiem co jest grane.
    A szukać chciałem info na temat jak wygląda to w praktyce:
    - ile razy można zapisać program w atmega16 tak żeby można było go wykonywać bez żadnych problemów,
    - ile razy można zapisać do EEpromu
    - jak długo te dane będą sobie tam siedziały po odłączeniu kostki od wszystkiego?
    - jak długo może sobie taki procesorek chodzić
    - jak wygląda awaryność tego sprzętu, jak częśto trafiają się awarie?
    - czy taki mikrokontroler potrafi się zawiesić?

    Interesują mnie takie ogólne zagadnienia związane z używaniem.
    Buduję centralkę alarmu w domu i zastanawiam się czy opłąca się zapisywać do pamięci EEPROM loga z ostatnimi zdarzeniami (czas włączenia/wyłączenia centralki - w znaczeniu uzbrojenia, czas zadziałania alarmu, numer czujnika itp itd czy to nie zużyje szybko przestrzeni pamięciowej i potem żeby się to to nie wieszało :(

    W końcu wszelkie karty pamięci np do aparatu mają swoją żywotność określoną w ilościach zapisów...[/code]
  • ADVERTISEMENT
  • #2 2702261
    pubus
    Level 30  
    Posts: 1289
    Help: 138
    Rate: 31
    Wystarczy zaglądnąć do dokumentacji...
    Na pierwszej stronie jak byk są dane dotyczące pamięci...
    Tak potrafi się zawiesić ale od tego jest watchdog żeby nad tym czuwał...
    Oczywiście jeżeli program jest źle napisany to uC może się wieszać co chwilę...
    Po odlączeniu od zasilania dane w pamięci flash i eeprom pozostją baaardzo długo (parę lat)...
    Awaryjność zależy od warunków w jakich pracuje uC i jak cały ukałd jest zabezpieczony...
  • ADVERTISEMENT
  • #3 2702280
    lukzak2298
    Level 18  
    Posts: 667
    Help: 5
    Rate: 90
    Rozumiem Cię co do zaglądania do dokumentacji, chodziło mi raczej o to jak wygląda to w rzeczywistości.
    Wyczytałem 10 000 Write/Erase cycles, tzn że odczyty też się wliczają do tych 10000? Jakoś nie umiem sobie tego odnieść do mojego zastosowania... Na ile to powinno wystarczyć.

    Co to jest Watchdog? Z instrukcji zrozumiałem że to jest coś co po jakimś okresie timeoutu ma restartować procesor? Możesz przybliżyć jak to działa, czy to trzeba włączyć itd?
  • #4 2702335
    Andy74
    Level 25  
    Posts: 525
    Help: 103
    Rate: 24
    Witam!

    Write/Erase znaczy Zapis/Kasowanie.
    Co do pamięci programu, to nie wiem jak jest w praktyce, bo nigdy nie zdarzyło mi się tyle razy (10 000) programować jednej sztuki :)
    Natomiast EEPROM kiedyś katowałem w ATMega8 celowo by się przekonać ile wytrzyma. Napisałem w tym celu prosty programik który zapisywał całe 512 bajtów przypadkowymi danymi z tablicy, po czym sprawdzał ich zgodność, kasował, zapisywał danymi z drugiej tablicy... i tak w kółko. Po coś około 145 000 (o ile dobrze pamiętam) cykli - dałem mu spokój. Ani jednego błędu.
    Co do "trwałości" danych zapisanych w EEPROM-ie to nie wiem, ale mnie się nie zdarzyło nigdy, żeby odłączony od zasilania procek czegoś "zapomniał". Mogę powiedzieć że po ok. roku nie używania (wyjęty z podstawki) dane nie były uszkodzone.
    Awarie zdarzają się rzadko, jeśli nie zostaną popełnione błędy konstrukcyjne przy projektowaniu układu (przepięcia, zakłócenia, zwarcia, przeciążenie portów itp.)
    Jeśli procesor się zawiesza, to najczęściej jest to wina błędu w programie, lub pracy w złych warunkach (patrz poprzedni akapit)
    Jak napisał Kolega pubus - wszystko zależy od odpowiedniego zabezpieczenia układu i warunków w jakich przyjdzie mu pracować.

    Watchdog to licznik z własnym generatorem który pracuje zupełnie niezależnie od generatora kwarcowego/oscylatora procesora. Gdy licznik zliczy "do końca" i zacznie od zera, spowoduje reset procesora. Prawidłowo działający program w regularnych odstępach czasu zeruje licznik watchdoga i reset procesora nie nastąpi.

    Pozdrawiam
    Andy
  • ADVERTISEMENT
  • #5 2702362
    Nawigator
    Level 33  
    Posts: 1923
    Help: 167
    Rate: 159
    Odczyt z EEPROMu chyba do woli - nie czytałem o ograniczeniach ale moze ktoś wie na 100%.
    Co do ilosci zapisu to jezeli jest np. kilka bajtów to mozna je zapisywac za każdym razem w innym miejscu (komórce) - jeden bajt jest potrzebny do pamiętania indeksu adresu zapisu.
    Pozdr. N.
  • #6 2702402
    McRancor
    VIP Meritorious for electroda.pl
    Posts: 5326
    Help: 479
    Rate: 124
    W praktyce wygląda to tak że nim zajedziesz megę zetrą Ci się goldpiny od programatora. Łatwiej ubić flasz przy skaczącym napięciu zasilania w trakcie programowania, EEPROM odczytuje się bez "zużywania"

    Z zawieszaniem różnie bywa, gdyby się nie zawieszał nie byłoby watchdoga, awaryjne raczej nie są, mam kilka układzików które chodzą już ładnych pare lat i nic się im nie dzieje.
  • #7 2703034
    lukzak2298
    Level 18  
    Posts: 667
    Help: 5
    Rate: 90
    Właśnie, o takie coś mi chodziło :) A te informacje z katowaniem EEPROMU to już w ogóle miodzio. Dokładnie o to chciałem zapytać. Wielkie dzięki.

    Zakładam że używając BasCOMa (na początek) to on się obsługą resetowania licznika WatchDoga zajmie?
  • ADVERTISEMENT
  • #8 2703080
    Holy

    Level 14  
    Posts: 155
    Help: 5
    Rate: 6
    Według mnie sam nie powinien, choć aż tak dobrze BASCOMa nie znam. Intencją tworzenia watchdog'a było jego kasowanie wyłącznie przez użytkownika. :)
    Company Account:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Show) | Company Website: www.holtech.eu
  • Helpful post
    #9 2703152
    Andy74
    Level 25  
    Posts: 525
    Help: 103
    Rate: 24
    Bascom sam się nie zajmie resetowaniem Watchdog'a, jak słusznie zauważył Holy. Żeby z niego skorzystać najpierw trzeba go skonfigurować (ustawić stopień podziału - od tego zależy czas potrzebny na przepełnienie jego licznika) poleceniem CONFIG WATCHDOG = czas , później uruchomić: Start Watchdog.
    Teraz w newralgicznych punktach programu musi zostać umieszczone polecenie Reset Watchdog tak, aby przy prawidłowej pracy programu licznik nie mógł osiągnąć swojej maksymalnej wartości i zresetować procesora.
    Pozdrawiam
    Andy
  • #11 3570106
    masterix
    Level 14  
    Posts: 51
    Help: 8
    Rate: 3
    W ksiażce "ATmega w praktyce" Baranowskiego jest napisane, że EEPROM jest odporna wg gwarancji producenta na 100000 zapisów... Natomiast w dokumentacji od ATmega8 nie znalazłem( być może przeoczyłem ) taką informację.

Topic summary

✨ Mikrokontroler Atmega16 posiada pamięć flash do zapisu programu oraz pamięć EEPROM do przechowywania danych. Zapis i kasowanie w pamięci EEPROM jest ograniczone do około 100 000 cykli, co potwierdzają zarówno dokumentacje, jak i praktyczne testy, gdzie przy około 145 000 cykli nie zaobserwowano błędów. Odczyt z EEPROM jest nieograniczony i nie wpływa na jej trwałość. Dane w pamięci flash i EEPROM zachowują integralność przez wiele lat po odłączeniu zasilania, nawet do kilku lat. Mikrokontroler może się zawiesić, zwłaszcza przy błędach w oprogramowaniu, dlatego stosuje się watchdog – układ nadzorujący, który resetuje procesor po określonym czasie bez reakcji. Watchdog wymaga konfiguracji i ręcznego resetowania w programie, np. w BasCOM, gdzie użytkownik musi ustawić czas i umieszczać polecenia resetu licznika. Awaryjność Atmegi zależy od warunków pracy i zabezpieczeń układu, ale generalnie jest niska, a urządzenia mogą działać bezawaryjnie przez wiele lat. W praktyce częściej uszkodzeniu ulega sprzęt programujący (goldpiny) niż sama pamięć mikrokontrolera. W zastosowaniach takich jak centralki alarmowe zapisywanie logów w EEPROM jest możliwe i nie powinno szybko zużywać pamięci, jeśli dane są zapisywane rozsądnie.
Generated by the language model.
ADVERTISEMENT