Forum: Mikrocontroller und Digitale Elektronik Wann verliert ein Flash-Speicher Daten?


von Thomas (Gast)


Lesenswert?

Servus erstmal

Ich hab hier einen 89S8252 liegen, der öfters mal alle Programmdaten im 
Flash verliert. Das passiert vor allem, wenn in der Umgebung Störsignale 
vorkommen oder die Versorgungsspannung unsauber wird.
Ist das nun normal oder kann das eher daran liegen, dass ich die 1.000 
Programmiervorgänge bereits erreicht habe?
Wie zuverlässig ist Flash denn generell?

von Reinhard P. (carnival)


Lesenswert?

Morgen,

1000 Programmiervorgänge dürften meiner Meinung nach nicht das Problem 
sein.
Ich würd erst mal versuchen die Versorgungsspannung zu stabilisieren.
Hast den Reset richtig beschalten? Wenn der offen ist dann kanns schon 
sein dass bei Störsignalen grad das Richtige reinkommt und er dann den 
Flash löscht.
Wie stark sind den deine Störsignale?
Ansonsten sind Flash Speicher äußerst zuverlässig.

Kommt das auch bei anderen 89S8252ern vor?

von Owz (Gast)


Lesenswert?

Hallo!

Die warscheinlichkeit das ein Flash "von selbst" Daten verliert ist 
äußerst gering.
Ich keinne nur 2 Ursachen, zulanges Lagern (mehrere Jahre) oder 
Ionisierende Stahlung (Röntgen, Radioaktivität). Dürfte beides bei dir 
nicht der Fall sein.

Ich hatte mal mit dem AT89S8253 ein Problem, das der Flash die Daten 
nicht angenommen hat, das lag daran dass während der Programierens die 
Spannung unter 4,5V abgesunken ist, bei dieser Spannung kann der Flash 
nicht mehr richtig beschrieben werden.

mfg Owz

von Peter D. (peda)


Lesenswert?

Thomas wrote:

> Ich hab hier einen 89S8252 liegen, der öfters mal alle Programmdaten im
> Flash verliert.

Was hast Du denn am Reset und an den SPI-Pins dranhängen ?

EA ist fest auf VCC ?


> Das passiert vor allem, wenn in der Umgebung Störsignale
> vorkommen oder die Versorgungsspannung unsauber wird.

Dann solltest Du für ne "saubere" VCC sorgen oder zumindest nen Reset-IC 
nehmen, der bei Unterspannung den MC in Reset hält (z.B. MAX813L).

Überspannungen (>6V) mußt Du in jedem Fall vermeiden.

Auch sollten Portpins nie Spannung bekommen, bevor VCC anliegt.


Peter

von Winfried (Gast)


Lesenswert?

Normal werkeln die mindestens 20-30 Jahre vor sich hin, ohne irgendwas 
zu verlieren. Da wirst du irgendwo einen Designfehler haben, unsauber 
Versorgungsspannung, offener Resetpin usw, wie andere schon schrieben.

Oder auch nur der eine Chip spinnt aus unerfindlichen Gründen.

von Thomas (Gast)


Lesenswert?

Erstmal vielen Dank für die Antworten.

Der EA-Pin liegt fest auf VCC, der Reset-Pin ist mit einem POR-Netzwerk 
verbunden (zwei Widerstände, ein Kondensator).
Die Spannungsversorgung besteht aus zwei Teilen: Ein Schaltregler LM2576 
mit Beschaltung gemäß Datenblatt, ausserdem ist noch Batteriebetrieb 
über eine weitere Schottky vorgesehen.
Im Test hab ich diese Batteriespannung bei gleichzeitiger Versorgung 
durch das Netz mit einem Labornetzgerät erzeugt. Als ich dann die 
Netzspannung wegnahm, hat die Spule des Schaltwandlers leise 
gefiept(macht sie sonst nicht). Das Wegschalten passierte über ein 
FI-Schalter-ähnliches Gerät, das ich von Hand ausgelöst habe (zu faul 
zum Stecker ziehen). Dabei wird wohl schon ein wenig Störung frei. Daher 
meine Vermutung, dass die Versorgung dran schuld ist.
Der Controller war im Übrigen auch nicht fest im Sockel eingesteckt, da 
ich gerade am debuggen war. Vermutlich hat auch das was damit zu tun.

Übrigens sind nach diesen Crashs die gesamten 2k des Flashs auf FF 
gesetzt, es fehlen also nicht nur einzelne Bytes.

