Jump to English manual firmware update manual
UPSPack v3 是在2020年9月发布的新一代树莓派UPS不间断电源扩展板的最新型号。根据以往v1和v2版本的迭代升级,v3版本是目前树莓派UPS供电最稳定的一种供电方案。
以下列出UPS v3版本和v2版本的产品差异:
功能特点 | RPi UPSPack V3版本 | RPi UPSPack V2版本 |
---|---|---|
输入接口 | TYPE-C接口(兼容最新Pi4的电源线) | Micro-USB接口(兼容Pi3及更老型号的Pi) |
最大输出电流 | 5V 3A | 5V 3A |
外部停电,Pi持续供电(不重启) | 支持 | 支持 |
硬件开停机开关 | 有 | 有 |
GPIO供电接口和UART、halt signal信号接口 | 有 | 有 |
锂电池电量统计 | 支持 | 支持 |
开机低压检测 | 支持 | 不支持 |
电源适配器异常检测(停电时刻检测) | 支持 | 支持 |
USB-A座输出电压值检测 | 支持 | 支持 |
电池耗尽前自动通知关机 | 支持 | 支持 |
停电后,程序自动开机 | 支持(无需人工干预,程序开机) | 不支持(需人工干预开机) |
停电后,UPS自动切换成休眠模式 | 支持 | 不支持 |
固件升级 | 支持 | 不支持 |
UPS与Pi的串口(UART)通讯: | ||
通讯设置 | 9600 bps 8N1 | 9600 bps 8N1 |
协议版本号 | V3.1(及更高版本) | V1.0 |
协议向下兼容性 | 兼容V2老版本的UPS通讯协议 | 兼容 |
UPS与Pi的单总线通讯(System halt signal) | ||
通讯IO口 | UPS主板的STA接口连接树莓派GPIO18(BCM 18) | UPS主板的STA接口连接树莓派GPIO18(BCM18) |
通讯协议 | 脉冲方式 | 电平方式 |
软件兼容性 | V3采用脉冲检测更为可靠(与V2版本软件不兼容) | 电平检测方式 |
以下是是UPS v3输出最大电流、续航时间、断电不重启、电池耗尽前安全关机和自动开机,几个方面来阐述UPS v3的性能和注意事项。
通过EBC-A10H对UPS v3进行电流极限测试。输出最大电流能足量达到:5V 3A。经过实际测试Pi4运行官方Raspbian系统时,正常的功耗是5V 1A左右,如插入摄像头和U盘等外设的情况下,功耗逐渐增大到5V 2A。所以采用UPS v3对Pi4 进行供电,是有较大的余量的。并且在输出3A的情况下。2.54排针接口也能保证5V以上的供电。用户需要注意5V和GND必须使用硅胶杜邦线。如采用普通杜邦线,在电流较大时,会引起较大线损,从而在Pi4上屏幕上观察到闪电的低压符号。
UPS v3板载电池接口为PH 2.0封装(兼容以往的老型号UPS主板),PCB板上有印刷正极、负极的标志。产品提供了3种不同容量的电池可供客户选择。客户亦可自行接入不同容量、额定电压为3.7V的锂聚合物电池,或者是3.7V 18650/21700/21650电池组。注意:输入UPS电池接口的电压范围必须是小于等于4.2V。(所有电池组必须是并联关系,不能把电芯串联)。不支持3.65v磷酸铁锂电池包。UPS v3 标准成品提供3种容量、不同体积的锂电池供客户选择:
型号 | 体积(长 x 宽 x 厚) |
---|---|
4000mAh(额定电压3.7V,电池内置保护板) | 70mm x 41mm x 9.5mm |
6500mAh(额定电压3.7V,电池内置保护板) | 116mm x 50mm x 8mm |
10000mAh(额定电压3.7V,电池内置保护板) | 115mm x 65mm x 9mm |
我们搭建了不同的应用组合,得到了如下的续航数据:
电池容量 | Pi4单机 | Pi4+官方7寸屏(DSI接口) | Pi4+3.5寸(GPIO) | Pi4+5寸(HDMI) | Pi+7寸(HDMI) |
---|---|---|---|---|---|
4000mAh | 5.5h | 2.5h | 4.0h | 3.3h | 2.0h |
6500mAh | 9.0h | 4.0h | 6.5h | 5.2h | 3.2h |
10000mAh | 14.5h | 6.0h | 10.0h | 8.5h | 5.0h |
测试方式:
- 以上所有数据单位为小时(hours)。
- 运行的系统为:2020-05-27-raspios-buster-full-armhf ,系统不做任何设置修改。系统后台只运行一个RPi_runtime_recoder.py进行时间统计。
- 3种容量的电池完全充满电量,然后接入树莓派后,利用程序进行时间记录。放电截至点为UPS让树莓派自动关机,通过log文件查看实际运行的时间。
- 下载、并运行 UPSPACK_V3/time_count/RPi_runtime_recoder.py 进行时间记录。当树莓派关机后,接入电源适配器读取程序目录下的time_log.txt进行续航时间的查看。
断电不重启是UPS v3的基本功能。以下演示的是Pi4和7寸HDMI屏幕都由UPS v3进行供电,人工拔掉输入的TYPE-C供电线,用来模拟外部停电的情况。Pi4和HDMI屏幕都将维持稳定的工作。
当UPS 单独靠电池供电时,电池会有耗尽的情况。所以我们设计了一系列自动化开机和关机的策略,以使得UPS能工作在无人值守的环境中。
- 开机低压检测:当插入的电池电压小于3.48V时,UPS会判断当前电池为即将耗尽的状态。此时虽然输出开关打到ON状态,UPS也不会对外输出5V,低压状态下UPS会关闭所有输出,并且自行进入休眠。(原因是:在电池耗尽状态,强制开机,在树莓派还没启动到桌面,电池保护板可能会停止输出。如没有这项保护策略,树莓派系统可能会因非法关机导致系统文件破损)。只有当插入TYPE-C充电线,UPS会自动唤醒,并且自动进入充电流程,充电到一定电量自动开启外部电源输出。
- 自动关机: 当外部电源适配器停电,UPS自动采用电池作为后备电源对树莓派进行供电。当电池即将耗尽之前,UPS主板会通过System halt signal通知树莓派提前关机。然后UPS主板会自动切断树莓派主电源,并且UPS自动进入睡眠模式,等待外部供电恢复。
- 自动开机:当外部供电恢复后,UPS主板会自动恢复运行,并且开始对电池进行充电。经过一段时间充电后,UPS主板会自动打开树莓派的主供电电源,从而让树莓派恢复运行状态。
以下采用可编程电源模拟电池低压开机,UPS主板自动进入低压休眠,5V不输出。当TYPE-C线接入后,自动恢复运行和电压输出的整个过程:
标号 | 名称 | 描述 |
---|---|---|
1 | TYPE-C 电源适配器充电接口 | 外部5V电源对UPS进行供电的接口,供电需求5V 2A-3A |
2 | USB-A 座 | 2个USB-A座对树莓派主板进行供电。 |
3 | LED 电量指示灯 | 4个LED灯(D1-D4)用于指示锂电池的当前电量 |
4 | UPS主板测试口 | 工厂用于烧录UPS程序和自动测试主板。该接口对用户无用。 |
5 | 新塘MCU控制器 | 用于充放电路径管理,和树莓派主板相互通讯等功能。 |
6 | 双PMU(Power Manage Unit) | 2颗电池充电放电,路径管理芯片(芯片已加密) |
7 | PH2.0 锂电池输入接口 | 支持1S 3.7V锂电池,可兼容3.7V18650 / 21700等电池组(要求电池组额定电压为3.7V) |
8 | UPS输出总开关 | ON / OFF 开关,当开关打到ON后,UPS输出5V到树莓派主板。OFF则反之。(外部停电且电池低压,程序会自动关闭电源输出) |
9 | 2.54mm排针口 | 3P排针口:单线通讯和UART接口,用于连接树莓派主板的GPIO口,进行通讯。 2P电源口:通过树莓派GPIO电源接口进行5V供电。 产品默认赠送排针,玩家如需使用到以上接口,可以选择性焊接。 |
10 | 电源输出LED灯 | 当输出5V稳定后,LED绿灯亮起。 |
UPS v3主板通过 TPYE-C线 对 UPS主板进行供电。对外部电源适配器的需求是5V 2A - 5V 3A。UPS内部有电源路径管理系统,会自动调节输入电流的大小。例如:当外部无负载、或者负载较轻,且UPS板载的电池也已经充满的情况下。输入电流会约等于负载的消耗电流。TYPC-C 输入的充电线,尽量采用短而粗的电源线,让线损较小,从而到达UPS的主板的充电功率是充足的。
提示:如果电源头标称参数为5V 3A,UPS工作在边充边放状态,电池电量还一直在减少的原因,可能是输入TYPE-C的线损较大(或电源头参数虚标),实际电源适配器到达TYPE-C接口的功率不足以同时给负载供电和同时给电池充电导致的。 解决方案:更换大品牌质量可靠的电源头和品牌充电线(较粗)。
UPS主板可以使用USB-A座对树莓派主板进行供电,也可以通过GPIO 5V接口对树莓派进行供电。两种供电方案,选任意一种即可。
供电方式 | 说明 |
---|---|
使用USB-A对树莓派主板进行供电 | UPS插入TYPE-C电源线与Pi4进行供电。(Pi3及更老版本可以使用Micro-USB线进行连接)。优点:无需焊接,使用方便。缺点:USB座和USB线组成的接口整体内阻稍大,适合Pi4常规应用。USB线请选择尽可能短而粗的线,减少线损压降,防止Pi4出现闪电符号的情况。如还是出现闪电符号,可选用如下的GPIO直接供电的方案进行供电。 |
通过GPIO接口对树莓派进行供电 | 在UPS上焊接5V排针,用22AWG短而粗的硅胶杜邦线对Pi4进行供电。用柔软的硅胶杜邦线可承受5A的电流,并且内阻较小。请勿使用普通铝包铜的信号杜邦线,这将会引入较大内阻,从而导致线损压降大,Pi屏幕上出现低压闪电符号。 |
供电方式(以下2选1) | 接线实例 |
---|---|
使用USB-A对树莓派主板进行供电 | |
通过GPIO接口对树莓派进行供电 |
UPS主板上板载6个LED灯:
- 绿色LED:D1、D2、D3、D4用于电池的电量显示
- 红色LED:Charge Status 为充电状态指示灯。(以下简称CS灯)
- 当UPS关闭输出,用户只对UPS进行充电时:电池未充满时,CS灯闪烁。当电池完全充满时,CS灯常亮。
- 当UPS工作在边冲边放状态下:CS灯一直为闪烁状态。只有当负载较轻的情况下,如给Pi Zero或者类似较轻负载供电时,经过较长充电后,CS灯会显示常亮。此灯由PMU管理芯片输出控制,当电池未充满时,都表现为闪烁状态。
- 当UPS开关关闭,并且TYPE-C对UPS充电也关闭时:CS灯持续常亮20s后自动关闭。
- 绿色LED:Power LED为输出电源指示灯。当UPS向树莓派主板输出5V电源时,此灯点亮。
LED电量显示表:
D4 | D3 | D2 | D1 | 电池电压 |
---|---|---|---|---|
灭 | 灭 | 灭 | 闪烁 | 小于3.45v |
灭 | 灭 | 灭 | 常亮 | 3.55v |
灭 | 灭 | 常亮 | 常亮 | 3.72v |
灭 | 常亮 | 常亮 | 常亮 | 3.89v |
常亮 | 常亮 | 常亮 | 常亮 | 大于4v |
当D1-D4都常亮,并且CS灯也常亮,表示电池已完全充满。
UPS主板的电池接口:PH2.0座。产品出厂配套的电池组内部已集成锂电池保护板。如用户想自行接入DIY的电池包,请注意以下几个注意事项:
-
电池输出线的接口为PH 2.0 公头,注意接口的正极和负极!如电池线接反,UPS将会烧毁!
-
自主电池组为1S 3.7V锂电池:额定电压3.7V,充满电压4.2V的电池组。常规兼容型号:18650、21700、21650等电池组都兼容。不兼容磷酸铁锂电池。
-
容量无特别要求,但考虑到Pi4续航,最佳容量最好大于4000mAh
-
自己组装的电池组尽量带6A及以上大电流锂电池保护板:市面上常规的锂电池保护板参数为3A-4A,当外部需要大电流时,保护电流太小的保护板可能会导致输出打嗝的状况。
UPS V3 与树莓派通讯,采用2种方式:UART接口和STA单总线接口。STA单总线接口简单灵活,只需要在pi上通过任意一个闲置的GPIO口(提供的Pi端python程序默认为:GPIO 18,玩家可自行更改)和UPS就能进行通讯。UART接口则可以让PI读取更为丰富的UPS目前工作信息。
2个接口的作用如下:
- UART接口:UPS和树莓派的板载串口进行通讯。树莓派可以得到的信息:通讯心跳包、外部是否停电、电池容量百分比、向外输出电压值。
- STA单总线接口:UPS主板在电池耗尽之前发送给树莓派主板一个脉冲信息(Halt signal),让树莓派安全的进行软件关机。当树莓派安全关机后,再次切断树莓派的5V主供电电源。(USB-A座和2P排针座都受程序控制)。当外部电源恢复后,UPS主板会自动进入充电流程,当电池充电到达一定容量,会自动对树莓派恢复供电。
-
把产品配套的资料包,解压缩到
/home/pi/UPSPACK_V3
目录下。检查shutdown_check.py的完整目录是shutdown_check.py完整目录为如下:
/home/pi/UPSPACK_V3/shutdown_check.py
-
更改
/etc/rc.local
,把自动关机的程序添加成开机自动启动sudo nano /etc/rc.local #在最下面的 exit 的上面一行添加如下内容 sudo python3 /home/pi/UPSPACK_V3/shutdown_check.py &
- 完成以上步骤,即可实现当电池耗尽前,树莓派自动安全关机的功能。并且当外部恢复电源,UPS板子会自动进行充电。当电池充电到一定电量后,UPS会自动开启树莓派的电源。
UPS和树莓派通过UART接口进行信息交互,可以得到更为丰富的信息:
- UPS运行时间
- 外部TPYE-C供电口是否供电正常?(GOOD 或者 Not Good)
- 电池当前百分比电量
- UPS当前输出电压值
安装过程:
-
把UPS v3的UART口(TX、RX)和树莓派的UART口进行连接,详情见:通讯接口
-
编辑/boot/config.txt
sudo nano /boot/config.txt
-
增加2行内容,并且ctrl+x保存退出
# 针对2020-08-20-Raspberry Pi OS及更新版本 enable_uart=1 dtoverlay=disable-bt
# 针对2020-05-27-Raspberry Pi OS 以及更老版本的系统 enable_uart=1 dtoverlay=pi3-miniuart-bt
-
再次用
ls -l /dev
,查看串口0和串口1的指向关系。主要查看 serial0 -> ttyAMA0 的指向关系。如下图显示即位正确。 -
重启树莓派
sudo reboot
-
通过minicom串口软件,验证树莓派的串口0和UPS进行正常通信。
sudo apt-get install minicom -y sudo minicom -D /dev/ttyAMA0 -b 9600
可以看到UPS发到树莓派上的协议数据包。由于Linux上'\n'只换行,不回到行首。所以minicom上看到的协议,会超出屏幕。这没有关系,我们后面可以利用python来过滤这些信息。
提示1:退出minicom按键: Ctrl+A --> z --> x
提示2:如未看到通讯协议包,说明UART连接不正确,参考通讯接口。或者是 serial0 -> ttyAMA0 指向不正确。按照以上步骤仔细检查。
-
进入程序目录/home/pi/UPSPACK_V3/UPS_GUI_py,双击
UPS_GUI_demo.py
,跳出一个对话框直接点击确认,即可运行Python GUI 程序。即可看到UPS目前的工作状况。