PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega 128: 10000 Write/Erase Cycles - bald erreicht



digitali
01.02.2008, 22:43
Hallo,

fuer ein kommerzielles Projekt verwende ich seit ca. 1,5 Jahren hier eine spezielle Hardware mit einem ATMega128 drauf. Seit dieser Zeit benutze ich diese auch um stetig die Software fuer dieses Projekt zu verbessern.
Mittlerweile kommen in mir so langsam Bedenken hinsichtlich der Tatsache auf, dass man das Flash "nur" ca. 10000mal beschreiben/loeschen kann. Und vermutlicherweise (ich habe nicht mehr mitgezaehlt) :) komme ich auch irgendwann da hin.
Hat es hier schon mal jemand geschafft einen ATMega auf diese Art und Weise ins Jenseits zu befoerdern? Wie aeussern sich aufkommende Fehler dann? Wird das Programm nur noch fehlerhaft abgearbeitet oder verweigert der AVR hier komplett die Arbeit? Oder vermutlich laesst sich das Programm einfach nur nicht mehr fehlerfrei uebertragen!?

Es geht mir nur darum dieses - wenn es soweit ist - schnell zu erkennen. Im unguenstigsten Falle wundert man sich dann warum einige Passagen des Programmes eventuell nicht mehr funktionieren. Als Folge davon beginnt womoeglich eine zeitverschwenderische Fehlersuche in der Software, obwohl der AVR dann einfach defekt ist.

Idealerweise verfaerbt sich das Gehaeuse des ATMega128 einfach in Rot, wenn es soweit ist. ;)

Mit freundlichen Gruessen
Digitali

chr-mt
01.02.2008, 23:01
Hi.
ich glaube, da verschätzt man sich manchmal.
Rechne einfach mal aus, wie oft du den Controller pro Tag neu programmierst.
Nehmen wir rmal an, du spielst durchschnittlich jeden Tag, alle halbe Stunde, (8 Stunden Arbeitszeit vorrausgesetzt) und 200 Arbeitstage pro Jahr, ein neues Programm ein.
Wären dann also 16 * 200 = 3200 Programmierungen pro Jahr.
Somit reicht das für 3 Jahre.
Und 10000 ist nur die garantierte Anzahl.
Soweit ich gelesen habe, geht da einiges mehr.
Kannst ja mal überlegen, wieviel Zeit wirklich zwischen zwei Programmiervorgängen vergeht.
Also Programm testen, Zigarette rauchen, Fehler suchen, Kaffe trinken, , neu compilieren, etc.

Was sich nach einem Speicherfehler tut, hängt wohl von der Position im Flash ab, wo sich der Fehler befindet.
Kann sein, daß das erstmal nicht auffällt, kann aber auch sein, daß dein Programm komplett abschmiert.
Kannst ja sicherheiltshalber nach dem programmieren immmer einen Verify machen.

Gruß
Christopher

Steinigtmich
01.02.2008, 23:12
Hehe... ja, die Färbung wäre toll.
Ich selbst hab mittlerweile seit bestimmt 3 Jahren nen Atmega32 als Bastelcontroller im Einsatz. Bis jetzt läuft er einwandfrei, die Anzahl der Flashs kann ich jedoch nichtmal schätzen... wird aber mittlerweile auch ein höherer 4-Stelliger Wert sein.
Ich weiss nicht mehr wo ich mal drauf gestossen war, aber irgendwer hatte mal mutwillig seinen Atmega in einen sich permanent wiederholenden Flash-Vorgang gehängt.
Fazit war, das Dings geht nicht so ohne weiteres kaputt, liess sich auch immernoch flashen.
Ich meine mich zu entsinnen, lediglich der Zeitraum in dem das Programm im Flash gespeichert bleibt, nimmt mit der Zeit ab.
Hält dann vielleicht nicht mehr 10 Jahre sondern nach 1-2 kippt mal ein Byte um. Das hat mit der Technologie vom Flash-Speicher zu tun, bei jedem Löschvorgang wird der Isolator der jeweiligen Zelle etwas beschädigt. Irgendwann ist das soweit abgebrannt, dass die Elektronen mit der Zeit halt "rauspurzeln".

Wenn dem wirklich so ist, dann ist das ja die nur denkbar ekelhaftigste Fehlerquelle. Auf dem Schreibtisch arbeitet es wunderbar, aber im Einsatz machts irgendwann Ärger, Programm stürzt ab, etc... und dann erinnert man sich wohl kaum noch dran, dass das ausgerechnet DIESER Controller war, den man vorletztes Jahr über die Belastungsgrenze getrieben hat und kann sich schwarzsuchen.

sechsrad
02.02.2008, 11:23
....Auf dem Schreibtisch arbeitet es wunderbar, aber im Einsatz machts irgendwann Ärger, Programm stürzt ab, etc... und dann erinnert man sich wohl kaum noch dran, dass das ausgerechnet DIESER Controller war, den man vorletztes Jahr über die Belastungsgrenze getrieben hat und kann sich schwarzsuchen....


neue atmega sind auch sauteuer, musst mehrere jahre drauf sparen.
1 schachtel zigaretten sparen und du hast 2.

Christopher1
02.02.2008, 12:00
Ja und mega128 auslöten macht auch wahnsinnig viel Spaß ;-) *ironie*

Besserwessi
02.02.2008, 12:49
Ich habe anfangs das Programmierinterface von BASCOM benutzt, da wird irgendwie mitgezählt wie oft porgrammiert wurde. Wie man den Zähler zurücksetzt wiess ich aber noch nicht. Bin da bis ungefähr 400 gekommen in 6 Monaten.
Avrdude bietet die Möglichkeit im EEPROM die Zahl der Programmiervorgänge pro Chip mitzuzählen. Verbraucht aber die letzten 2 EEPROM bytes.

hacker
02.02.2008, 13:23
Ein Mega16 hab ich somit schon geliefert. Es äußerte sich darin, dass ich ihn nicht mehr mit ansprechen konnte. Sein Programm lief aber dennoch tadellos. Aber auch bei mir hat es einige Stunden Nerven gekostet, bis man darauf kommt. Ich hatte den Controller 2 Jahre lang mal weniger aber auch teilweise an einem Tag ziemlich oft (>50mal) beschrieben.

izaseba
02.02.2008, 15:21
Ja und mega128 auslöten macht auch wahnsinnig viel Spaß Zwinkern *ironie

Das ist in 2 Minuten erledigt

Dnerb
02.02.2008, 20:52
Deshalb sollte mana uch die Chips fürs Prototyping hinterher nicht mit der Schaltung verkaufen... ;-)