Forum: Mikrocontroller und Digitale Elektronik Hardware Watchdog vs SoftwareWatchdog


von Tbd (ids2001)


Lesenswert?

Hallo Forum,


ich möchte in meinem Projekt wo ein Arduino Mini Pro läuft ( AT Mega 328 
), diesen mittels Watchdog überwachen, da die Schaltung in einem schwer 
zugänglichen Bereich aufgestellt wird. ( Wetterstation )
Um nun sicherzugehen, dass der Arduino neu gestartet wird, falls er sich 
in einer Schleife mal verirrt hat, brauche ich einen WTG.

Soll ich nun einen Softwarewatchdog nach dieser Anleitung hier 
implementieren oder eher einen Hardware?

http://tushev.org/articles/electronics/48-arduino-and-watchdog-timer


Als Hardware Watchdog hätte ich mir den MAX6369 vorgestellt.

Was wären die Vor und Nachteile von Hard und Software WTG.
Welche Variante wäre redundanter?

danke im voraus für die Unterstützung

mfg

Dieter

von Michael M. (eos400dman)


Lesenswert?

Hallo,

ich habe bisher immer der internen WDT der Atemags benutzt. Der läuft ja 
auch nicht in Software, sonder wird nur über das Programm oder die Fuse 
eingeschaltet und läuft dann unabhängig vom Controller.

Gruß Michael

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wie sieht denn ein Softwarewatchdog aus?
Das hört sich nach einem höchst überflüssigen Programmteil an.

BTW: Watchdogs werden nicht in Interruptroutinen (und schon gar nicht im 
Timer-Interrupt!) zurückgesetzt, sondern nur in der Hauptschleife. Denn 
auch wenn das Programm sich in der Hauptschleife verrannt hat, kommt 
weiterhin zuverlässig der Timer...

von Karl H. (kbuchegg)


Lesenswert?

Lothar Miller schrieb:
> Wie sieht denn ein Softwarewatchdog aus?

Er hat das missverstanden oder schlecht ausgedrückt.
Aus dem Link geht es hervor: Es ist der im Mega eingebaute WDT gemeint.

von Jan (Gast)


Lesenswert?

Also redundanter gibt es nicht.
Redundanz beschreibt das mehrfache Vorhandensein von Anlagenfunktionen 
zur Fehlerkorrektur. Also ist eine Funktion mehrfach vohanden 
(redundant) oder eben nicht.
Für fast alle Falle sollte der intere Watchdog der AVR´s reichen. Ihn 
per zusätzlicher Schaltung zu implementieren bringt bei einem heilen AVR 
keinen Vorteil. Wenn du Redundanz haben möchtest kannst du Ihn natürlich 
zusätzlich Implementieren.
Wenn Redundanz sein soll, wäre aber eher ein zweiter AVR mit der selben 
Software sinvoll, welcher von der Hardware überprüft wird.

-> Beide Avr´s werden per internen Watchdog überwacht. Eine externe 
Schaltung überwacht den ersten AVR, wenn dieser nicht mehr läuft wird 
auf den 2ten geschaltet.

von Hondo (Gast)


Lesenswert?

Man sollte sich angewoehnen ohne Watchdog zu arbeiten. Mit einem 
Watchdog kann man Programmfehler kaschieren. Dh eine Funktionalitaet die 
ausgefuehrt werden sollte wird nicht ausgefuehrt.
Mit einem Watchdog kasnn man auch schludriges EMV Design kaschieren. 
Wenn die Bedingungen denn so sind, dass man die externe Einwirkung nicht 
abschaetzen kann, die EMV Massnahmen ja ein Limit haben muessen, dann 
kann man den Watchdog einsetzen. Man sollte aber auch pruefen, ob das 
Programm nachher auch richtig weiterlaeuft. zB die EMV Einwirkung mit 
einem OnBoard Taster simulieren.
Eine Wetterstation als Geraet ohne kabelgebundene 
Kommunikationsanbindung sollte allerdings ohne Watchdog laufen koennen.

von Tbd (ids2001)


Lesenswert?

OK Danke Leute für die Antworten.

Ich habe mich da ursprünglich falsch ausgedrückt. Meinte eh den internen 
WTG.

Werde daher das ganze über den internen WTG implementieren.

Schönes Wochenende.
lg
Dieter


PS: Wenn ich nachträglich alle WTG Programmzeilen auskommentieren würde, 
dann wären die WTG Funktionen vom Arduino wieder entfernt? Dauerhaft 
vorhanden kann da eh nichts bleiben oder? ( Grund: ich teste meine 
Hardware auf einem Arduino, der später nicht in die Schaltung kommt 
sondern hier nur als Labor - Testzwecke dient.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

>Um nun sicherzugehen, dass der Arduino neu gestartet wird, falls er sich
>in einer Schleife mal verirrt hat, brauche ich einen WTG

Um sicherzustellen, dass eine Schleife niemals verrent baut man da einen 
Zähler ein und macht einen "Not-Exit" !!

Zudem sollte es im Programm niemals (bis auf oben beschriebene 
abgesicherte) eine Schleife geben, außer die der Main.

von Bronco (Gast)


Lesenswert?

Hondo schrieb:
> Man sollte sich angewoehnen ohne Watchdog zu arbeiten. Mit einem
> Watchdog kann man Programmfehler kaschieren. Dh eine Funktionalitaet die
> ausgefuehrt werden sollte wird nicht ausgefuehrt.

Kommt drauf an, wieviel Wert auf Verfügbarkeit gelegt wird. Ein 
LKW-Motorsteuergerät kann nicht einfach abschalten und auf Debugging 
warten, da muß ganz schnell wieder ein fahrfähiger Zustand her.
Ich selber pflege das "Reset durch Watchdog"-Flag mitzuloggen und darauf 
zu achten, daß es nie auftritt.


Dieter Sch schrieb:
> Als Hardware Watchdog hätte ich mir den MAX6369 vorgestellt.

Einen externen Watchdog brauchst Du vorallem bei sicherheitsrelevanten 
Anwendung, wo ein Software-Fehler eine Gefahr erzeugen kann. Dann muß 
ein externer Baustein den Microcontroller überwachen und ggf. die 
Endstufen kontrolliert abschalten.
Für Deine Anwendung dürfte der interne Watchdog des AVR völlig 
ausreichen.

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.