Power Management HAT (B)
来自Waveshare Wiki
| ||||||||||||||||||
| ||||||||||||||||||
说明
产品概述
Power Management HAT(B)是一款树莓派电源管理控制板,可以为树莓派提供一套极为强大的电源管理,如定时开关机,测量工作电压电流等功能都不在话下,并且具有快速负载瞬态响应功能,可以多个电源中快速切换。
特点
- 板载MCU(RP2040),性能强悍,上手轻松。
- 板载RTC时钟芯片(PCF85063),可提供精准时间控制。
- 板载升降压DC-DC芯片(MP28167-A),可提供快速负载瞬态响应。
- 板载锂电池接口,提供电源防反接,防倒灌机制,充分保证电路的安全。
- 板载RP2040引脚接口,兼容Raspberry Pi Pico 标准接口,可搭载PICO拓展板。
- 板载自定义按键,可作为电源键使用,实现树莓派的开机,软件关机,强制关机。
- 可对输入电源电压进行检测,对工作电流进行检测,可编程即时切断电源以确保锂电池的工作寿命。
主要参数
- 主控芯片:RP2040
- 通信接口:UART + GPIO
- 下载接口:USB + SWD(Debug)
- 通信波特率:默认115200bps (可程序设置其他波特率)
- 供电方式:USB接口 或 PH2.0接口
- USB接口电压:5V
- PH2.0接口电压:3.3-4.2V(3.7V锂电池)
- 内置电路:电池防反接电路、防倒灌电路、电流与电压检测电路
- 产品尺寸:56.5mm x 65mm
- 固定孔直径:3.0mm
硬件连接
RP2040 GPIO | 描述 |
GPIO0 | UART0_TX引脚,连接到树莓派D15引脚 |
GPIO1 | UART0_RX引脚,连接到树莓派D14引脚 |
GPIO6 | I2C1_SDA引脚,连接到所有I2C设备的SDA引脚 |
GPIO7 | I2C1_SCL引脚,连接到所有I2C设备的SCL引脚 |
GPIO19 | 用户按键引脚,通常用来控制电源开关 |
GPIO21 | RTC中断引脚,当RTC闹钟触发时,会被RTC芯片拉低 |
GPIO22 | 树莓派软关机引脚,连接到树莓派D20引脚 |
GPIO23 | 树莓派运行引脚,连接到树莓派D21引脚 |
GPIO24 | 电源控制引脚,当其拉低时,电源切断,反之,电源接通 |
GPIO25 | 状态LED引脚,用于展示当前运行状态 |
GPIO29 | 输入电压采集硬件,此处电压约为1/10输入电压 |
产品使用
使用前须知
锂电池使用注意事项
- 锂聚合物和锂离子电池很不稳定。如果充电或使用不当,可能会导致火灾,人身伤害和财产损失。
- 对电池组充电和放电时,切勿极性连接错误。请勿选用其他劣质的充电器或充电板对锂电池进行充电。
- 请勿混用和使用旧电池和新电池,避免使用其他品牌的电池。
- 如需另购锂电池产品,须确保电池参数与锂电池扩展板兼容,推荐选择正规的电池厂家,并需要自行老化测试确保锂电池能够稳定安全工作。
- 锂电池具有循环寿命,请在达到使用寿命或使用两年时(以先到者为准),用新电池更换旧电池。
- 请妥善放置电池类产品,远离易燃易爆类物品,远离儿童,避免因保管不慎,引发安全事故。
工作原理与例程简介
GPIO协议(自定义协议)
- 本协议基于软件编程完成,故需要RP2040和树莓派运行实例程序。
- 本协议通过两个RP204的GPIO和树莓派GPIO相连,实现检测树莓派运行状态和提示树莓派关机
RP2040 GPIO | 树莓派GPIO | 描述 |
GPIO22 | D20 | 树莓派软关机引脚,默认由RP2040拉低,提示树莓派软件关机时拉高 树莓派应当检测到该引脚被拉高后执行关机程序。 |
GPIO23 | D21 | 树莓派运行引脚,默认由树莓派开机后拉高 RP2040可以通过该引脚检测树莓派是否开机。 |
例程:
树莓派使用教程
配置pico编译环境
- 下载安装脚本
cd ~ wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh
- 给与运行权限并运行
chmod +x pico_setup.sh ./pico_setup.sh
- 重启树莓派
sudo reboot
openocd
- Power Management HAT(B)已将SWD(debug)连接到了树莓派接口上,可以直接使用debug接口下载程序或者调试
- 下载openocd所需库 源码
cd ~/pico sudo apt install automake autoconf build-essential texinfo libtool libftdi-dev libusb-1.0-0- dev
- 下载openocd源码
git clone https://github.com/raspberrypi/openocd.git --recursive --branch rp2040 --depth=1
- 编译并安装
cd openocd ./bootstrap ./configure --enable-ftdi --enable-sysfsgpio --enable-bcm2835gpio make -j3 sudo make install
国内用户
- 因为网络原因,国内用户连接github并不稳定,我们另外提供了一份安装包,可以跳过github克隆的过程
- 若已经成功配置了pico环境,可以直接跳过本章
- 下载有关编译库
sudo apt update sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential -y sudo apt install automake autoconf build-essential texinfo libtool libftdi-dev libusb-1.0-0-dev -y
- 下载压缩包并解压
cd ~ sudo apt-get install p7zip-full -y #wget https://github.com/EngineerWill/Pico-lib/releases/download/v1.0/Pico-lib.7z wget https://mirror.ghproxy.com/https://github.com/EngineerWill/Pico-lib/releases/download/v1.0/Pico-lib.7z 7z x ./Pico-lib.7z
openocd
cd ~/pico/openocd/ ./bootstrap ./configure --enable-ftdi --enable-sysfsgpio --enable-bcm2835gpio make -j4 sudo make install
软关机脚本
- Power Management HAT (B)需要通过脚本才能实现软关机和树莓派的运行检测
- 下载脚本并运行
wget https://www.waveshare.net/w/upload/4/44/Power-Management-HAT.zip unzip Power-Management-HAT.zip cd Power-Management-HAT sudo chmod a+x Power-Management-HAT-Setup.sh sudo ./Power-Management-HAT-Setup.sh
注意:须注意查看上述的操作执行后是否有报错,有报错根据提示修正后再继续。
例程使用
获取例程
cd ~ wget https://www.waveshare.net/w/upload/2/27/Power-example.7z 7z x ./Power-example.7z
编译例程
- 默认例程为周期性开机例程
cd ~/Power-example/build/ export PICO_SDK_PATH=/home/pi/pico/pico-sdk cmake .. make -j
烧录程序
- 注意:烧录程序会导致RP2040复位和供电中断
- 故烧录程序时应使用树莓派的电源口进行供电而不是使用Power Management HAT(B)供电。
使用SWD烧录程序
- 我们已经将RP2040的SWD接口连接到了树莓派上,可以直接通过openocd进行
openocd -f interface/raspberrypi-swd.cfg -f target/rp2040.cfg -c "program ./Power_Management_HAT.elf verify reset exit"
使用USB烧录程序
- 树莓派基金会已经在RP2040内固化了UF2的引导程序,通过以下几个步骤
- 将树莓派的USB和板子的USB接口连接在一起
- 按下复位按键与BOOT按键
- 先释放复位按键,再释放BOOT按键
- 将对应的文件拖入弹出的海量存储器中
- 可以参考下图(图为树莓派官方为Hello World例程制作的GIF图)
串口监控
开启串口功能
- 执行如下命令进入树莓派配置
sudo raspi-config
- 开启串口功能
minicom
- minicom 是 Linux 下一款常用的命令行串口调试工具。
- 其功能与 Windows 下的超级终端相似,可以通过串口控制外部的硬件设备,通常用于对嵌入式设备进行管理。
-
安装并运行minicom
sudo apt-get install minicom -y sudo minicom -D /dev/ttyS0
-
此时可以看到例程定时返回的运行信息(此处例程为定时开关例程)
例程说明
通用规则或者功能
状态灯
- 状态灯均遵循以下规则
- 关机状态或者电源关断状态,状态灯约以0.83HZ的频率闪烁(慢闪)
- 开机状态或者电源开启状态,状态灯约以2.5HZ的频率闪烁(快闪)
- 等待开机中或者等待关机中,状态灯常亮
电流判断
- 通过电流判断设备状态
- 该功能可实时判断设备开关机,并关闭电源,起到节省能源的效果
- 该功能默认关闭(可通过 ./examples/examples.h/USE_CURRENT_TO_CHECK_PI_STATUS设置开启)
- 通过判断当前电流值是否小于关机电流,若小于则认为设备已经关机,则关闭电源( 关机电流设置./examples/examples.h/Shutdown_Current_Ma,需要根据自身设备进行调整,否则该功能无法起效或者设备无法开机)
开机与关机
- 开机流程
- 通过RTC或者按键触发开机
- 打开电源,并通过GPIO判断是否已开机,开机默认最大等待时间为90秒,超过最大等待值则认为已经开机(最大等待时间由lib/Power_Management_Lib/Power_Management_Lib.c/Power_Wait_Time_S设置)
- 软关机流程
- 通过按键触发软关机
- 通过GPIO判断设备已经关机,若设备已关机则关闭电源,关机默认最大等待时间为60秒,超过最大等待值则认为已经关机,将强制关闭电源(最大等待时间由lib/Power_Management_Lib/Power_Management_Lib.c/Wait_Boot_Time_S设置)
- 强制关机流程
- 通过RTC、长按按键和电流触发关机
- 强制关闭电源,设备关闭。
Button_Ctr例程
- 实现功能:使用PWR按键开关机
- 当树莓派关机
- 按下PWR按键则开机
- 当树莓派开机
- 默认长按PWR按键超过2S但不到8S,尝试将树莓派软关机
- 默认长按PWR按键超过8S则尝试直接关闭电源
Period_Time例程
- 定时开关机
- 当时间到达指定时间Power_On_Time(默认为 9:00:30)时开机
- 当时间到达指定时间Power_Off_Time (默认为 10:00:00)时关机
Cycle_Time例程
- 循环开关机
- 保持开机时间Power_On_Keep_Time(默认为1800S)
- 保持关机机时间Power_Off_Keep_Time(默认为3600S)
FAQ
理论输出最大电流3A,实际最大输出电流受到供电限制,如使用3.7V锂电池(满电的情况下),最大输出电流可以达到2A。
与供电和输出电流有关,如使用配套3000mah3.7V锂电池,输出电流保持为1A,约可使用2小时(受到温度和电池状态有关)。