《树莓派实战秘籍》——1.9 技巧09解决电源问题-阿里云开发者社区

开发者社区> 异步社区> 正文

《树莓派实战秘籍》——1.9 技巧09解决电源问题

简介:
+关注继续查看

本节书摘来自异步社区《树莓派实战秘籍》一书中的第1章,第1.9节,作者: 【美】Ruth Suehle , Tom Callaway 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.9 技巧09解决电源问题

Pi并不需要很多功率,但这也表示它所要求的功率就是它所需要的功率,如果供电过多或不足,都会造成运行时的问题。

树莓派运行时需要一个5V(DC)电源,可以从专用的Micro USB B型端口(在主板上丝印标记为“Power”)供电,或者从GPIO扩展(主板上标记为“P1”)引脚(具体来说,5V引脚的位置是P1-02和P1-04)供电。

如果你有一个可以用于大部分Android手机的充电器,那么你也就同时有了一根Pi的电源线(对不起,iPhone的粉丝们),可以(但不是最好的情况,可能压根就不工作)将另一端直接插入计算机的USB端口而不是插入墙上的电源。而对于其他的项目,你会希望通过GPIO口获取电源,这就是说……

1.9.1 使用GPIO口供电Pi之前请三思
在你急着在GPIO引脚输入5V之前,请记住,你这样做的同时也已经绕过了硬件的输入保险丝,而保险丝放在这里是为了保护你的硬件不因恶意或愚蠢的行为受到损坏。

比如说想象一下,你认为你正在输入的是5V的电源,但实际上你通过GPIO口传输给树莓派的电压远远大于5V,这可能是因为你对你正在做的事情还没有完全搞清楚,或者这仅仅是一个意外。无论哪种原因,都将出现一阵魔法烟雾!并通过“魔术”,我们的意思是,“你的项目就像魔法师帽子中的兔子一样消失不见了”!

许多电源都做不到完全“干净”,这表示它可能标注为“5V”,但它实际的意思是“高于或低于5V”。甚至即使它只是尖峰高于5V,但你正在做的也绕过了瞬态电压抑制(TVS,transient-voltage-suppression)二极管!

这个二极管通常是用来保护树莓派不受那些意外的尖峰电压损害(当电压超过雪崩击穿电位时它会分流掉多余的电流),但你刚刚绕过了它,然后出现的就只能是魔法烟雾了。

最后,但并不是最重要的一点,你需要输出调节后的电压到GPIO口,而大多数电源适配器并不能输出调节后的电压。这意味着你需要在GPIO引脚和电源适配器之间搭建一个稳压电路。

出于以上所有这些原因,我们强烈建议你只从Micro USB B型端口处供电,除非你有一个真正的绝佳理由可以不这么做。

1.9.2 不要通过USB倒灌电流
技巧08中解释了为何会有一些USB集线器会通过连接线倒灌电流,这实际上可以给树莓派部分供电,但不要这样做。

USB集线器不应该倒灌电流,在任何层次的真正意思上这都是不规范且不可靠的电源。它可以(而且很可能会)导致不可预知的后果,包括(但不限于)意外的程序故障、内核错误,以及SD卡损坏。

我还是想给Pi倒灌电流!

OK,很好。有一个合理而可靠的方法可以做到这一点。在澳大利亚有一些勤劳的黑客们有一个自制的USB 3.0集线器,就是为了给树莓派提供倒灌电流这个明确目的而制作的。

具体来说,他们的集线器的连接端口将传输超过1000mA(1A)的电流给树莓派用于正常操作所需,通过连接在USB集线器上就足够给Pi供电了(不再需要单独的电源给Pi供电)。你可以看看这个地址:

http://www.buyraspberrypi.com.au/shop/4-port-usb-3-0-powered-usbhub/

使用这个集线器的唯一缺点是它仅仅只有一个2A的电源,1A用来给树莓派供电,留下不到1A(集线器自身需要用去一些)的电流给连接的设备,没有给太多的高功率设备(0.5A,最大的5单位负载)留下很大的空间。
1.9.3 从GPIO口安全地获取电源
需要注意的是,使用树莓派的GPIO引脚为连接的设备提供电源,与输送5V给GPIO口来为树莓派供电,这两者的差别相当大。本书中的许多技巧都需要从GPIO引脚中获取电流,这样做是安全的。

除了5V引脚(P1-02和P1-04)之外,还有3.3V引脚(P1-01和P1-17)。3.3V引脚可以最大允许的电流消耗是50mA,而5V引脚可以最大允许的电流消耗在树莓派A型和B型之间是可变的,5V引脚最大允许的电流消耗值可以通过用USB输入电流(标称1A)减去主板其他部分消耗的电流值来计算。

A型主板需要消耗500mA的电流,因此5V引脚的最大电流消耗是500mA。而B型主板,因为其有更高的700mA电流消耗,因此5V引脚的最高电流消耗是300mA。

1.9.4 解决电源问题
现在,你已经重新审视了你的电源选项,你必须清楚当事情出错时应该如何去做。

当功率太低(或电流太低)时,树莓派开始采取行动……嗯,技术术语是“weird1”。USB设备可能无法识别、也可能一会识别一会不识别,软件无法可靠运行,猫和狗碰到了一起,群体性的歇斯底里!

