mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EEPROM kaputt machen


Autor: Valentin Diring (valentin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen.

Ich programmiere zur Zeit ATmega16. Und zwar habe ich eine EEPROM Zelle 
beschrieben und gelesen. Dabei habe ich eine Schreibzeit von 3,7ms, und 
eine Lesezeit von wenigen Zyklen ermittelt.
Nun jetzt wollte ich eine EEPROM Zelle kaputt kriegen, um zu gucken was 
dabei passiert. Aber ich bin mir nicht sicher, ob dabei vielleicht das 
ganze EEPROM Speicher kaputt geht?

Danke für jede Hilfe.

Autor: Sinnfrei (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es sollte eine neue Ordner für solche Beiträge geben:
"sinnfreie Fragen" ...

Autor: Andrew Taylor (marsufant)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Valentin R. wrote:
> Hallo zusammen.
>
> Ich programmiere zur Zeit ATmega16. Und zwar habe ich eine EEPROM Zelle
> beschrieben und gelesen. Dabei habe ich eine Schreibzeit von 3,7ms, und
> eine Lesezeit von wenigen Zyklen ermittelt.
> Nun jetzt wollte ich eine EEPROM Zelle kaputt kriegen, um zu gucken was
> dabei passiert. Aber ich bin mir nicht sicher, ob dabei vielleicht das
> ganze EEPROM Speicher kaputt geht?
>
> Danke für jede Hilfe.


Wenn Du unter dem Mikroskop mit einem scharf gebündelten Elekronenstrahl 
eine einzelne Zelle beschädigst, dann funktioniert der Rest weiter.


Du hast sicher das nötige Equipment daheim.
Viele Erfolg. Wenn nicht: Tja, dann weißt Du wo Du jetzt suchen mußt.


Mac Gyver.

Autor: Christian L. (lorio)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke Valentin hat etwas anderes mit "kaputt kriegen" gemeint.
Meiner Meinung nach die begenzte Anzahl von Schreibzyklen.

Falls doch nicht, kann ich nur sagen, dass du eine ruhige Hand brauchen 
wirst ;-)

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ja die Isolierung von dem floating gate beschädigt wird, sollten 
einzelne Zellen kaputt gehen und nicht der ganze EEPROM auf einmal, denk 
ich mir. Wenn du ca. 4ms zum schreiben brauchst und ein guter EEPROM 
mindestens 1000000 Schreibzyklen übersteht, wird das wohl ein paar 
Monate dauern, bis eine Zelle kaputt geht. Viel sehen wirst du dabei 
wohl nicht. Das Bit lässt sich eben nur noch als 0 oder 1 lesen, egal 
was man reinschreibt.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wär mal ein Versuch Wert:

Schleife mit ca. 4ms zum schreiben
EEPROM mit 1000000 Schreibzyklen

==>
4ms * 1000000 = 4000s
4000s / 60 = 66,67 Minuten
66,67 Min. / 60 = 1,11 Stunden

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> es sollte eine neue Ordner für solche Beiträge geben:
> "sinnfreie Fragen" ...
Nicht unbedingt. Ab und zu kann es nicht schaden, die Angaben vom 
Datenblatt zu überprüfen.

> Nun jetzt wollte ich eine EEPROM Zelle kaputt kriegen, um zu gucken was
> dabei passiert. Aber ich bin mir nicht sicher, ob dabei vielleicht das
> ganze EEPROM Speicher kaputt geht?
Nein, es geht "nur" die eine Zelle kaputt.
Du solltest zwischendurch aber immer wieder mal die Spannung abschalten. 
Wir hatten da mal den Effekt, dass die Zelle scheinbar nocht in Ordnung 
war, also beschrieben und die Daten wieder "korrekt" zurückgelesen 
werden konnten. Aber nach ca. der 5-fachen Zeit (und entsprechend vielen 
Schreibzugriffen) wurde es uns dann mulmig ;-)

Und siehe da: nach einer kleinen Änderung des Testaufbaus (Ab- und 
Wiedereinschalten der Vcc nach je 1000 Zyklen) konnten wir die 
Datenblattangaben ziemlich genau bestätigen.

