logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

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

lukzak2298 05 Cze 2006 23:56 5069 10
REKLAMA
  • #1 2702148
    lukzak2298
    Poziom 18  
    Posty: 667
    Pomógł: 5
    Ocena: 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]
  • REKLAMA
  • #2 2702261
    pubus
    Poziom 30  
    Posty: 1289
    Pomógł: 138
    Ocena: 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...
  • REKLAMA
  • #3 2702280
    lukzak2298
    Poziom 18  
    Posty: 667
    Pomógł: 5
    Ocena: 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
    Poziom 25  
    Posty: 525
    Pomógł: 103
    Ocena: 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
  • #5 2702362
    Nawigator
    Poziom 33  
    Posty: 1923
    Pomógł: 167
    Ocena: 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.
  • REKLAMA
  • #6 2702402
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 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.
  • REKLAMA
  • #7 2703034
    lukzak2298
    Poziom 18  
    Posty: 667
    Pomógł: 5
    Ocena: 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?
  • #8 2703080
    Holy

    Poziom 14  
    Posty: 155
    Pomógł: 5
    Ocena: 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. :)
    Konto firmowe:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Pokaż) | Strona WWW: www.holtech.eu
  • Pomocny post
    #9 2703152
    Andy74
    Poziom 25  
    Posty: 525
    Pomógł: 103
    Ocena: 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
    Poziom 14  
    Posty: 51
    Pomógł: 8
    Ocena: 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ę.

Podsumowanie tematu

✨ 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.
Wygenerowane przez model językowy.
REKLAMA