Pi如何知道它的功率不足并显示照明螺栓?

我们大多数人都知道,如果您使用了错误的电源,则会出现闪电信号,告诉您功率不足。

我注意到,用电池为Pi供电时,Pi开始重新启动前的最后15分钟左右,闪电开始出现,并一直停留到重新启动为止,这很有意义,因为我的电池电压是排水时掉落。

这使我想到我可以使用它来制作一个程序,当它检测到恒定的欠压时将Pi断开。我知道在发生这种情况之前会更好,但我对此并不担心。

是否有诸如sudo vcgenmd measure_temp之类的电压命令让温度知道电压是多少?如果不是,Pi怎么知道什么时候供电不足?

编辑:这不是重复的,因为另一个问题表明您需要外部硬件。我指出这并非绝对必要。

评论

是否可能仅使用软件检测输入电压?

#1 楼

某些Pi型号带有板载芯片,可检测低电压。用于在某些Pi型号上驱动电源LED。

A +,B +,Pi2B型号

红色电源LED连接到GPIO35。您可以监控GPIO检查是否处于欠压状态(小于4.65V)。

监视

要监视GPIO,您需要读取其值。如果正常(电源状态良好)的值为高(1),则读数为低(0)时将指示欠压。如果欠压条件被清除,则GPIO将返回其正常状态。因此,您需要经常读取GPIO以检测瞬态条件。

评论


我将如何监控……GPIO是正确的数字引脚?

– NULL
17年1月18日在20:02

@NULL编辑答案。

–琼
17年1月18日在20:08

#2 楼

如果您想使用Shell脚本来执行此操作,那么以下解决方案适用于Pi 1、2和3(未经零测试)。使用命令:
/opt/vc/bin/vcgencmd get_throttled

如果答案是:
throttled=0x0

您提供的电压和SoC温度都很好。
返回数字上的位表示:
Bit Hex value   Meaning
0          1    Under-voltage detected
1          2    Arm frequency capped
2          4    Currently throttled
3          8    Soft temperature limit active
16     10000    Under-voltage has occurred
17     20000    Arm frequency capping has occurred
18     40000    Throttling has occurred
19     80000    Soft temperature limit has occurred

值0x50000表示16和18-从启动时刻到现在,在某些时候发生欠压以及发生了节流现象。
参考:
vcgencmd文档。

评论


只有在欠压和过热是同义词或具有某种已知关系的情况下才是正确的,这样我们可以说,如果电压过低0.5 V,则核心温度将是...但事实并非如此。

–金锁♦
18年11月30日20:00

我只是提供了一个例子。返回值包含在以下情况下设置的几位:1)电源未提供安全输入(这是OP想要的); 2)由于高温,ARM频率降低; 3)由于温度过高,过电压被关闭。我提供的链接消除了怀疑。

–zertyz
18年11月30日在20:45



那为什么不首先写呢?无论如何,欢迎您,但是请阅读我们有关无信息的仅链接答案的政策。尽管答案中的实际信息也没有解决真正的问题,但这还不完全是。这个想法本身就是一个完整的答案。诸如“阅读此链接”之类的内容属于注释。我知道您没有足够的声誉来发表对此问题的评论,但是如果您花了几分钟时间对此进行了重组,那将是很好的...

–金锁♦
18-11-30在21:12



...请注意,我们不是讨论论坛,在这里,话题的实质是随意地来回排序的。如果您要提出问题,而有人要求提供更多信息,请将其编辑为问题,不要只是将其留在回复评论中。同样,如果您有答案,并且有人要求澄清,则答案中尚未明确定义的所有内容都应编辑为答案,而不仅仅是留在评论记录中。

–金锁♦
18年11月30日在21:18



它应该是公认的答案。

–费里曼
19-10-24在8:31

#3 楼

下面说明了现代Pi(具有40针接头)的电源电路如何工作的Raspberry Pi电源限制。

雷电是由内核控制的,并且AFAIK没有简单的方法来访问它。

可以更容易地检测电源状态。这可以通过B + Pi2 /sys/class/leds/led1中的系统直接获得,也可以通过Pi3上的程序进行访问https://raspberrypi.stackexchange.com/a/60275/8697