Cómo Raspbian detecta bajo voltaje

16

¿Cómo sabe el Pi que tiene poca potencia y muestra el rayo de luz?

Como la mayoría de nosotros sabemos, si usa una fuente de alimentación defectuosa, recibe el rayo que le dice que tiene poca potencia.

Me di cuenta de que cuando ejecuto mi Pi con batería, los últimos 15 minutos más o menos antes de que el Pi comience a reiniciarse, el rayo comienza a aparecer y finalmente permanece allí hasta que se reinicia, lo que tiene sentido porque el voltaje de mi batería está cayendo como está. agotado.

Esto me hizo pensar que podría usar esto para hacer un programa que apague el Pi cuando detecte subtensión constante. Sé que antes de que esto sucediera sería aún mejor, pero eso no me preocupa.

¿Hay un comando para el voltaje como sudo vcgenmd measure_temppara la temperatura para saber cuál es el voltaje? Si no es así, ¿cómo sabe el Pi cuándo tiene poca potencia?

EDITAR : Esto no es un duplicado porque la otra pregunta sugiere que necesita hardware externo. Estoy señalando que esto no es estrictamente necesario.

NULO
fuente

Respuestas:

4

Algunos modelos Pi tienen un chip integrado que detecta un bajo voltaje. Esto se utiliza para controlar el LED de alimentación en algunos modelos Pi.

Modelos A +, B +, Pi2B

El LED rojo de alimentación está conectado al GPIO 35. Puede monitorear el GPIO para verificar si hay una condición de bajo voltaje (menos de 4.65V).

Supervisión

Para monitorear el GPIO necesitaría leer su valor. Si el valor normal (buen estado de energía) es alto (1), entonces se indicará subtensión cuando se lee bajo (0). El GPIO volverá a su estado normal si se borra la condición de subtensión. Por lo tanto, necesitaría leer el GPIO con frecuencia para detectar condiciones transitorias.

joan
fuente
Sin embargo, ¿cómo podría monitorear eso ... GPIO es un pin digital correcto?
NULL
@NULL respuesta editada.
joan
18

Si desea hacerlo con un script de shell, aquí hay una solución que funciona en Pi 1, 2 y 3 (no probado en cero). Con el comando:

/opt/vc/bin/vcgencmd get_throttled

Si la respuesta es:

throttled=0x0

Eres bueno con el voltaje suministrado y la temperatura del SoC.

Los bits en el número devuelto significan:

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

Referencia: Raspbian Jessie linux 4.4.9 Grave degradación del rendimiento .

Hay una lista más actualizada 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
fuente
Esto solo es cierto si la subtensión y el sobrecalentamiento son sinónimos o tienen algún tipo de relación conocida de modo que podamos decir que si el voltaje es demasiado bajo en 0,5 V, la temperatura del núcleo será ... pero ese no es el caso.
Ricitos de oro
Acabo de dar un ejemplo. El valor devuelto contiene varios bits que se establecen si: 1) el suministro no proporciona una entrada segura (que es lo que quiere el OP); 2) la frecuencia ARM se redujo debido a las altas temperaturas; 3) La sobretensión se apagó debido a temperaturas muy altas. El enlace que proporcioné descarta la duda.
zertyz
1
Entonces, ¿por qué no escribir eso en primer lugar? De todos modos, bienvenido, pero lea nuestra política con respecto a las respuestas sin información de solo enlace . Esto no es exactamente eso, aunque la información real en respuesta tampoco aborda la pregunta real. La idea es una respuesta completa en sí misma; cosas como "leer este enlace" pertenecen a los comentarios. Me doy cuenta de que no tiene la reputación suficiente para publicar comentarios sobre la pregunta, pero sería bueno si pasara unos minutos reestructurando esto ...
goldilocks
... Tenga en cuenta que no somos un foro de discusión, en el que la carne de un hilo está en publicaciones ocasionales ordenadas de vez en cuando. Si está haciendo una pregunta y alguien solicita más información, edítela en la pregunta , no la deje en un comentario de respuesta. Del mismo modo, si tiene una respuesta y alguien solicita aclaraciones, cualquier cosa que no esté explícitamente en la respuesta debe editarse en la respuesta y no solo dejarse en la pista de comentarios.
Ricitos de oro
1
Debería ser la respuesta aceptada.
Feriman
1

A continuación se explica cómo funcionan los circuitos de alimentación del Pi moderno (con un encabezado de 40 pines) Limitaciones de energía de Raspberry Pi .

El rayo está controlado por el núcleo, y AFAIK no hay una forma sencilla de acceder a él.

El estado de energía se puede detectar más fácilmente. Esto está directamente disponible a través del sistema en B + Pi2 /sys/class/leds/led1, y accesible a través de un programa en Pi3 /raspberrypi//a/60275/8697

Milliways
fuente