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?
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?
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
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
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.
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).
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.
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
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.
> 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.
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...
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.