如果事情仅仅是“怪异”,那么有合理的理由怀疑是动力不足。即使你认为你已经做了所有正确的事情,但这种现象发生可能还有两个原因:不合格的电源和错误的Micro USB线。

1.9.5 获得更好的电源
这和在1.9.1节“使用GPIO口供电Pi之前请三思”中所提到的电源尖峰问题刚好相反,但它的意思是,“当一切准备就绪,你完美地低哼着Doctor Who”2的主题曲安抚我杂乱的心灵,在我最好的一天里,我也许会输送5V电源3”。这句话并不适合插座上的这些电源,它们只是输出“5V”而已(或者至少在理论上是这样)。

可悲的是,这却是一个常见的场景。许多廉价的Micro USB手机充电器便宜得自有其道理:它们不能很好的工作(你有没有在一元店中购买呢?这可能暗示它就是个廉价货)。

当将它用在你的手机上,这没有什么大不了的,它只是需要更长的时间来为你的手机充电而已,但树莓派在得不到所需的功率时可没有这么简单。

避免上述情况的最好方法就是去购买经过验证的可靠电源。例如,Adafruit销售的一款不错的5V 1A电源4,其实际输出电压是5.25V,从而弥补了电源和树莓派之间线缆电阻产生的任何压降。

1.9.6 获得更好的Micro USB线
你的Micro USB线质量欠佳的可能性不会超过电源,但它确实也会发生。线缆在导电时会有一些电阻,这在通常都是无关紧要的。

例如,在5Ω和50mA电流的情况下,整个线缆的压降大约为250mV,大部分设备在这种情况下都没有问题,因为USB规范要求它们应该可以容忍这种程度的压降。然而有一些类似树莓派这样的设备,它们需要更多的功率(尤其是将一些耗电的USB设备直接插入到树莓派的USB端口时)。

正如本技巧前面所提到的,B型树莓派需要消耗700mA的峰值电流,因此如果你的USB线有5Ω的电阻,这将造成3.5V的压降。对于Pi来说,这个压降太大了!

好消息是大多数的USB线的电阻都没有5Ω,真正好的产品的电阻将会非常接近于0。我们使用的来自最新的手机的线缆还没有发现过真正有问题的,而这似乎也是大多数人这条线的来源。

如果你需要购买一条USB Micro B型线缆,Mediabridge的“USB充电线”经测试电阻很低,可以在亚马逊买到。Adafruit的USB Micro B型线缆在B型树莓派的峰值电流下也工作得很好。

为什么USB设备会导致Pi重启?

热插拔(在插入USB设备时,Pi已经在运行)往往会导致Pi重新启动。插入设备会导致一个电源尖峰,从而造成Pi的压降,而这最终导致了重启。

版本1的树莓派主板在USB端口上有两个140mA的多晶硅熔丝可以防止这种现象但会导致其他问题,因此版本2的主板将之去掉了。如果你确定预期有热插拔设备的需要,可以通过使用带电源的USB集线器来防止重启。
1.9.7 测试你的线缆电阻
如果你有一个便宜的电源,那么几乎可以确定其有问题。但如果你认为你的线缆有问题,从而想测试一下它的电阻。你可以将这根线缆拆开,或者可以使用一个可以测量的Micro USB B型设备(上面有接地的引脚的设备即可)。

USB A型连接器比较大,足以让你能直接量到其接地引脚(接地引脚是引脚4,如果你将连接器的中空面朝上,从上往下看线缆的话,它是左边的第一脚)。测量电阻时将校准过的万用表打到最低的欧姆档上,然后测量Micro USB B型连接器连接的设备的地到A型连接器的地之间的电阻,用这种方法测量线缆电阻是一个不错的主意5。

你还可以使用一个小小的硬件工具来简化上述测量工作。Bitwizard B.V. 为此目的制作了一个USB探针6。

有些人甚至通过焊接一个低电阻的线到电源和Micro USB B型连接器来制作自己的线缆。如果你只是想尝试制作线缆,那么这不失是一个很干净的黑客工作,不过并非真的必要。

现在的大部分USB线似乎并没有严重的电阻问题。如果它能迅速而可靠地给一个Micro USB B型接口的手机充电,那么它很可能对树莓派也足够好。即使不是,一个新的线缆也通常是价格便宜、容易获取的。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
运维调试笔记:python中pip下载速度慢问题解决
在python开发时,我们经常使用pip来安装相应的python库,但是国外的源下载速度实在太慢,而且经常出现下载后安装出错问题。
1545 0
阿里实战集群拉取私有镜像权限问题
工作中无意同事把 namespace修改了导致,dock pull 无法拉取,联系技术支持也没有能修复到以前,只好添加新的imagePullSecrets参数进行支持
324 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4485 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7758 0
互联网上云实践:场景化问题、解决方案和实战案例
为保证云栖大会质量,专场出品人都会做多方面的调研与内容准备,每场内容的设置都会充分考量当地参会者的实际需求,所以每场内容分享都有不同的侧重点。很多报名的朋友们希望能对日程、讲师以及参会建议能够有进一步的解读,云栖社区特别采访了分论坛出品人,为我们分享对于该场内容策划的思路,可以带来哪些有益的帮助。
4866 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
11939
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载