Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Jump to English manual firmware update manual

固件升级中文教程

RPi UPSPack V3 产品使用指南

UPSPack v3 是在2020年9月发布的新一代树莓派UPS不间断电源扩展板的最新型号。根据以往v1和v2版本的迭代升级,v3版本是目前树莓派UPS供电最稳定的一种供电方案。

UPS3

目录

功能升级

以下列出UPS v3版本和v2版本的产品差异:

功能特点RPi UPSPack V3版本RPi UPSPack V2版本
输入接口TYPE-C接口(兼容最新Pi4的电源线)Micro-USB接口(兼容Pi3及更老型号的Pi)
最大输出电流5V 3A5V 3A
外部停电,Pi持续供电(不重启)支持支持
硬件开停机开关
GPIO供电接口和UART、halt signal信号接口
锂电池电量统计支持支持
开机低压检测支持不支持
电源适配器异常检测(停电时刻检测)支持支持
USB-A座输出电压值检测支持支持
电池耗尽前自动通知关机支持支持
停电后,程序自动开机支持(无需人工干预,程序开机)不支持(需人工干预开机)
停电后,UPS自动切换成休眠模式支持不支持
固件升级支持不支持
UPS与Pi的串口(UART)通讯:
通讯设置9600 bps 8N19600 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上屏幕上观察到闪电的低压符号。

3a

test3a

续航时间

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)
4000mAh5.5h2.5h4.0h3.3h2.0h
6500mAh9.0h4.0h6.5h5.2h3.2h
10000mAh14.5h6.0h10.0h8.5h5.0h

测试方式:

  1. 以上所有数据单位为小时(hours)。
  2. 运行的系统为:2020-05-27-raspios-buster-full-armhf ,系统不做任何设置修改。系统后台只运行一个RPi_runtime_recoder.py进行时间统计。
  3. 3种容量的电池完全充满电量,然后接入树莓派后,利用程序进行时间记录。放电截至点为UPS让树莓派自动关机,通过log文件查看实际运行的时间。
  4. 下载、并运行 UPSPACK_V3/time_count/RPi_runtime_recoder.py 进行时间记录。当树莓派关机后,接入电源适配器读取程序目录下的time_log.txt进行续航时间的查看。

断电不重启

断电不重启是UPS v3的基本功能。以下演示的是Pi4和7寸HDMI屏幕都由UPS v3进行供电,人工拔掉输入的TYPE-C供电线,用来模拟外部停电的情况。Pi4和HDMI屏幕都将维持稳定的工作。

pwr_off

开机低压检测及自动关机和自动开机

当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线接入后,自动恢复运行和电压输出的整个过程:

low_bat

硬件说明

接口说明

main_board

标号名称描述
1TYPE-C 电源适配器充电接口外部5V电源对UPS进行供电的接口,供电需求5V 2A-3A
2USB-A 座2个USB-A座对树莓派主板进行供电。
3LED 电量指示灯4个LED灯(D1-D4)用于指示锂电池的当前电量
4UPS主板测试口工厂用于烧录UPS程序和自动测试主板。该接口对用户无用。
5新塘MCU控制器用于充放电路径管理,和树莓派主板相互通讯等功能。
6双PMU(Power Manage Unit)2颗电池充电放电,路径管理芯片(芯片已加密)
7PH2.0 锂电池输入接口支持1S 3.7V锂电池,可兼容3.7V18650 / 21700等电池组(要求电池组额定电压为3.7V)
8UPS输出总开关ON / OFF 开关,当开关打到ON后,UPS输出5V到树莓派主板。OFF则反之。(外部停电且电池低压,程序会自动关闭电源输出)
92.54mm排针口3P排针口:单线通讯和UART接口,用于连接树莓派主板的GPIO口,进行通讯。
2P电源口:通过树莓派GPIO电源接口进行5V供电。
产品默认赠送排针,玩家如需使用到以上接口,可以选择性焊接。
10电源输出LED灯当输出5V稳定后,LED绿灯亮起。

