Forum: Mikrocontroller und Digitale Elektronik Flashdatenverlust durch ausschalten??


von Meike (Gast)


Lesenswert?

Hallo miteinander,

Habe eine merkwürdige Beobachtung gemacht, die ich mir nicht erklären
kann:

1. Programm in µC geladen
--> läuft wie gewünscht
2. mal Reset ausgeführt
--> läuft wie gewünscht

3.Spannung ausgeschaltet
4.Spannung wieder eingeschaltet
--> oh Schreck!!! Warum läuft es nicht richtig?
   mal Reset ausgeführt
--> läuft nicht richtig

na gut,(letzter Ausweg)
Programm in µC geladen
--> läuft wie gewünscht

Ich benutze das STK 500 - Board mit einem Atmega162.Beschriebenes ist
kein Einzelfall, sondern ein ständiger Zustand.
Für Hilfe, bzw. Ideen woran es liegen könnte wäre ich sehr dankbar.

Gruß Meike

von Michael Wilhelm (Gast)


Lesenswert?

Hast du Programmparameter im internen EEPROM abgelegt?
MW

von Meike (Gast)


Lesenswert?

Hallo Michael

Das EEPROM ist nicht in Benutzung.
Andererseits würden die Programmparameter da ja auch "überleben"
oder!!?

Gruß

von Tobi (Gast)


Lesenswert?

lies mal den flash nach dem spannungsabschalten und wiedereinschalten
aus und schau mal was raus kommt bzw vergleiche mal mit dem original

von Benedikt (Gast)


Lesenswert?

Entweder die Atmel uC haben wirklich ein Problem mit Datenverlust (hatte
ich auch schon ein paarmal bei verschiedenen 8051er Versionen von
Atmel), oder du hast z.B. irgendeinen Wert im RAM vergessen zu
initialisieren, der nach einem Reset noch vom letzen Laufen richtig
ist.
Genau dasselbe Problem tauchte hier im Forum schon öfters auf, aber
eine wirkliche Lösung wurde nie gefunden.

von miC (Gast)


Lesenswert?

manche AVRs haben auch die Funktion, dass man sie vor dem ausschalten
herunterfahren muss, das könnte man realisieren, in dem ein VDR die
Eingangsspannung permanent misst und dann über eine Schaltung die
erforderliche Prozedur durchführt, dafür sind aber unter Umständen eine
Batterie oder Kondensatoren mit großer Kapazität notwendig.

Liebe Grüße

Michi

von nobody0 (Gast)


Lesenswert?

Es kann auch ein Brownout sein.
Ich kenne das vom MSP430, bei dem es das Problem fast immer gab, wenn
der mit der höchsten zulässigen Frequenz betrieben wurde und dann die
Spannung abgeschaltet wurde.
Nach einer Stunde warten und Entladen durch Kurzschluß der Restspannung
der Versorgungsspannung geht es dann aber zumindest beim MSP430 wieder.
Allerdings ließ sich der MSP430 in den ersten 5 Minuten häufig nicht
mal mehr flaschen, so dass man eigentlich einen supervisor-IC braucht.

von Martin (Gast)


Lesenswert?

AVR herunterfahren? warum ??

von nobody0 (Gast)


Lesenswert?

Wenn die Spannung ausgeschaltet wird, ist das ein
bruit-force-Herunterfahren ...

von Harry XS (Gast)


Lesenswert?

Hallo zusammen,

hatte den Effekt auch mal bei einem Galep4 Programmer (so ein teurer
Multiprommer). Kann es sein, das bei deinem Prommer (STK500) die
Programmierspannung nicht mehr korrekt ist (Vermutung)?

Hast du die Möglichkeit den AVR mal mit einem anderen Prommer zu
beschreiben?

@nobody0: Brute Force runterfahren bei einem AVR?
Soweit ich weiss, gilt das nur für das EEPROM Adressregister.
Habe mittlerweile mehrere hundert Steuerungen am laufen, die per
Notschalter oder normalem Netzschalter ausgeschaltet werden und nie ist
etwas in der Richtung passiert.

Gruesse, Harry XS.

von Martin (Gast)


Lesenswert?

nur wie fährt man einen Atmel richtig runter?

von miC (Gast)


Lesenswert?

ich bin nur auf die Idee gekommen, weil ich irgensowas beim Überfliegen
des Datenblatts gesehen hatte :)

von mthomas (Gast)


Lesenswert?

Fragen ueber Fragen. AVR "runterfahren" gegen Programm-Flash
Datenverlust? Troll-Versuch? Wie schon vorgschlagen die Flash-Inhalte
vor/dannach mal vergleichen? Programmadapter (ISP-Flachbandleitung) in
beiden faellen angeschlossen? Spannungsversorgung stabil? Oszi mal
"drangehalten"? Brown-out detection aktiviert? Self-Programming
Funktionen im Programmcode und "wildgewordenen" ProgCounter?
Panikmache von einem Mitbewerber auf dem µC-Markt? Irgendetwas am
STK500 angeschlossen? STK500 Jumpereinstellungen?

