www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Watchdog springt nicht ein


Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag allerseits

Komme gerade von einem Kunden, dem ich zum zweiten Mal das Geraet
austausche. Das erstere habe ich an einen anderen Kunden verkauft, wo
es seit 2 Wochen einwandfrei laeuft.
Alles in allem sind rund 40 Geraete im Umlauf. Und noch kein einziger
Aussetzer: ausser in diesem Fall.

Es handelt es sich um eine Schaltung mit einem Atmega8. Der Watchdog
Aufruf erfolgt einzig im Main-Loop. BODEN und BODLEVEL sind beide
aktiviert.
Die gemeldeten Fehler:
1. Wenn der Nachtwaechter morgens den Hauptschalter einschaltet, haengt
mein Geraet. Ein Aus- und erneutes Einschalten bringt ihn wieder zu
sich.
2. Wenn mein Geraet eine Sirene aktiviert (via Relais, die wiederum ein
zweites Relais anzieht) dann haengt er sich (manchmal) auf. Ein Aus- und
erneutes Einschalten bringt ihn wieder zu sich.
3. Zufaelliges Haengen des Geraets, ohne irgendeinen Grund.

Ich gehe davon aus, dass irgendwelche Netzstörungen die Ursache dieses
Verhalten ist. Aber warum in alles Welt springt der Watchdog nicht ein?

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste mal eine Schaltung; Verdacht: ungesiebte Spannungsversorgung und /
oder EMV Einstreuung.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mehr Möglichkeiten zur Diagnose hast Du nicht?
Zuerst mal würde ich aus eigener Erfahrung heraus auf ein EMV-Problem
tippen. Dazu gehören natürlich auch Störungen der Versorgungsspannung.
Ein entsprechendes Layout kann da schon viel herausreißen.
Nächstes Problem: Es könnte auch ein Softwarefehler sein. Wenn
irgendwelche Bits im RAM gekippt werden, könnte es sein, dass Parameter
nicht mehr vorgesehene Werte haben und dadurch das Programm nicht mehr
so reagiert, wie vorgesehen. Da ist es durchaus möglich, dass der
Main-Loop noch munter den Watchdog-Timer zurücksetzt aber Subroutinen
oder Interrrupts nicht mehr sauber ausgelöst werden. Heißt also: Im
Main-Loop regelmäßig die Timer und Interrupt-Flags überprüfen.
Letzteres wäre nur an den Symptomen herumgebastelt, besser ist es
natürlich, die Ursache zu eliminieren.

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
40 Geräte auf dem Markt sind da natürlich eine Zeitbombe....

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@thkais

Danke für den Tip mit dem Main-Loop. Im Program ist alles auf den
Timer0 aufsetzt. Wenn der Timer0 nicht mitmacht, dann laeuft gar
nichts.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mehmet,

wie sind die Fuse-Bits gesetzt?

Könntest Du uns mal bitte Deine Schaltung und den Code zur Verfügung
stellen?

Bernhard

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@thkais

Ich habe jetzt WDR() vom MainLoop() in die Task_1sec() verlegt. Diese
Funktion kann nur dann aufgerufen werden, wenn Timer0 seinen Dienst
einwandfrei erledigt.

Wenn ich nun die Spannungsversung mit Spikes verseuche, dann haengt das
Geraet mit der alten Version. Das Geraet mit der neueren Version resetet
sich.

Nochmals herzlichen Dank.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mehmet

wir hatten hier im Forum letztens ein ähnliche Diskussion,

ein µC stürzte permanent durch elektrostatische Aufladungen ab.


Benedikt hatte eine sehr gute und einfache Lösung, die uns allen in
blankes Erstaunen versetzte.

Deshalb die Frage zu den Fuse-Bits?


Bernhard

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bernhard Schulz

Der Schaltplan besteht aus 3 A4 Seiten und der Code aus rund 3200
Zeilen. Ich glaube nicht, dass irgeneiner Lust haette, dies zu
analysieren.

Autor: Mehmet Kendi (mkmk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
In der Beilage die FuseBits ....

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mehmet

In der Beilage die FuseBits ....

müsste auf intern 2MHz RC-Generator eingestellt sein, wenn ich es jetzt
richtig gedeutet habe?

Bernhard

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, 4MHz

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mehmet,

bei internen RC-Generator kann durch die Fuse-Bits auch nichts
verbessern.

Bernhard

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.