Forum: Mikrocontroller und Digitale Elektronik Watchdog springt nicht ein


von Mehmet K. (mkmk)


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?

von TravelRec. (Gast)


Lesenswert?

Poste mal eine Schaltung; Verdacht: ungesiebte Spannungsversorgung und /
oder EMV Einstreuung.

von thkais (Gast)


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.

von TravelRec. (Gast)


Lesenswert?

40 Geräte auf dem Markt sind da natürlich eine Zeitbombe....

von Mehmet K. (mkmk)


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.

von Bernhard S. (bernhard)


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

von Mehmet K. (mkmk)


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.

von Bernhard S. (bernhard)


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

von Mehmet K. (mkmk)


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.

von Mehmet K. (mkmk)


Angehängte Dateien:

Lesenswert?

In der Beilage die FuseBits ....

von Bernhard S. (bernhard)


Lesenswert?

@Mehmet

In der Beilage die FuseBits ....

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

Bernhard

von Mehmet K. (mkmk)


Lesenswert?

Nein, 4MHz

von Bernhard S. (bernhard)


Lesenswert?

@Mehmet,

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

Bernhard

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.