www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mega16 vergisst plötzlich beim Lauf sein Programm


Autor: Björn G. (tueftler)
Datum:

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

Autor: Manfred B. (vorbeigeschlendert)
Datum:

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

Autor: Stephan Watterott (Firma: Watterott electronic) (welectronic) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast die Brown Out Detection Bits gesetzt?

Autor: Sebastian (Gast)
Datum:

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

Autor: Björn G. (tueftler)
Datum:

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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltplan posten!

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wahrscheinlich hängt sich der Prozessor nur irgendwo auf...

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann sollte aber doch ein neustart was bringen, oder? Also Spannung aus 
und ein. Oder hat das der Threadopener garnicht probiert?

Sebastian

Autor: Björn G. (tueftler)
Datum:

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

Autor: Sebastian (Gast)
Datum:

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

Autor: Tim (Gast)
Datum:

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

Autor: Björn G. (tueftler)
Datum:

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

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.