Verwendung des Watchdog (Connect)

Rund um die Hardware des Revolution Pi
Post Reply
Thomas.W
Posts: 9
Joined: 08 May 2017, 10:22

Verwendung des Watchdog (Connect)

Post by Thomas.W »

Hallo,

ich möchte gerne den Hardware Watchdog verwenden, da unser Connect als Gateway autark arbeitet. Wenn ich die Funktion des Watchdogs richtig verstanden habe, muss meine Anwendung den Watchdog mindestens alle 60sec triggern, ansonsten startet der den Connect durch.

In der Doku steht nicht genau, wie ich das anstelle (oder ich habe es überlesen). Ich gehe davon aus es geht über das Prozessabbild , richtig?
Habt' ihr dazu zufällig ein Beispiel?

Grüße,
Thomas
Wulf
Posts: 25
Joined: 01 Nov 2017, 11:49

Re: Verwendung des Watchdog (Connect)

Post by Wulf »

Ich hab noch keinen Connect da.
Hoffentlich gibt es einen Kernel-Treiber.
Dann kannst du "apt install watchdog" benutzen.

Achtung: Es gibt schon auf dem core3 irgendeinen Watchdog. Pass auf, dass du die nicht verwechselst!
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41

Re: Verwendung des Watchdog (Connect)

Post by volker »

Vergiss bitte, was Wulf da geschrieben hat. Das hat miteinander rein gar nichts zu tun. Beim Connect haben wir einen echten Hardwarewatchdog eingebaut. So etwas kann und darf man gar nicht über irgendwelche Software konfigurieren können, sonst wäre es ja von der >Funktion genau dieser Software abhängig. Der hardwarewatchdog arbeitet autark, weil es ein eigener kleiner Chip ist, der einen Reseteingang hat. Dieser Reseteingang muss zyklisch getoggelt werden, sonst feuert der Watchdog nach ca. 60 Sekunden und gibt ein Signal auf seinen Triggerausgang. Dieser Triggerausgang ist direkt mit dem Enable des 24 auf 5 V Reglers verbunden und schaltet schlicht dem RevPi den Saft ab. Es resultiert also ein echter Kaltstart des kompletten Systems. Der resteeingang des WD Chips ist auf ein GPIO geschaltet, den wir zusätzlich mit piControl auch ins prozessabbild gelegt haben. Du kannst also entweder aus Deiner Applikation diesen GPIO direkt toggeln oder aber du verwendest piControl-Aufrufe, um das Bit im PA zu toggeln.
Die Doku dazu ist eigentlich online als Tutorial. Ich habe grade gesehen, dass dort ein wenig Durcheinnander bei der Verlinkung passiert ist. Daher hier die entscheidende Tabelle, die die Bitcodierung des Ausgangsbytes "RevPiLED" im PA listet:
#define PICONTROL_LED_A1_GREEN 0x01
#define PICONTROL_LED_A1_RED 0x02
#define PICONTROL_LED_A2_GREEN 0x04
#define PICONTROL_LED_A2_RED 0x08
#define PICONTROL_LED_A3_GREEN 0x10 // RevPi Connect only
#define PICONTROL_LED_A3_RED 0x20 // RevPi Connect only
#define PICONTROL_X2_DOUT 0x40 // RevPi Connect only
#define PICONTROL_WD_RESET 0x80 // RevPi Connect only

PICONTROL_X2_DOUT steuert das Relais an und PICONTROL_WD_RESET ist das Bit, welches getoggelt werden muss.
Unser RevPi Motto: Don't just claim it - make it!
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: Verwendung des Watchdog (Connect)

Post by dirk »

Ab Stretch gibt es die Datei "/home/pi/connect/README". Dort wird unter anderem beschrieben, wie das Relais mit dem Watchdog konfiguriert werden kann.
In diesem Verzeichnis gibt es auch Beispiel Skripte für die Implementierung eines Watchdog Triggers.
Übrigens um den Watchdog Timer zurückzusetzen kannst du auch einfach den GPIO 42 toggeln.

Code: Select all

while true; do date; gpio toggle 42; echo -n 'gpio 42: '; gpio read 42; sleep 30; done
Post Reply