Wie Raspbian Unterspannung erkennt

16

Woher weiß der Pi, dass er zu schwach ist, und zeigt den Beleuchtungsbolzen?

Wie die meisten von uns wissen, wird bei Verwendung eines schlechten Netzteils durch den Blitz angezeigt, dass Sie unterversorgt sind.

Ich habe festgestellt, dass, wenn ich meinen Pi in den letzten 15 Minuten vor dem Neustart des Pi mit Batterie betreibe, der Blitz erscheint und schließlich bis zum Neustart dort bleibt, was sinnvoll ist, da meine Batteriespannung so wie sie ist abfällt abgelassen.

Dies brachte mich zu dem Gedanken, dass ich damit ein Programm erstellen könnte, das den Pi ausschaltet, wenn er eine konstante Unterspannung erkennt. Ich weiß, bevor dies geschah, wäre es noch besser, aber ich mache mir darüber keine Sorgen.

Gibt es einen Befehl für die Spannung wie sudo vcgenmd measure_tempfür die Temperatur, um zu wissen, wie hoch die Spannung ist? Wenn nicht, woher weiß der Pi, wann er unterlastet ist?

BEARBEITEN : Dies ist kein Duplikat, da die andere Frage darauf hinweist, dass Sie externe Hardware benötigen. Ich weise darauf hin, dass dies nicht unbedingt notwendig ist.

NULL
quelle

Antworten:

4

Einige Pi-Modelle verfügen über einen integrierten Chip, der eine niedrige Spannung erkennt. Dies wird verwendet, um die Power-LED bei einigen Pi-Modellen anzusteuern.

Modelle A +, B +, Pi2B

Die rote Power-LED ist an GPIO 35 angeschlossen. Sie können den GPIO überwachen, um festzustellen, ob eine Unterspannung vorliegt (weniger als 4,65 V).

Überwachung

Um das GPIO zu überwachen, müssten Sie seinen Wert lesen. Wenn der normale Wert (guter Leistungszustand) hoch ist (1), wird eine Unterspannung angezeigt, wenn niedrig (0) angezeigt wird. Der GPIO kehrt in seinen normalen Zustand zurück, wenn der Unterspannungszustand gelöscht ist. Daher müssten Sie den GPIO häufig lesen, um vorübergehende Zustände zu erkennen.

joan
quelle
Wie würde ich das überwachen ... GPIO ist ein digitaler Pin, oder?
NULL
@NULL bearbeitete Antwort.
Joan
17

Wenn Sie dies mit einem Shell-Skript tun möchten, finden Sie hier eine Lösung, die auf Pi 1, 2 und 3 funktioniert (nicht in Null getestet). Mit dem Befehl:

/opt/vc/bin/vcgencmd get_throttled

Wenn die Antwort lautet:

throttled=0x0

Sie sind gut mit der gelieferten Spannung und SoC-Temperatur.

Die Bits auf der zurückgegebenen Nummer bedeuten:

0: under-voltage
1: arm frequency capped
2: currently throttled 
16: under-voltage has occurred
17: arm frequency capped has occurred
18: throttling has occurred

Referenz: Raspbian Jessie Linux 4.4.9 Schwerer Leistungsabfall .

Es gibt eine aktuellere Liste https://github.com/raspberrypi/documentation/blob/JamesH65-patch-vcgencmd-vcdbg-docs/raspbian/applications/vcgencmd.md

0: under-voltage
1: arm frequency capped
2: currently throttled
3: Soft Temp limit reached  3
16: under-voltage has occurred
17: arm frequency capped has occurred
18: throttling has occurred
19: Soft Temp limit has occurred
zertyz
quelle
Dies gilt nur, wenn Unterspannung und Überhitzung synonym sind oder eine bekannte Beziehung haben, so dass wir sagen können, wenn die Spannung um 0,5 V zu niedrig ist, wird die Kerntemperatur ... aber das ist nicht der Fall.
Goldlöckchen
Ich habe nur ein Beispiel geliefert. Der zurückgegebene Wert enthält mehrere Bits, die gesetzt werden, wenn: 1) die Versorgung keine sichere Eingabe liefert (was das OP wünscht); 2) Die ARM-Frequenz wurde aufgrund hoher Temperaturen verringert. 3) Die Überspannung wurde aufgrund sehr hoher Temperaturen abgeschaltet. Der Link, den ich bereitgestellt habe, weist den Zweifel zurück.
zertyz
1
Warum schreiben Sie das dann nicht gleich? Wie auch immer, willkommen - aber bitte lesen Sie unsere Richtlinien bezüglich informationsfreier Nur-Link-Antworten . Dies ist nicht ganz das, obwohl die tatsächlichen Informationen in der Antwort auch nicht die eigentliche Frage ansprechen. Die Idee ist, dass eine Antwort an sich vollständig ist; Sachen wie "read this link" gehören in Kommentare. Mir ist klar, dass Sie nicht genug Ruf haben, um Kommentare zu der Frage zu
schreiben
... Beachten Sie, dass wir kein Diskussionsforum sind, in dem das Fleisch eines Threads in gelegentlich hin und her geordneten Posts ist. Wenn Sie eine Frage stellen und jemand nach weiteren Informationen fragt, bearbeiten Sie diese in der Frage und hinterlassen Sie sie nicht einfach in einem Antwortkommentar. Wenn Sie eine Antwort haben und jemand um Klarstellung bittet, sollte alles, was nicht bereits explizit in der Antwort enthalten ist, in der Antwort bearbeitet und nicht nur im Kommentarpfad belassen werden.
Goldlöckchen
1
Es sollte die akzeptierte Antwort sein.
Feriman
1

Im Folgenden wird erläutert, wie die Leistungsschaltung des modernen Pi (mit 40-poligem Header) funktioniert. Raspberry Pi Power Limitations .

Der Blitz wird vom Kernel gesteuert, und AFAIK gibt es keine einfache Möglichkeit, darauf zuzugreifen.

Der Energiezustand kann leichter erkannt werden. Dies ist direkt über das System in B + Pi2 verfügbar /sys/class/leds/led1und über ein Programm auf Pi3 /raspberrypi//a/60275/8697 zugänglich

Milliways
quelle