Forum: Mikrocontroller und Digitale Elektronik Atmega644 Board (WebServer) beginnt nach Stunden zu booten


von Daniel B. (dbuergin)


Lesenswert?

Hallo zusammen

Brauche mal einen Tipp wie ich einen Fehler debuggen kann.

Habe ein Etherrape Board mit einem ATmega644 und ENC28J60 (Rev. 4). Das 
ganze umgebaut (INT Leitung des ENC28J60 auf ATmega644), so dass die 
Software von Ulrich Radig (V1.0.77) darauf läuft. Was diese auch tut. 
Alle Funktionen sind eigentlich ok bis auf die Tatsache, dass das Board 
nach ein paar Stunden (im Berich von 3 - 12h) beginnt wie verrückt immer 
und immer wieder zu booten.

Hat jemand eine Idee, an was das liegen könnte, oder in welche Richtung 
das deutet ? Memoryleak glaube ich nicht, da würde doch die CPU nach 
einem Reboot wieder normal laufen.

Irgend ein Tipp, wie ich mich dem Fehler annähern könnte ? Bis jetzt 
debugge ich nur mit "printf" Statments, aber hier weiss ich beim besten 
Willen nicht wo einbauen.

Mit was, oder wie debugged Ihr solch ein Problem ?

Mit bestem Dank

Daniel

von Schwurbl (Gast)


Lesenswert?

Wenn es kein Problem mit dem Watchdog ist (tja, unwahrscheinlich, aber 
trotzdem: isser aus?)

Gibt es im Programm Funktionszeiger, die durch Interrupts und 
nichtatomare Operation auf ungültige Ziele zeigen könnten?

Gibt es rekursive Aufrufe (Stacküberlauf)?

Ist der Stack gross genug?

Ist es ein echter Hardwarereset oder nur ein Sprung auf die Adresse 
0000? Wie kannst Du die 3-12h Phase neu starten? Durch Spannung aus/ein?

Im Zeifelsfall ist's immer ein Interruptproblem :-)

von Daniel B. (dbuergin)


Lesenswert?

> Wenn es kein Problem mit dem Watchdog ist (tja, unwahrscheinlich, aber
> trotzdem: isser aus?)

Meiner Meinung nach ausgeschaltet, finde weder die Register, noch die 
wdt_ Calls vom avr-gcc im Code.

> Gibt es im Programm Funktionszeiger, die durch Interrupts und
> nichtatomare Operation auf ungültige Ziele zeigen könnten?

> Gibt es rekursive Aufrufe (Stacküberlauf)?

> Ist der Stack gross genug?

Da die Basissoftware nicht von mir ist, kann ich das nicht sagen. Muss 
nur raten, da die Software von Ulrich Radig ist, und wohl auf vielen 
Boards im Einsatz ist, nehme ich an, der Fehler liegt woanders.
Möglich ist aber alles, ist mir schon klar ;-)

> Ist es ein echter Hardwarereset oder nur ein Sprung auf die Adresse
> 0000? Wie kannst Du die 3-12h Phase neu starten? Durch Spannung aus/ein?

Habe einen separaten Reset-button eingebaut. Zieht den ATmega644 
Resetpin auf GND. Mit dem kann ich das System neu starten.

> Im Zeifelsfall ist's immer ein Interruptproblem :-)

Oder die Kombination von Etherrape Board und Software von Ulrich Radig 
verträgt sich doch irgendwie nicht. Ulrichs Software basiert auf der 
INT-Leitung des ENC28J60, und die orig. Software für das Etherrape Board 
wohl auf dem aktiven Abfragen des ENC28J60, ohne INT-Leitung.

von Udo (Gast)


Lesenswert?

Hi,

ich habe die SW vom Ulrich inkl. Handy-Cam Unterstützung
tagelang ohne Probleme auf einem Etherrape am Netz gehabt.

Eventuell ist die Spannungsversorgung nicht stabil?
Falls die Eingangsspannung etwas hoch und kein Kühlkörper
auf dem 7805 ist könnte ich mir vorstellen, dass dieser
sich zeitweise abschaltet (bei 12V Eingangsspannug wird
meiner jedenfalls ziemlich heiss).

Ciao
   Udo

von Daniel B. (dbuergin)


Lesenswert?

Habe den 7805 durch einen 78SR105 (1.5A), und das ganze hängt an einem 
1.5A 9V Steckernetzteil.