Autor: A. F. (artur-f) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller: Mal eine ernste Frage, welche Auswirkung hat das 
an/abschalten der VCC Spannung? Ich sehe da gerade keinen Zusammenhang.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A***** F***** wrote:
> Lothar Miller: Mal eine ernste Frage, welche Auswirkung hat das
> an/abschalten der VCC Spannung? Ich sehe da gerade keinen Zusammenhang.
Ja, genau das wars: Ich auch nicht ;-)
Der Gute, der das damals gemacht hat, hatte auf 1 Speicherzelle immer 
das selbe geschrieben. Und das selbe gleich danach zurückgelesen --> 
weit über 5 Mio Zugriffe :-o

Auf zwei Arten wurde es dann datenblattgerechter:
- Beschreiben zweier Zellen mit unterschiedlichen Daten. --> 1 Mio
- Abschalten der Spannung. --> 1 Mio

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann es sein, dass der AVR die Daten garnicht zurückliest, sondern 
irgendwelche zwischengspeicherte Werte verwendet?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wär mal ein Versuch Wert:

>Schleife mit ca. 4ms zum schreiben
>EEPROM mit 1000000 Schreibzyklen

>==>
>4ms * 1000000 = 4000s
>4000s / 60 = 66,67 Minuten
>66,67 Min. / 60 = 1,11 Stunden

Das bringt gar nüscht. Das Lesen wird damit noch weit, weit über der 
spezifizierten Zahl funktionieren, da der Ladungsträgerverfall in einer 
Zelle mit schon geschädigtem Gate vergleichsweise lange dauert. Man 
müßte also schreiben, meinethalben 3 Tage warten, dann auslesen, testen 
und wieder schreiben. Und das würde dann sehr, sehr, sehr lange dauern.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt darauf an, was das Ziel ist. Ob um eine realistische Einschätzung 
der Anzahl Programmierzyklen, oder wie hier einfach nur darum, ein Byte 
im EEPROM kaputt zu kriegen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mann könnte ja einen Test wie folgt machen
ein paar Byte 10000 mal beschreiben immer 0x00-0xFF-0x00-0xFF-...
die nächsten paar Byte mit 20000 usw.

Wenn alle bereiche beschrieben sind ein paar Tage warten und schauen 
welche daten i.O. sind.

