Jak Raspbian wykrywa pod napięciem

16

Skąd Pi wie, że jest niedociążony i pokazać śrubę oświetleniową?

Jak większość z nas wie, jeśli użyjesz złego zasilacza, otrzymasz błyskawicę, która mówi, że masz za mało mocy.

Zauważyłem, że kiedy uruchamiam Pi na baterii, ostatnie 15 minut przed tym, zanim Pi zacznie się ponownie uruchamiać, piorun zaczyna się pojawiać i ostatecznie pozostaje tam aż do ponownego uruchomienia, co ma sens, ponieważ napięcie mojego akumulatora spada osuszony.

To sprawiło, że pomyślałem, że mogę to wykorzystać do stworzenia programu, który wyłącza Pi po wykryciu stałego zbyt niskiego napięcia. Wiem, że zanim to się stanie, byłoby jeszcze lepiej, ale nie martwię się tym.

Czy istnieje polecenie dla napięcia, takie jak sudo vcgenmd measure_temptemperatura, aby wiedzieć, jakie jest napięcie? Jeśli nie, to skąd Pi wie, kiedy jest słaba?

EDYCJA : To nie jest duplikat, ponieważ drugie pytanie sugeruje, że potrzebujesz zewnętrznego sprzętu. Wskazuję, że nie jest to absolutnie konieczne.

ZERO
źródło

Odpowiedzi:

4

Niektóre modele Pi mają wbudowany układ, który wykrywa niskie napięcie. Służy do napędzania diody LED zasilania w niektórych modelach Pi.

Modele A +, B +, Pi2B

Czerwona dioda LED zasilania jest podłączona do GPIO 35. Możesz monitorować GPIO, aby sprawdzić, czy nie występuje napięcie (poniżej 4,65 V).

Monitorowanie

Aby monitorować GPIO, musisz odczytać jego wartość. Jeśli wartość normalna (dobry stan mocy) jest wysoka (1), wówczas niskie napięcie zostanie wskazane, gdy będzie wskazywać niski (0). GPIO powróci do normalnego stanu, jeśli stan podnapięcia zostanie usunięty. Dlatego trzeba często czytać GPIO, aby wykryć warunki przejściowe.

joan
źródło
Jak mam to monitorować ... GPIO to cyfrowy pin, prawda?
NULL
@NULL zredagował odpowiedź.
joan
19

Jeśli chcesz to zrobić za pomocą skryptu powłoki, oto rozwiązanie, które działa na Pi 1, 2 i 3 (nie testowane na zero). Za pomocą polecenia:

/opt/vc/bin/vcgencmd get_throttled

Jeśli odpowiedź brzmi:

throttled=0x0

Jesteś dobry z dostarczonym napięciem i temperaturą SoC.

Bity na zwróconej liczbie oznaczają:

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

Odniesienie: Raspbian Jessie linux 4.4.9 Poważny spadek wydajności .

Istnieje bardziej aktualna lista 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
źródło
Jest to prawdą tylko wtedy, gdy podnapięcie i przegrzanie są synonimami lub mają jakąś znaną zależność, dzięki czemu możemy powiedzieć, że jeśli napięcie jest zbyt niskie o 0,5 V, temperatura rdzenia będzie ... ale tak nie jest.
Złotowłosa
Właśnie podałem przykład. Zwrócona wartość zawiera kilka bitów, które są ustawione, jeśli: 1) zasilanie nie zapewnia bezpiecznego wejścia (czego chce OP); 2) Częstotliwość ARM została zmniejszona z powodu wysokich temperatur; 3) Przepięcie zostało wyłączone z powodu bardzo wysokich temperatur. Podany przeze mnie link odrzuca wątpliwości.
zertyz
1
Dlaczego więc nie napisać tego w pierwszej kolejności? W każdym razie, witamy - ale prosimy o zapoznanie się z naszą polityką dotyczącą pozbawionych informacji odpowiedzi tylko z linkami . To nie do końca tak, chociaż rzeczywiste informacje w odpowiedzi również nie dotyczą prawdziwego pytania. Pomysł jest odpowiedzią kompletną samą w sobie; rzeczy takie jak „przeczytaj ten link” należą do komentarzy. Zdaję sobie sprawę, że nie masz wystarczającej reputacji, aby opublikować komentarz do pytania, ale byłoby miło, gdybyś poświęcił kilka minut na restrukturyzację tego ...
goldilocks
... Uwaga jesteśmy nie forum dyskusyjne, w którym mięso wątku jest dorywczo tyłu i czas naprzód rozkazał posty. Jeśli zadajesz pytanie, a ktoś prosi o więcej informacji, edytuj je w pytaniu , nie zostawiaj go tylko w komentarzu do odpowiedzi. Podobnie, jeśli masz odpowiedź i ktoś prosi o wyjaśnienia, wszystko, co nie jest już wyraźnie zawarte w odpowiedzi, powinno być edytowane w odpowiedzi, a nie tylko pozostawione w ścieżce komentarza.
złotowłosy
1
To powinna być zaakceptowana odpowiedź.
Feriman
1

Poniżej wyjaśniono, w jaki sposób obwody mocy współczesnego Pi (z 40-pinową listwą) działają Ograniczenia mocy Raspberry Pi .

Piorun jest kontrolowany przez jądro, a AFAIK nie ma prostego sposobu, aby uzyskać do niego dostęp.

Stan zasilania można łatwiej wykryć. Jest to bezpośrednio dostępne przez system w B + Pi2 /sys/class/leds/led1i dostępne przez program na Pi3 https://raspberrypi.stackexchange.com/a/60275/8697

Milliways
źródło