UPS供电方式

电源适配器对UPS供电

UPS v3主板通过 TPYE-C线 对 UPS主板进行供电。对外部电源适配器的需求是5V 2A - 5V 3A。UPS内部有电源路径管理系统,会自动调节输入电流的大小。例如:当外部无负载、或者负载较轻,且UPS板载的电池也已经充满的情况下。输入电流会约等于负载的消耗电流。TYPC-C 输入的充电线,尽量采用短而粗的电源线,让线损较小,从而到达UPS的主板的充电功率是充足的。

提示:如果电源头标称参数为5V 3A,UPS工作在边充边放状态,电池电量还一直在减少的原因,可能是输入TYPE-C的线损较大(或电源头参数虚标),实际电源适配器到达TYPE-C接口的功率不足以同时给负载供电和同时给电池充电导致的。 解决方案:更换大品牌质量可靠的电源头和品牌充电线(较粗)。

UPS对树莓派主板供电

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对树莓派主板进行供电cable_power
通过GPIO接口对树莓派进行供电gpio_power

LED显示

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电量显示表:

D4D3D2D1电池电压
闪烁小于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,当外部需要大电流时,保护电流太小的保护板可能会导致输出打嗝的状况。

bat_info

机械尺寸图

dim

通讯接口

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主板会自动进入充电流程,当电池充电到达一定容量,会自动对树莓派恢复供电。

gpio

软件驱动

安全关机
  1. 把产品配套的资料包,解压缩到 /home/pi/UPSPACK_V3 目录下。检查shutdown_check.py的完整目录是

    shutdown_check.py完整目录为如下:

    /home/pi/UPSPACK_V3/shutdown_check.py

  2. 更改/etc/rc.local,把自动关机的程序添加成开机自动启动

    sudo nano /etc/rc.local
    
    #在最下面的 exit 的上面一行添加如下内容
    
    sudo python3 /home/pi/UPSPACK_V3/shutdown_check.py &
    

rc

  1. 完成以上步骤,即可实现当电池耗尽前,树莓派自动安全关机的功能。并且当外部恢复电源,UPS板子会自动进行充电。当电池充电到一定电量后,UPS会自动开启树莓派的电源。
UART软件

UPS和树莓派通过UART接口进行信息交互,可以得到更为丰富的信息:

  • UPS运行时间
  • 外部TPYE-C供电口是否供电正常?(GOOD 或者 Not Good)
  • 电池当前百分比电量
  • UPS当前输出电压值

安装过程:

  1. 把UPS v3的UART口(TX、RX)和树莓派的UART口进行连接,详情见:通讯接口

  2. 编辑/boot/config.txt

    sudo nano /boot/config.txt
    
  3. 增加2行内容,并且ctrl+x保存退出

    # 针对2020-08-20-Raspberry Pi OS及更新版本
    enable_uart=1
    dtoverlay=disable-bt
    

    uart1

    # 针对2020-05-27-Raspberry Pi OS 以及更老版本的系统
    enable_uart=1
    dtoverlay=pi3-miniuart-bt
    
  4. 再次用ls -l /dev,查看串口0和串口1的指向关系。主要查看 serial0 -> ttyAMA0 的指向关系。如下图显示即位正确。

    uart2

  5. 重启树莓派

    sudo reboot
    
  6. 通过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 指向不正确。按照以上步骤仔细检查。

  7. 进入程序目录/home/pi/UPSPACK_V3/UPS_GUI_py,双击 UPS_GUI_demo.py ,跳出一个对话框直接点击确认,即可运行Python GUI 程序。即可看到UPS目前的工作状况。

click

python_gui

关于 About

this is UPSPACK_V3 repo , share code and manual

语言 Languages

Python100.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
0
Total Commits
峰值: 1次/周
Less
More

核心贡献者 Contributors