Hallo, bei einem ATMega64 wurde jede Minute in zwei EEprom Speicherstellen geschrieben. Normalerweise hält das circa 70 Tage für 100000 Schreibzyklen. Allerdings war es viel länger über 200000 Schreibzyklen also über 140 Tage. Was passiert wenn ein EEprom defekt geht? Kann der uC abstürzen, weil er z.B. die Speicherstelle nicht mehr lesen kann? Kann das schreiben und lesen des eeprom ab und zu noch funktionieren? Wird der uC langsam und hängt irgendwo fest? Programmieren lässt sich das Gerät noch normal. Es tritt ein sporadischer Fehler auf, denn ich bis jetzt nicht nachvollziehen kann. Es scheint als steht der UART, die SPI und die I2C. Erst nach einem Spannungsreset läuft das Gerät wieder. Der Watchdog ist eingeschalten. Fabian
Meistens äusser sich das in Wirrwar, welches nach dem Schreiben im EEProm steht, bzw ob das da so steht lässt sich schwer herausfinden, das Wirrwar kommt beim Lesen zurück. Schreib doch ein kleines Programm, welches dir immer ein bestimmtes Bitmuster schreibt von Vorn bis Hinten und wieder ausliest, sobald das nicht übereinstimmt, lass eine LED leuchten o.Ä.
@ Fabian (Gast) >bei einem ATMega64 wurde jede Minute in zwei EEprom Speicherstellen >geschrieben. Normalerweise hält das circa 70 Tage für 100000 >Schreibzyklen. Naja, nicht so dolle. Macht man meist eher anders. http://www.mikrocontroller.net/articles/Speicher#EEPROM_Schreibzugriffe_minimieren >Was passiert wenn ein EEprom defekt geht? Kann der uC abstürzen, weil er >z.B. die Speicherstelle nicht mehr lesen kann? Nein. Du liest dann nur falsche Daten. Wenn aber dein Programm durch diese aus dem Tritt kommt, weil keine Fehler/Bereichsprüfung gemacht wird, dann kann dein uC abstürzen. > Kann das schreiben und lesen des eeprom ab und zu noch funktionieren? "Funktionieren" wird es immer, aber die Daten werden verändert. Am Ende liest du immer nur noch 0xFF, wenn alle Bits kaputt sind. > Wird der uC langsam und hängt irgendwo fest? Nein. Siehe oben. Das Programm ist ausserdem im Flash, nicht im EEPROM. Das sind getrennte Speicher im AVR. >Programmieren lässt sich das Gerät noch normal. Es tritt ein >sporadischer Fehler auf, denn ich bis jetzt nicht nachvollziehen kann. >Es scheint als steht der UART, die SPI und die I2C. Erst nach einem >Spannungsreset läuft das Gerät wieder. Der Watchdog ist eingeschalten. Klingt nach dem oben genannten Fehler. Dein Programm verschluckt sich an unsinnigen Daten. MfG Falk
Hi >bei einem ATMega64 wurde jede Minute in zwei EEprom Speicherstellen >geschrieben. Normalerweise hält das circa 70 Tage für 100000 >Schreibzyklen. Falscher Ansatz. Führe dir mal die AppNote 'AVR101: High Endurance EEPROM Storage' zu Gemüte. >Allerdings war es viel länger über 200000 Schreibzyklen also über 140 >Tage. Ist ja auch nur die Mindesthaltbarkeitsdauer. MfG Spess
Wenn der Atmel aus dem Tritt kommt, müsste das dann immer sein und somit nachvollziehbar sein oder? Fabian
@ Fabian (Gast) >Wenn der Atmel aus dem Tritt kommt, müsste das dann immer sein und somit >nachvollziehbar sein oder? Ja. Schreib mal testhalber falsche Daten rein und prüfe. Das kann aber knifflig werden, denn du weisst ja nicht auf welche falschen Daten er giftig reagiert. MfG Falk
Prüfen auf defekte Zellen ist recht einfach: - Beschreiben aller Zellen mit 0x00 - EEPROM löschen (AVR-Studio) Die defekten Zellen kommen dann beim Leertest automatisch ans Licht. Wenn schon Zellen beschrieben wurden, dann einfach löschen (ohne vorheriges Beschreiben).
Thilo M. schrieb: > Die defekten Zellen kommen dann beim Leertest automatisch ans Licht. > Wenn schon Zellen beschrieben wurden, dann einfach löschen (ohne > vorheriges Beschreiben). Dann müsste das AVR-Studio auch einen Fehler bei Programmieren bringen, dass z.B. das der eeprom - Vergleich beim Programmieren Fehlgeschlagen ist, oder? Die eeprom Stellen sind Konfigurationsparameter, wenn beim Auslesen an dieser Stelle noch das richtige drin steht, sollte noch alles ok sein, oder? Was anderes kann nicht defekt gehen? Fabian
> Dann müsste das AVR-Studio auch einen Fehler bei Programmieren bringen, > dass z.B. das der eeprom - Vergleich beim Programmieren Fehlgeschlagen > ist, oder? So ist es. > Die eeprom Stellen sind Konfigurationsparameter, wenn beim Auslesen an > dieser Stelle noch das richtige drin steht, sollte noch alles ok sein, > oder? Was anderes kann nicht defekt gehen? In der Regel bleibt der zuletzt geschriebene Wert im EEPROM, wenn's defekt ist. Bin aber nicht ganz sicher ob Bits, die noch intakt sind, noch beschrieben werden können.
Beim Schreiben einer defekten eeprom - Stelle kann dann nur passieren, das nicht das richtige an dieser Stelle drin steht? Also es kann nichts weiter schlimmes passieren, wenn man versucht diese Stelle zu schreiben oder zu lesen? Wie z.B. Atmel stürzt ab weil eeprom nicht beschrieben werden kann. Bzgl. Programmieren und eeprom Vergleich mit AVR-Studio - wenn man den gleichen Wert ins eeprom reinschreibt welcher schon drin steht und das eeprom an dieser Stelle ist, sollte das Programmieren trotzdem klappen, oder? Fabian
Das Programmieren (außer bei defekten Speicherzellen) klappt immer, nur der Vergleich bringt dann Fehler, also kann der intakte Teil des EEPROMs ruhig weiterverwendet werden. Dass der AVR abstürzt oder sonst was passiert wird nicht passieren, er liest einfach falsche Werte aus den defekten Zellen.
wenn du auf dem atmega noch speicherzellen im eeprom frei hast änder die adressen die das programm benutzt. dann machts der µC nochmal solange. und beim nächsten programm implementierst du eine wear-leveling-funktion! eigentlich sterben die speicherzellen dadurch, daß die aus ihren spezifikationen hinauslaufen. idR brauchen sie einfach mehr zeit um beschrieben zu werden. wenn sie die nicht bekommen (weil die logik davon ausgeht die gewährte zeit reicht) gibts halt fehler beim schreiben. die daten-haltezeit dürfte ebenfalls unter der anzahl schreibvorgänge leiden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.