树莓派Power Management HAT (B)教程

产品概述

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描述
GPIO0UART0_TX引脚,连接到树莓派D15引脚
GPIO1UART0_RX引脚,连接到树莓派D14引脚
GPIO6I2C1_SDA引脚,连接到所有I2C设备的SDA引脚
GPIO7I2C1_SCL引脚,连接到所有I2C设备的SCL引脚
GPIO19用户按键引脚,通常用来控制电源开关
GPIO21RTC中断引脚,当RTC闹钟触发时,会被RTC芯片拉低
GPIO22树莓派软关机引脚,连接到树莓派D20引脚
GPIO23树莓派运行引脚,连接到树莓派D21引脚
GPIO24电源控制引脚,当其拉低时,电源切断,反之,电源接通
GPIO25状态LED引脚,用于展示当前运行状态
GPIO29输入电压采集硬件,此处电压约为1/10输入电压

产品使用

使用前须知

锂电池使用注意事项

  • 锂聚合物和锂离子电池很不稳定。如果充电或使用不当,可能会导致火灾,人身伤害和财产损失。
  • 对电池组充电和放电时,切勿极性连接错误。请勿选用其他劣质的充电器或充电板对锂电池进行充电。
  • 请勿混用和使用旧电池和新电池,避免使用其他品牌的电池。
  • 如需另购锂电池产品,须确保电池参数与锂电池扩展板兼容,推荐选择正规的电池厂家,并需要自行老化测试确保锂电池能够稳定安全工作。
  • 锂电池具有循环寿命,请在达到使用寿命或使用两年时(以先到者为准),用新电池更换旧电池。
  • 请妥善放置电池类产品,远离易燃易爆类物品,远离儿童,避免因保管不慎,引发安全事故。

工作原理与例程简介

GPIO协议(自定义协议)

  • 本协议基于软件编程完成,故需要RP2040和树莓派运行实例程序。
  • 本协议通过两个RP204的GPIO和树莓派GPIO相连,实现检测树莓派运行状态和提示树莓派关机
RP2040 GPIO树莓派GPIO描述
GPIO22D20树莓派软关机引脚,默认由RP2040拉低,当需要提示树莓派软件开机时拉高
树莓派应当检测到该引脚被拉高后执行关机程序。
GPIO23D21树莓派运行引脚,默认由树莓派开机后拉高
RP2040可以通过该引脚检测树莓派是否开机。

例程:

树莓派使用教程

配置pico编译环境

  1. 下载安装脚本
    cd ~
    wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh
    
  2. 给与运行权限并运行
    chmod +x pico_setup.sh
    ./pico_setup.sh
    
  3. 重启树莓派
    sudo reboot
    

openocd

  • Power Management HAT(B)已将SWD(debug)连接到了树莓派接口上,可以直接使用debug接口下载程序或者调试
  1. 下载openocd所需库 源码
    cd ~/pico
    sudo apt install automake autoconf build-essential texinfo libtool libftdi-dev libusb-1.0-0-
    dev
    
  2. 下载openocd源码
    git clone https://github.com/raspberrypi/openocd.git --recursive --branch rp2040 --depth=1
    
  3. 编译并安装
    cd openocd
    ./bootstrap
    ./configure --enable-ftdi --enable-sysfsgpio --enable-bcm2835gpio
    make -j3
    sudo make install
    

国内用户

  • 因为网络原因,国内用户连接github并不稳定,我们另外提供了一份安装包,可以跳过github克隆的过程
    • 若已经成功配置了pico环境,可以直接跳过本章
  1. 下载有关编译库
    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
    
  2. 下载压缩包并解压
    cd ~
    sudo apt-get install p7zip-full -y
    wget 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

例程使用

获取例程

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的引导程序,通过以下几个步骤
  1. 将树莓派的USB和板子的USB接口连接在一起
  2. 按下复位按键与BOOT按键
  3. 先释放复位按键,再释放BOOT按键
  4. 将对应的文件拖入弹出的海量存储器中

串口监控

开启串口功能

  • 执行如下命令进入树莓派配置
    sudo raspi-config
  • 开启串口功能
    1. 选择Interfacing Options并进入
    2. 选择Serial Port
    3. 选择关闭串口调试功能
    4. 选择开启串口硬件
    5. 系统提示如下

minicom

  • minicom 是 Linux 下一款常用的命令行串口调试工具。
  • 其功能与 Windows 下的超级终端相似,可以通过串口控制外部的硬件设备,通常用于对嵌入式设备进行管理。
  1. 安装并运行minicom
    sudo apt-get install minicom -y
    sudo minicom -D /dev/ttyS0
    
  2. 此时可以看到例程定时返回的运行信息(此处例程为定时开关例程)