Hallo,
beziehen sich die 10000 Schreibe/Löschvorgänge die bei den Atmel
Controllern angegeben sind eigentlich auf jedes Bit? Kann man wirklich
so oft ein speicherfüllendes Programm flashen?
Wie sind eure Erfahrungen, hab ihr schonmal einen Controller
kaputtgeflasht?
Ciao
Chris
|Schaffst Du es, deinen Controller jeden Tag 10 mal neu zu programmieren
|und das über 3 Jahre lang durchzuhalten?
Na ja je nachdem was ich mache flashe ich meine controller schon 20 bis
50x am Tag.
Allerdings ist das dann nur schubweise und nicht über 3 Jahre hin.
Aber so 4 bis 5 Wochen im Jahr passiert so was schon.
Danke euch für die Antworten.
>Schaffst Du es, deinen Controller jeden Tag 10 mal neu zu programmieren>und das über 3 Jahre lang durchzuhalten?
Naja. :-)
Ich sehe das dann so:
Ich programmiere ihn 27x pro Tag, dann hab ich nach einem Jahr, kurz
bevor er stirbt, genug Geld zusammengespart um mir einen neuen leisten
zu können...
Debugging mit softwarebreakpoints ist eine schlechte idee. Irgendwann
sollte man erkannt haben, dass Debugging ein Konzept ist, das bei der
Entwicklung eingebaut werden muss, sodass die laufenden Prozesse nicht
gestoppt werden muessen.
Hi
Als ich mit AVRs angefangen habe wurden 1000 Programmierzyklen
garantiert.
Den ATMega103 vom STK300 habe ich mindestens 2-3000 mal programmiert.
Der läuft heute noch.
MfG Spess
In der Realität wird man mit normalem Gebrauch (keine Datenspeicherung
jede Sekunde für ein ganzes Jahr) solche Flashspeicher nicht killen
können! Atmel garantiert 10k Zyklen, d.h. in der Regel, ihre
pessimistischsten interenen Abschätzungen lauteten auf mindestens das
Doppelte! In der Realität bei Zimmertemperatur denke ich - und das ist
eine rein gefühlsmässige Aussage - dürfte man locker Faktor 10
erreichen, bis Bitfehler auftreten...
Gruss
rayelec
ich bin da doch etwas skeptischer. Hab schlechte Erfahrungen mit Flash
gemacht.
1. Der Flash Speicher im Elsa Modem war nach wenigen Monaten defekt.
Reparatur war nicht möglich. Hab den Kaufpreis wegen Garantie
zurückbekommen.
2. Ein IDE Flashspeicher war nach ca. 3 Jahren kaputt. ca. 6 Monate/Jahr
in Betrieb. ca. 10 Schreibvorgänge/Tag wegen Smartdrive. Der Sinn war,
daß ich Daten bei jeder Änderung weggeschrieben habe, damit die Daten
bei Stromausfall noch zur Verfügung stehen. (Z.B. Einschaltzähler)
Hatte jetzt vor, diese ins EEPROM zu speichern. Aber ob der länger hält
als das Flash? Bin mir aufgrund der schlechten Erfahrungen nicht mehr so
sicher. Schließlich war bei den vorhergehenden Defekten auch nicht von
einer solch kurzen Lebensdauer die Rede.
mfg
Quehl
@Wolfram:
Du musst nicht jedesmal die Firmware neu ins Modem übertragen, wenn du
das Teil ausgeschaltet hast ;-)
Ich vermute eher, daß der Flash sowieso schon (vielleicht durch ESD)
vorgeschädigt war.
Mir ist bis jetzt noch nie irgendeine Art von Flash-Speicher kaputt
gegangen. Allerdings weiss ich von CF Karten, die bei mir im Betrieb
eingesetzt wurden, daß diese nach ca. 2 Jahren schon defekte Sektoren
aufwiesen... muss wohl noch ne Charge ohne die modernen
Fehlerkorrekturalgorithmen sein. Allerdings wurden die Teile extrem
stark benutzt: Da wurde jeden Tag ne relativ große LOG-Datei drauf
gesichert.
Gruß,
SIGINT
Hi
ich hab schon mal kaputten Flash Speicher in einem USB Stick gehabt.
Kann aber auch daran liegen das er vorher ne Runde in der Waschmaschine
gedreht hat :-)
Matthias
USB-Sticks gehen dann schnell kaputt, wenn man sie als reales Laufwerk
und nicht nur zum Datentransport benutzt. Die vielen Schreibzugriffe auf
die FAT machen dem Teil schnell den Garaus, besonders bei vielen kleinen
Dateien, wie sie bei Programmierern üblich sind ;-).
Hi
die Controller in USB Sticks sind so clever und verteilen die
Schreibzugriffe dynamisch über den gesamten Flash. Zusätzlich werden
defekte Sektoren aus einer "Reserve" ersetzt. Deshalb (und wegen der
schon bei der Produktion kaputten Sektoren) meldet auch ein 4 GB
USB-Stick keine 2^32 Byte freien Speicher sondern etwas weniger.
Matthias
ASUS-Boards (Pentium-II 400MHz) hatten mal ATMEL-Flash als BIOS-Speicher
drauf, die hielten ca. 500 Schreibvorgänge, dann tauchten erste
Fehlermeldungen auf.
Mein Mega32 (16MHz) der seit 2 Jahren auf 'nem Steckbrett zum 'Quälen'
steckt, hat ca. 2500 Programmiervorgänge hinter sich. Wenn der kaputt
ist melde ich mich wieder, falls das Forum bis dahin noch besteht! ;-))
Hi
ich hatte mal das EEPROM (nicht den Flash) eines Mega8 testweise
kaputgeschrieben. Nach 220k Schreibvorgängen war die erste Zelle bei
Normaltemperatur kaputt.
Matthias
scheint wohl recht unterschiedlich zu sein. Daß ich das Modem Flash
nicht jeden Tag neu beschreibe, ist doch wohl klar. Erst nachdem der
Fehler auftrat und ich neu upgedatet hatte, trat der Fehler an anderer
Stelle auf.
Bei meinem IDE Flash hatte ich zwar FAT 16, aber nur eine Datei
geschrieben. Fehlermeldung war, kann von C: nicht lesen. War also die
FAT oder Partition defekt. Da ist wohl deutlich zu sehen, daß beim
Schreiben der FAT immer an die gleiche Stelle geschrieben wird.
Ich will jetzt als Alternative immer 2 Flashs gleichzeitig beschreiben
für die Datensicherung. Dann gehen die Daten wenigstens nicht verloren,
wenn 1 Flash defekt wird. Transsend gibt übrigens 30 Jahre Garantie auf
die Flash Speicher. Weiß jemand die näheren Bedingungen der Garantie?
Wenn ich den Stick erst auf meine Kosten einsenden muß, dann kann ich
gleich einen neuen kaufen. Aber sonst bekomme ich dann immer einen
Neuen, wenn einer defekt geht. Wäre ja auch nicht schlecht. Beim AVR
geht das nicht ganz so einfach. Darum fange ich mit dem Testen erst an,
wenn alles richtig programmiert erscheint und nochmal trocken
durchgegangen wurde. Und dann beim Testen gleich mehrere Fehler auf
einmal suchen. So könnte man die Anzahl der Schreibvorgänge vermindern.
mfg
Habe projektmäßig bei meiner Arbeit das untersucht. Nach ca dem neuzig
bis 100 Fachen der garantierten Lebensdauer traten bei Atmel die ersten
Bitfehler reproduzierbar bei Labortemperatur auf.
>Ich will jetzt als Alternative immer 2 Flashs gleichzeitig beschreiben>für die Datensicherung.
Du meinst bestimmt abwechselnd, nicht >gleichzeitig<. Sonst hast Du gar
nichts gekonnt.
abwechselnd auch nicht. Wenn eine Datei gesichert werden muß, dann
schreibe ich die erst auf einen Flash und dann auf einen 2. Flash. So
sind immer 2 Kopien vorhanden. Wenn das Programm auf einen Lesefehler
stößt, gibt es eine Fehlermeldung und es wird vom 2. Flash gelesen. Der
defekte wird dann ausgetauscht und am nächsten Tag hab ich wieder 2
Sicherungen.
mfg
Hallo,
die Angaben des Datenblattes beziehen sich nur darauf, dass für 10000
Schreib-/Löschvorgängen die Spezifikation (Prog.-Timing) des µC
eingehalten wird. D.h. nach 10000 Schreib-/Löschvorgängen ist der µC
nicht kaputt, Atmel gibt halt keine Garantie für weitere Vorgänge. Also
keine Sorge, nur durch die reine Anzahl der Programmierungen wird der µC
nicht sterben. Um ihn Umzubringen gibt es wesentlich mehr und einfachere
Möglichkeiten :-)
Wäre doch mal ein schönes Projekt für jemand der was machen will, aber
nicht weis was:
Einen AVR nehmen und einen anderen Todflashen. Danach ausgabe der Anzahl
der Schreibzyklen, Durchschnittstemperatur, Spannung etc.
;-)
Jo, zu den Angaben + Sicherheitsreserve
Mich würde interessieren wies in echt aussieht.
Aber auch nicht so stark das ichs umsetzt, habe sinnigere Projekte auf
meiner Liste...
Hatte bei mir noch ein paar alte ATtiny11 herumliegen von 2002.
Wollte die als Taktgeneratur für meine IR-Lichtschranken verbauen.
Bei den Dingern lies sich aber weder die Signatur noch der Flash
auslesen geschweigeden neu programmieren.
Dachte schon das liegt an meinen Eigenbauprogrammiergerät. Bei einen
neuen ATtiny15 ging aber alles problemlols...
Wenn ein Hersteller eine gewisse Anzahl an Schreibzyklen garantiert,
dann hat er verdammt viel Spielraum.
Beispiel: USB Sticks werden meist mit 100k-1Mio Schreibzyklen angegeben,
c't hat einen USB Stick aber über 16 Millionen mal neu beschrieben ohne
einen Fehler festzustellen.
Die alten BIOS-Chips halten in der Tat nicht so lange, aber heutiger
Flash-speicher ist wesentlich haltbarer. Man merkt es auch, dass der
Flash-speicher zunächst langsamer wird (beim Schreiben) bevor er kaputt
geht. Nur selten geht ein Flash-Speicher einfach so kaputt, ohne vorher
langsamer zu werden.
EDIT: Ups, der Thread ist ja schon 2 Jahre alt. Naja egal.
ich hab einen Slim DVD Brenner von Panasonic vor gut 2 Jahren gekauft.
Kaum benutzt und schon kaputt.
Auf der Cebit 2009 habe ich einen 7" Fernseher gekauft. War nach kurzer
Zeit defekt. Auf der IFA umgetauscht, lief dort auch schon nicht richtig
und jetzt gibt es schon wieder Störungen.
Ich habe den Eindruck, daß auch beim Lagern schon Defekte auftreten und
nicht erst beim Beschreiben.
Richtig, aber beim Brenner kommt das meist durch die Linsen die durch
Lagerung trübe werden. Hatte auch schon einen DVD-Player der nach einem
Jahr praktisch keine DVD mehr gelesen hat.
Kommt halt davon weil inzwischen alles nur noch in China mit den
billigsten Materialien gebaut wird.
Torsten R. schrieb:
> Hatte bei mir noch ein paar alte ATtiny11 herumliegen von 2002.
Danke für das Aufwärmen eines Uralt-Threads mit einem völlig anderen
Problem.
Hast du versucht, die ATtiny11 mit ISP zu programmieren?
Torsten R. schrieb:
> Hatte bei mir noch ein paar alte ATtiny11 herumliegen von 2002.> Bei den Dingern lies sich aber weder die Signatur noch der Flash> auslesen geschweigeden neu programmieren.
Hast Du denn ein STK500 und dann High-voltage Serial Programming
ausgewählt und verkabelt?
ISP versteht der Tiny11 nicht!
Peter
Natürlich mit High-voltage Serial Programming.
Brennhardware und Software ist Eigenbau. Hat 2002 mit den besagten
ATtiny11 anstandslos funktioniert.
Wer Lust hat kann mit den STK500 mal versuchen den Dingern wieder Leben
einzuhauhen.
Wenn man einen ATmege168 über debugWIRE debuggt dann wird bei jedem
Programmstart auf den Anfang von main() eine break Instruktion geflasht.
Da main() immer an der gleichen Stelle liegt, also immer in die gleiche
Speicherzelle bzw. Page.
Wenn man 30 Programmänderungen pro Tag annimmt und für das Debuggen
jeweisl 30 mal break gefasht wird dann sind 10-tausend Programmierungen
nach 11 Tagen erreicht.
Wenn sich der AVR gar nicht meldet, dann liegt es aber nicht am defekten
Flash.
Einfache Tests wie z.B. pro Sekunde hundert mal die gleiche
Speicherzelle beschreiben, gleich wieder auslesen und vergleichen ist
aber auch nicth umbedingt aussagekräftig. Die Isolierende Sicht des
Floating Gates wird bei jedem Löschvorgang beschädigt, dadurch kann sich
die Ladung des Gates unbeabsichtigt ändern. Wenn Atmel also 10k
Schreibvorgänge angibt, dann bedeutet das, dass der Flash auch nach
dieser Anzahl von Schreibvorgängen die Daten noch für XX Jahre sicher
speichert. Nach 20k Schreibvorgänge ist das evtl schon nicht mehr
gegeben. Da können Lesefehler vielleicht schon nach ein paar Tagen
auftreten. Und genau diese Tatsache wird bei einem normalen
Schreiben-Lesen-Vergleichen-Marathon nicht berücksichtigt. Nur weil die
Daten 1ms nach dem Schreiben korrekt sind, kann das nach ein paar Tagen
ganz anders aussehen.
Anwendungen wo jede Sekunde Datenüberschieben werden sollten vielleicht
besser mit FRAM ausgerüstet werden. (Wenn es die Kapazität zulässt)