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
Hallo Michael Das EEPROM ist nicht in Benutzung. Andererseits würden die Programmparameter da ja auch "überleben" oder!!? Gruß
lies mal den flash nach dem spannungsabschalten und wiedereinschalten aus und schau mal was raus kommt bzw vergleiche mal mit dem original
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.
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
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.
Wenn die Spannung ausgeschaltet wird, ist das ein bruit-force-Herunterfahren ...
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.
ich bin nur auf die Idee gekommen, weil ich irgensowas beim Überfliegen des Datenblatts gesehen hatte :)
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?
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.
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.
@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.
>>nur wie fährt man einen Atmel richtig runter?
ldi TEMP1,1<<Beenden
out Start,TEMP1
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
> Was heisst eigentlich das 1<<"irgenwas"??
Dass eine "1" um "irgendwas" Binärstellen nach links verschoben
wird.
...
@Sven: Da hast Du Dich aber im Datenblatt verlesen, das muß ldi temp,1<<Shutdown heißen (Prust!)
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.