Como Raspbian Detecta Sob Tensão

16

Como o Pi sabe que está com pouca potência e mostra o raio de iluminação?

Como muitos de nós sabemos, se você usa uma fonte de alimentação ruim, recebe o raio informando que está com pouca potência.

Notei que, quando executo meu Pi com bateria, nos últimos 15 minutos ou mais antes de o Pi começar a reiniciar, o raio começa a aparecer e, eventualmente, permanece lá até a reinicialização, o que faz sentido porque a tensão da bateria está diminuindo. drenado.

Isso me fez pensar que eu poderia usar isso para criar um programa que desliga o Pi quando ele detecta sub-tensão constante. Eu sei que antes que isso acontecesse seria ainda melhor, mas não estou preocupado com isso.

Existe um comando para a tensão, como sudo vcgenmd measure_tempa temperatura, para saber qual é a tensão? Se não, como o Pi sabe quando está com pouca potência?

EDIT : Esta não é uma duplicata porque a outra pergunta sugere que você precisa de hardware externo. Estou apontando que isso não é estritamente necessário.

NULO
fonte
Possível duplicata de É possível detectar a tensão de entrada usando apenas software?
precisa saber é o seguinte

Respostas:

4

Alguns modelos Pi possuem um chip integrado que detecta uma baixa voltagem. Isso é usado para acionar o LED de energia em alguns modelos Pi.

Modelos A +, B +, Pi2B

O LED de energia vermelho está conectado ao GPIO 35. Você pode monitorar o GPIO para verificar se há uma condição de subtensão (menor que 4,65V).

Monitoramento

Para monitorar o GPIO, você precisa ler seu valor. Se o valor normal (bom estado de energia) for alto (1), a subtensão será indicada quando ler baixo (0). O GPIO retornará ao seu estado normal se a condição de subtensão for limpa. Portanto, você precisaria ler o GPIO frequentemente para detectar condições transitórias.

joan
fonte
Como eu monitoraria isso ... GPIO é um alfinete digital, certo?
NULL
Resposta editada @NULL.
joana
18

Se você quiser fazer isso com um script de shell, aqui está uma solução que funciona nos Pi 1, 2 e 3 (não testados em zero). Com o comando:

/opt/vc/bin/vcgencmd get_throttled

Se a resposta for:

throttled=0x0

Você é bom com a tensão fornecida e a temperatura SoC.

Os bits no número retornado significam:

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

Referência: Raspbian Jessie linux 4.4.9 Degradação severa de desempenho .

Existe uma lista mais atualizada 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
fonte
Isso só é verdade se subtensão e superaquecimento forem sinônimos ou tiverem algum tipo de relação conhecida, de modo que possamos dizer que se a tensão for muito baixa em 0,5 V, a temperatura do núcleo será ... mas esse não é o caso.
goldilocks
Eu apenas forneci um exemplo. O valor retornado contém vários bits que são definidos se: 1) o fornecimento não fornecer uma entrada segura (que é o que o OP deseja); 2) a frequência do braço foi reduzida devido a altas temperaturas; 3) A sobretensão foi desligada devido a temperaturas muito altas. O link que eu forneci descarta a dúvida.
Zertyz
11
Então, por que não escrever isso em primeiro lugar? De qualquer forma, seja bem-vindo - mas leia nossa política sobre respostas somente para links sem informação . Não é bem isso, embora as informações reais em resposta também não abordem a questão real. A ideia é que uma resposta é completa em si mesma; coisas como "leia este link" pertencem aos comentários. Sei que você não tem reputação suficiente para postar comentários sobre a questão, mas seria bom se você passou alguns minutos reestruturação isso ...
goldilocks
... Observe que não somos um fórum de discussão, no qual a carne de um fio é em posts informais solicitados ocasionalmente. Se você estiver fazendo uma pergunta e alguém solicitar mais informações, edite-a na pergunta , não deixe em um comentário de resposta. Da mesma forma, se você tiver uma resposta e alguém pedir esclarecimentos, qualquer coisa que ainda não esteja explicitamente na resposta deve ser editada na resposta e não apenas deixada na trilha de comentários.
goldilocks
11
Deve ser a resposta aceita.
Feriman 24/10/19
1

A seguir, explica como o circuito de energia do Pi moderno (com cabeçalho de 40 pinos) funciona . Limitações de energia do Raspberry Pi .

O raio é controlado pelo kernel, e o AFAIK não existe uma maneira simples de acessá-lo.

O estado de energia pode ser detectado mais facilmente. Está diretamente disponível no sistema em B + Pi2 /sys/class/leds/led1e acessível através de um programa no Pi3 https://raspberrypi.stackexchange.com/a/60275/8697

Milliways
fonte