Mich irritiert eben vor allem, dass der Flash überhaupt so anfällig ist 
und wollte mal nachfragen, ob das an der Alterung liegen könnte (laut DB 
sind es eben nur 1.000 Programmierzyklen).


von Philipp B. (philipp_burch)


Lesenswert?

Also mein Netzgerät gibt beim Ausschalten durch die Kondis kurz ca. 10V 
aus, da solltest du aufpassen, wenn du es einfach so ausschaltest. 
Vielleicht solltest du eher dessen Ausgang abklemmen.

von tom (Gast)


Lesenswert?

Hi,

alles FF? Dann prüfe mal Deine Software, ev. kommt es nur zur Löschung 
und gar nicht zur Neuprogrammierung!

Wie schon geschrieben, 1000 Zyklen sind für heutige Flash-Speicher 
nichts. Aber: während des programmierens ist strengstens darauf zu 
achten, das:

- Temperatur eingehalten wird (vermutlich ok, da Laborbetrieb)

- Versorgungsspannung eingehalten wird!!! Zu geringe Versorgungsspannung 
bewirkt, das nicht genug Ladung auf die Floating-Gates gegeben wird. Der 
Effekt ist, das schon vor der üblichen Datenhaltezeit Zellen "kippen" 
können.

Dein Fehler allerdings scheint mir eher entweder ein Softwareproblem zu 
sein oder das die Versorgungsspannung zu früh abgeschaltet wird oder 
zusammenbricht!

Schönen Tag noch,
Thomas

von Philipp (Gast)


Lesenswert?

Ich hatte schon zwei AVRs (unterschiedliche Typen), die zuverlässig 
gelaufen sind und dann irgendwann das Flash komplett auf FF stand. Das 
war jeweils, während die Platine gerade nicht im Gehäuse war, also am 
ehesten etwas mit Störeinkopplung der einen oder anderen Art. Ein 
Kollege hatte solche Selbstlöschungen schon öfters und fand das ganz 
normal.

von mr.chip (Gast)


Lesenswert?

> Ist das nun normal oder kann das eher daran liegen, dass ich die 1.000
> Programmiervorgänge bereits erreicht habe?

Ich arbeite seit mehr als 3 Monaten an einem Projekt mit 2 Mega32, pro 
Bastelsession (3-4 mal die Woche) werden die locker 20 oder mehr Mal 
beschrieben, aber ich hatte bisher keinerlei Probleme. Man sagt ja auch, 
dass der Flash im Allgemeinen viel laenger haelt als auf dem Datenblatt 
angegeben.

von Thomas (Gast)


Lesenswert?

Naja, der 89S8252 ist ja auch schon wenig älter und wurde von atmel 
durch den 8253 ersetzt, der 100.000 oder noch mehr Zyklen zulässt. 
Vielleicht nicht ohne Grund?
Aber dann müssten vermutlich eher einzelne Zellen kippen und nicht der 
gesamte Flash auf FF gesetzt werden.

Mit welchen Sünden im Software-Bereich könnte ich denn überhaupt diesen 
Effekt hervorrufen?

Es scheint sich aber doch herauszukristallisieren, dass es Störungen auf 
der Versorgungsspannung waren. Ich finde es eben schon krass, dass der 
Flash derart leicht von aussen gelöscht werden kann...

von Peter D. (peda)


Lesenswert?

Thomas wrote:

> Es scheint sich aber doch herauszukristallisieren, dass es Störungen auf
> der Versorgungsspannung waren. Ich finde es eben schon krass, dass der
> Flash derart leicht von aussen gelöscht werden kann...


Krass ist eher, daß Du ihm Störungen auf VCC zumutest.

Schau Dir mal mit nem Oszi die Störungen an, ich würd mich nicht 
wundern, wenn da Spitzen von 10V und mehr drauf sind.

Wenn die Rohspannung stark verseucht ist, kommt ein Regler-IC nicht mehr 
hinterher.

Deshalb hat man z.B. im störverseuchten Kfz-Netz noch Drosseln und 
Suppressordioden drin.


Und daß sich ein MC bei Überspannung ärgert und vergeßlich wird, kannst 
Du ihm wirklich nicht übelnehmen.


Peter

P.S.:
Es könnte auch sein, daß Du die Portpins zufällig wie für ein Erase 
beschaltet hast, dann braucht nur noch ein kurzer 12V-Dip auf den 
VPP-Pin einkoppeln und schon wird Erase im parallel programming Modus 
ausgeführt.

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
Noch kein Account? Hier anmelden.