mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Flashdatenverlust durch ausschalten??


Autor: Meike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du Programmparameter im internen EEPROM abgelegt?
MW

Autor: Meike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael

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

Gruß

Autor: Tobi (Gast)
Datum:

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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: miC (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVR herunterfahren? warum ??

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Spannung ausgeschaltet wird, ist das ein
bruit-force-Herunterfahren ...

Autor: Harry XS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nur wie fährt man einen Atmel richtig runter?

Autor: miC (Gast)
Datum:

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

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>nur wie fährt man einen Atmel richtig runter?

ldi TEMP1,1<<Beenden
out Start,TEMP1

Autor: Flupp3000 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heisst eigentlich das 1<<"irgenwas"??

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was heisst eigentlich das 1<<"irgenwas"??

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

...

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sven:
Da hast Du Dich aber im Datenblatt verlesen, das muß

ldi temp,1<<Shutdown

heißen (Prust!)

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

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.