Autor: Valentin Diring (valentin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für die vielen Antworten.

Ich wollte aber nicht die Angaben überprüfen. Im Datenblatt steht für 
EEPROM 100.000 Schreibzyklen, die von Atmel garantiert werden, und ich 
vertraue Atmel. Ich habe zurzeit nur einen ATmega16, der nur ein EEPROM 
Speicher hat. Deshalb habe ich die sinnfreie Frage gestellt, die sehr 
gut beantwortet wurde. Danke.

Mich interessiert nur noch etwas ganz sinnlöses, und zwar die Lesezeit 
einer EEPROM Zelle. Mit dem Programm, mit dem ich die Schreibzeit 
bestimmt habe, bekomme ich bei Lesezeit maximal 5 Zyklen. Aus dem 
Datenblatt konnte ich heraus finden, dass eine RAM Zelle in zwei 
Zyklen(mit lds) und Flash in drei Zyklen(mit lpm) gelesen wird. Aber wie 
genau der interne EEPROM gelesen wird, weiß ich nicht.

Danke nochmal.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Valentin R. (valentin)

>Mich interessiert nur noch etwas ganz sinnlöses, und zwar die Lesezeit
>einer EEPROM Zelle.

Datenblätter sind dir wohl noch nicht über den Weg gelaufen?

>Datenblatt konnte ich heraus finden, dass eine RAM Zelle in zwei
>Zyklen(mit lds) und Flash in drei Zyklen(mit lpm) gelesen wird. Aber wie
>genau der interne EEPROM gelesen wird, weiß ich nicht.

Doch, lies mal genau. Abschnitt EEPROM.

"• Bit 0 – EERE: EEPROM Read Enable
The EEPROM Read Enable Signal – EERE – is the read strobe to the EEPROM. 
When the correct address is set up in the EEAR Register, the EERE bit 
must be written to a logic one to trigger the EEPROM read. The EEPROM 
read access takes one instruction, and the requested data is available 
immediately. When the EEPROM is read, the CPU is halted for four cycles 
before the next instruction is executed."

MFG
Falk

Autor: Valentin Diring (valentin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Falk Brunner

> Datenblätter sind dir wohl noch nicht über den Weg gelaufen?
Nein, sind sie nicht, aber ich setze mich damit jeden Tag auseinander.

> Doch, lies mal genau. Abschnitt EEPROM.
Habe ich mehrmals getan. Bin aber noch ein Anfänger im Bereich µC, und 
nicht so Sprachbegabt.


@ Sinnfrei (Gast)

> es sollte eine neue Ordner für solche Beiträge geben:
> "sinnfreie Fragen" ...

Mit "solche Beiträge" meinst du wahrscheinlich deinen Beitrag!!!

Tut mir leid, dass ich so undankbar und unverschämt klinge, aber als ich 
ganz am Anfang deinen Beitrag gelesen habe, ist mir die Lust vergangen 
weiter zu lesen.
Bitte doch den Forumadministrator für dich so einen Ordner zu erstellen, 
dann kannst du dich dort austoben.

Und bemüht euch nicht mir zu antworten, ich werde diesen Thread nicht 
mehr durchlesen, sondern im Datenblatt weiter machen.


An Andere Danke, ihr habt mir sehr geholfen!

MfG

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um einen EEPROM kaputt zu bekommen, gibt es einfachere Methoden...

Vcc=12V oder ein solider Schlosserhammer

Sorry, musste ich aber mal loswerden.

Ernsthaftmodus:
 Vor einiger Zeit gab es in der c't mal einen Beitrag über die 
Lebensdauer und max. Schreibzyklen von SSDs und anderen Flash-Speichern. 
Dabei ist es den Testern nicht gelungen, eine Zelle kaputtzuschreiben. 
Das Problem mit solchen Tests ist aber ein anderes. Die 
Gate-Isolationsschicht wird durch das Beschreiben geschwächt und 
irgendwann wandern einzele Elektronen durch. Das passiert aber zumindest 
im Grenzbereich relativ langsam. Die Zelle übersteht das Schreiben und 
anschliessende Kontrolllesen ohne Probleme, aber nach 3 Tagen ist der 
Inhalt dann weg. Für ständige Schreibzyklen sind die Flash-Zellen halt 
auch nicht gemacht. Dafür gibt es halt RAMs. Allerdings verwende ich 
gelegentlich auch I2C-EEPROMs als RAM-Ersatz, weil es halt einfacher 
ist, aber dabei halten sich die Schreibzugriffe in Grenzen.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens wrote:

>  Vor einiger Zeit gab es in der c't mal einen Beitrag über die
> Lebensdauer und max. Schreibzyklen von SSDs und anderen Flash-Speichern.

Wobei solche Speichersysteme wear levelling verwenden, oder oder über 
Ausweichspeicherplätze im Fehlerfall verfügen. Mit internem EEPROM ist 
das nicht vergleichbar.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. (prx)

> Wobei solche Speichersysteme wear levelling verwenden, oder oder über
> Ausweichspeicherplätze im Fehlerfall verfügen. Mit internem EEPROM ist
> das nicht vergleichbar.

Ist schon klar, ich wollte aber darauf hinaus, dass es ziemlich lange 
dauert, bis eine Flash-Zelle sofort nach dem Schreiben fehlerhafte Werte 
liefert. Viel schlimmer sind die Datenverluste, welche erst nach einer 
Stunde oder mehr auftreten, die Speicherzelle also langsam die Ladung 
verliert.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kein Zweifel. Aber in den 3 Tagen die Travel Rec zwischen den einzelnen 
Zyklen warten wollte ist die Zelle andernfalls 60 Millionen Mal neu 
programmiert worden und dann wohl bald derart ausgelutscht, dass es 
keine 3 Tage mehr dauert bis das Gate entladen ist.

Also wär's wohl fixer, 24h nonstop reinzuschreiben und erst dann ein 
bischen zu warten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.