Das sollte doch reichen ? Vorallem jetzt, da ich alle eigenen 
Erweiterungen (VFD Display und zwei 8-Stellige 7-seg. LED's mit MAX7219) 
abgehängt habe. Auch mit diesen Erweiterungen hat's geknallt nach ein 
paar Stunden.

Meistens habe ich am Abend entwickelt, das Ding die ganze Nacht laufen 
lassen, am Morgen war noch alles ok und nach der Arbeit am Abend im 
Endlosloop am booten.

von Daniel B. (dbuergin)


Lesenswert?

Ist wohl schon etwas spät, meine Satzstellung lässt etwas zu wünschen 
übrig ;-)

Wollte sagen ich habe den 7805 durch einen 78SR105 ersetzt. Und das 
Board ist trotz der Erweiterungen und somit einem höheren Stromverbrauch 
auch erst nach ein paar Stunden in den Endlos-boot gegeangen.

@Udo: Weisst Du zufällig noch mit welcher Softwareversion Du gearbeitet 
hast ? Ev. kann ich es mal mit dieser Version versuchen.

Danke und gute Nacht

Daniel

von Christian Erker (Gast)


Lesenswert?

"Wollte sagen ich habe den 7805 durch einen 78SR105 ersetzt. Und das
Board ist trotz der Erweiterungen und somit einem höheren Stromverbrauch
auch erst nach ein paar Stunden in den Endlos-boot gegeangen."

Bringt genau garnix -- solange der 78SR105 nicht gekühlt ist, wird er 
exakt genauso warm (gleiche Verlustleistung) .. allerdings sollte es 
dann nach einem Reset nicht weitergehen, besonders da die Atmegas eh bei 
3V noch funktionieren.

Gruß,
Christian

von Daniel B. (dbuergin)


Lesenswert?

Ok, dann habe ich hier etwas falsch verstanden, ich war der Meinung, der 
78sr105 sei ein step-down Regler und bleibe desshalb deutlich kühler als 
ein 7805.
Meine 78SR105 wird auf jeden Fall auch beim Einsatz aller Komponenten 
nicht mal Handwarm.
Das kann also nicht das Problem sein.

von Fried V. (tich)


Lesenswert?

Hast Du die Brownout-Überwachung des Atmega aktiviert?
Vielleicht kommen Spikes über das Steckernetzteil rein, die leichten 
asiatischen Schaltnetzteile sind manchmal schon üble Schmutzfinken.
Wenn die warm werden, geht auch manchmal die Ausgansspannung kurzzeitig 
in den Keller. Wenn Du ein klassisches Netzteil mit Trafo hast, würde 
ich mal damit testen.

von Pete K. (pete77)


Lesenswert?

Falls es die Spannung ist, helfen vielleicht ein paar zusätzliche 
Kondensatoren.

Gibt es EMV-Störungen ? Springt der Kühlschrank an oder fährt ein Zug 
vorbei ?

Manchmal hilft es, das Gerät an einen anderen Ort zu bringen oder 
entsprechend abzuschirmen.

Nach einem Reboot sollte ja eigentlich alles wieder laufen. Dass 
mehrmals gebootet wird, ist schon interessant.

von Daniel B. (dbuergin)


Lesenswert?

Ja genau, dass ist es auch was mich verwirrt. Wenn es Stromspitzen oder 
Schwankungen wären, würde das System dannach ja wieder laufen.

Eigentlich hatte ich bis jetzt in meinem Basteldachgeschoss keine 
solchen Probleme. Werde aber heute Abend mal ein extra stablisiertes 
Netzteil verwenden (irgendwo ist noch eins...).

Bin zutiefst verwirrt, aber das kommt häufig vor als Nichtelektroniker 
in diesem Umfeld ;-)

von Daniel B. (dbuergin)


Lesenswert?

Nachtrag: Habe den Schuldigen gefunden, war/ist das Noritake VFD 
Display. Da der interne lcd Driver von Ulrich Radig mit diesem Display 
nicht funktioniert, habe ich denjenigen von Peter Fleury genommen.
Anbindung an PORTA wie ein ganz normales standard LCD (HD44870). Der 
Driver funktioniert out-of-the Box (danke Peter). Aber eben, nach ein 
paar Stunden beginnt das gesamte System unkontrolliert immer und immer 
wieder zu booten.

Seit das Display nicht mehr dran, und der Driver draussen ist, läuft das 
System seit 4 Tagen stabil.

Keine Ahnung warum. Aber was soll's, im Moment brauche ich das Display 
sowieso nicht, war nur zum debuggen.

Gruss

Daniel

von Pete K. (pete77)


Lesenswert?

Das ist ja schon ein Ding, zumal die Lib von Peter Fleury von mehreren 
Usern benutzt werden wird.

Ich würde das Fehlerbild mal an Herrn Fleury melden. Vielleicht ist doch 
ein Bug in der Lib.

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
Noch kein Account? Hier anmelden.