von Jürgen Schuhmacher (Gast)


Lesenswert?

Könnte es nicht sein, daß es ein Problem des Netzteiles ist, das beim
Abschalten einen Unfug macht und Spannungsspitzen erzeugt? Gfs passiert
dies beim Einschalten?

Ich habe mal für einen Synthie ein Board gemacht, das infolge des
Einbaus eines zusatzboards eines Kollegen ein solches Verhalten zeigte:
Das Flash war deprogrammiert, nachdem man es benutzt hatte. EEs hat eine
Weile gedauert, bis ich das Problem gefunden hatte: Das neue Board hat
die Power Supply zu sehr belastet und beim Abschalten gab es einen
Peak. Hochdrehen der Spannung um 0,1V und zusätzliche Stabilisiastion
sowie Sondermassnahmen zum Überspannungsschutz am Flash halfen dem
Problem ab.

von thkais (Gast)


Lesenswert?

Ich gehe da konform mit Benedikt.
Bislang hat sich jeder vermeintliche Hardwarefehler (O.K., Ausnahme
die Sache mit dem EEPROM, aber das steht ja auch im Datenblatt) als
Softwarefehler herausgestellt.
So ein Ding mit einer nicht initialisierten RAM-Zelle hatte ich auch
schonmal, das sind Fehler, die einen zur Verzweiflung bringen können.
Was allerdings nicht erklärt, warum die Sache nach einem neu Flashen
klappt - wird bei einem Chip-Erase auch der Ram gelöscht? Ich glaube
nicht, das irgendwo im Datenblatt gelesen zu haben.

von nobody0 (Gast)


Lesenswert?

@Harry XS:

Das beschriebene Problem ist bei MSP430 aufgetreten, wenn a) mit 8 MHz
Quarz betrieben und b) die Versorgungsspannung durch einen Goldcap
relativ langsam gegen 0 ging. Ohne Goldcap gab es das Problem praktisch
nicht mehr und mit einem Supervisor-IC, der Reset ausgibt, wenn die
Spannung zu klein ist, sollte man das Problem auch beseitigt haben.

von Sven (Gast)


Lesenswert?

>>nur wie fährt man einen Atmel richtig runter?

ldi TEMP1,1<<Beenden
out Start,TEMP1

von Flupp3000 (Gast)


Lesenswert?

Was heisst eigentlich das 1<<"irgenwas"??

von Axos (Gast)


Lesenswert?

Und was macht der, wenn er heruntergefahren wird ????
Also wiso sollten die Atmels so ein Problem haben ? Ich schalte die
dinger (u.a auch den 162 er) auch so aus und noch nie ist was passiert.
Und wiso denn auch ? Ich kann mein PC auch in betrieb ausschalten und
der geht davon nicht kaputt, das was höchstens passiert ist ein
Datenverlust. Aber sowas kann bei einem AVR eigentlich nicht anftreten.
(Zumindest wenn er sauber ausgeschalten wird, und keine spannungsspitzen
auftreten)
Es gibt zwar solche fälle in denen sowas durch Temperaturschwankungen
Passiert, aber ich glaub nicht, dass es bei euch so hohe gibt.

Ich denke, dass Problem liegt in der Hardware, die am µC angeschlossen
ist. Wenn ich einen 74hc244 programmer an einem µC hängen hab, läuft
der nach aus und einschalten auch nicht mehr, da er durch die
Restspannung die vom Paraport kommt keinen sauberen Reset macht,
sondern irgendwelche undefinierbaren sachen.

@Meike:
Teste mal Pb auch wirklich_ _alle spannungen won deinem gerät
genommen sind.

MfG Axos

von ...HanneS... (Gast)


Lesenswert?

> Was heisst eigentlich das 1<<"irgenwas"??

Dass eine "1" um "irgendwas" Binärstellen nach links verschoben
wird.

...

von thkais (Gast)


Lesenswert?

@Sven:
Da hast Du Dich aber im Datenblatt verlesen, das muß

ldi temp,1<<Shutdown

heißen (Prust!)

von Sven (Gast)


Lesenswert?

@thkais

Dann solltest Du langsam mal auf die deutsche Version umsteigen.
Außerdem beinhaltet das IO-Register Start bei mir noch die Flags

Programme
Favoriten
Dokumente
Einstellung
Suchen
Ausfuehren
Hilfe

Achso, natürlich nur in den ATmegaWINxx-Controllern.

Sven

von nobody0 (Gast)


Lesenswert?

Nachtrag zum MSP430: Durch Wechsel in den LPM3 per IRQ war das Problem
beseitigt, weil da der niedrigere Takt für die Spannung zunächst
ausgereicht  hat und zudem im LPM3 kein Brownout auftrat.

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.