Hi Ihr da. Habe hier ein Problem, dass der kleine Mega16 plötzlich im Programmlauf sein Programm "verliert". Ich muß es dann nochmals flashen, danach geht alles wieder als sei nichts passiert. Der Mega1280, der auf der gleichen Schaltung potentialgetrennt sitzt, hat diese Probleme nie gemacht - wie auch bisher alle anderen programmierten Atmels die ich in den Fingern hatte. Abblockkondensatoren sollten alle richtig sein und den Zeitpunkt des "vergessens" konnte ich bisher nicht exakt bestimmen (mal nach 10h mit mehrmaligem an/aus - mal nach 3min). Habt Ihr dieses Phänomen auch schon einmal beobachten können und evtl. eine Lösung bzw. einen Ansatzpunkt für mich? Gruß, Björn
Björn G. wrote: > Hi Ihr da. > > Habe hier ein Problem, dass der kleine Mega16 plötzlich im Programmlauf > sein Programm "verliert". zu diesem Zeitpunkt schon mal das Flash ausgelesen? also ehe du >Ich muß es dann nochmals flashen, danach geht alles wieder als sei >nichts passiert. [...] > Habt Ihr dieses Phänomen auch schon einmal beobachten können und evtl. > eine Lösung bzw. einen Ansatzpunkt für mich? nein
Woher weißt du, dass er sein programm vergisst? Lies mal den Flash aus, wenn das Problem wieder auftritt. Wahrscheinlich steht noch das gleiche drin was du reingeschrieben hast. Passen die Fuses noch, nachdem er sich auf aufgehängt hat? Vielleicht fällt die Spannung recht langsam ab wenn du abschaltest? Brown-out-detection an oder externen Resetbaustein vorgesehen? Hab gehört, dass in solchen Zuständen schonmal Fuses kippen. Wenn jetzt die Clock-Fuses nicht mehr passen kann es schon sein, dass er nichts mehr tut. Sebastian
Tachschen! Das ging aber flott :-) Das aufgespielte Programm vergleichen konnte ich bisher noch nicht, da das Gerät schnell, schnell fertig werden mußte - was natürlich nun nich so geklappt hatte ;-) BrownOutDetection ist meines Wissens auf 4,3V gestellt. Werde es aber auch nochmal genau überprüfen. Es kann auch nicht an einem Bestückungsfehler dieser einen Platine liegen, da mir das Phänomen auch bei weiteren Platinen (der gleichen Bauart) aufgefallen ist. Ist ja interessant, dass die Fuses, je nach dem wie unglücklich die Spannung abfällt, kippen könnten - Davon hatte ich bisher noch nie gehört - wäre aber eine gute Erklärung für das ganze. Kann das ganze erst Montag in der Fa. testen, da ich heute einmal einen Tag Urlaub verbraucht hatte, jeappie... Björn
Es wurde schon berichtet, dass sowas passieren kann, wenn die Betriebsspannung langsam abstirbt. Die Brown-Out-Detection sollte das aber effektiv verhindern. Poste mal Deinen Schaltplan, wenn alles OK ist, hast Du ja vielleicht ein defektes Exemplar erwischt.
Wahrscheinlich hängt sich der Prozessor nur irgendwo auf...
Dann sollte aber doch ein neustart was bringen, oder? Also Spannung aus und ein. Oder hat das der Threadopener garnicht probiert? Sebastian
Na klar hat der das probiert - Siehe erster Post, steht alles drin :-) Der hat, wie oben beschrieben, das ganze auch schon bei mehreren Platinen vorgefunden... Ich kann ja einmal einen Watchdog rein programmieren, kann jedoch nicht daran liegen, da der Controller nach Spannung on/off auch nicht wieder anläuft. Ich glaube auch, das die Fuses bei irgendeinem Betriebszustand kippen - werde ich Montag einmal durchtesten. Björn
Hatte auch nicht gedacht, dass du's nicht mit aus-an probiert hattest. Aber es stand nicht explizit dort, dass nach dem Auftreten des Fehlers ein aus-an nichts hilft. Und fragen kostet ja nichts ;-) Die Idee mit dem Watchdog hört sich für mich gut an. Wenn die BOD wirklich an ist sollten die Fuses ja eigentlich noch passen. Ein Umprogrammieren des Flash wäre mir völlig unverständlich (außer du hast richtig dicke Bugs in deiner Software). Wie schaut denn deine Spannungsversorgung aus? Sind da recht große Kapazitäten drin? Vielleicht krigt der AVR überhaupt keinen Reset, weil er die ganze Zeit noch Spannung hat. Dann bleibt er natürlich munter weiter am gleichen Softwarebug hängen. Sebastian
Wird das interne EEProm verwendet? Wenn Ja, dann die Brown Out Detection einschalten und auf 4,2V stellen sonst kippen unter umständen die Bits. Der Fehler würde sich aber erst nach mehrmaligem Ein und Ausschalten zeigen. SPM in den Fuses abschalten könnte ein workaround sein... (ist natürlich keine lösung)
Hi Ihr da. @Sebastian: War ja nicht bös gemeint - wollte nur einmal auf den Anfangthread verweisen ;-) Hatte nun wieder ein wenig testen können, leider jedoch den Fehlerfall nicht mehr nachstellen können :-( Habe nun einfach einmal den Brownout aktiviert. Das interne EEprom wird übrigens nicht verwendet. Der Reset funktioniert scheinbar - Hatte einmal ein Oszi dran gehalten... Wenn es wieder auftritt, werde ich die anderen angesprochenen Dinge einmal testen und Feedback geben. Danke ersteinmal für Eure Tips! Bis denn Björn
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.