Mega16 vergisst plötzlich beim Lauf sein Programm

OP #857710
Lesenswert?

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
#857715
Lesenswert?

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
Gast #857717
Lesenswert?

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
OP #857727
Lesenswert?

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
OP #858735
Lesenswert?

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
Gast #858754
Lesenswert?

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
Gast #858755
Lesenswert?

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)
OP #860884
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren