Page 1 of 1
Verwendung des Watchdog (Connect)
Posted: 27 Jul 2018, 11:14
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
Re: Verwendung des Watchdog (Connect)
Posted: 27 Jul 2018, 13:14
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!
Re: Verwendung des Watchdog (Connect)
Posted: 27 Jul 2018, 15:38
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.
Re: Verwendung des Watchdog (Connect)
Posted: 30 Jul 2018, 13:19
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