PowerControl 树莓派硬件电源看门狗

一套独立硬件级电源看门狗 + 继电器控制器,专为树莓派(Raspberry Pi)工业自动化场景设计,解决 Linux 系统死机、文件系统损坏后无法安全断电、电池耗尽损毁设备的痛点。

PowerControl 树莓派硬件电源看门狗封面
oshw_hqzl2026-06-30 11:19:20CERN-OHL-P v2
33
Star

PCBA

设计文件

KiCad图标powercontrol-main.zip2.48MB(1次下载)

EDA查看器

复制嵌入代码

详细介绍

一、项目概述

这是开源仓库 vinthrewch/powercontrol,一套独立硬件级电源看门狗 + 继电器控制器,专为树莓派(Raspberry Pi)工业自动化场景设计,解决 Linux 系统死机、文件系统损坏后无法安全断电、电池耗尽损毁设备的痛点。

核心设计目标

将电源控制逻辑从树莓派主机剥离至独立 AVR 单片机硬件,实现:

  1. 系统卡死时自动断电重启(硬件看门狗)

  2. 安全上电 / 关机时序管理,避免存储介质损坏

  3. 断电、市电丢失、人工按键触发标准化电源流程

  4. 主机关机后硬件持续供电监控,保留唤醒能力

二、硬件板卡(hw/powercontrol_2.1)

硬件规格清单

  • 主控:ATMEGA88PB AVR 单片机,内置 8MHz RC 振荡器

  • 输入:12V 直流供电,自带片载 5V 稳压电路

  • 功率开关:ULN2003A 驱动双线圈锁存继电器(脉冲驱动,无需持续通电)

  • 交互组件:手动电源按键、红 / 绿状态 LED

  • 通信接口:I2C 总线(带串联保护电阻),硬件地址0x68

  • 关键特性:MCU 永久带电,下游树莓派断电后仍可监测唤醒信号

三、固件(code/powercontrol)

运行环境

AVR-GCC 编译,裸机 C 代码,无操作系统,单循环标志驱动架构,禁止在中断服务函数 (ISR) 执行耗时任务,保障时序稳定。

固件功能

  1. 锁存继电器控制(脉冲触发,不持续耗电)

  2. I2C 主机指令交互,看门狗喂狗、开关继电器、LED 控制

  3. 市电检测(AC_OK 硬件输入)

  4. 低功耗休眠模式(闲置时降低功耗)

  5. 状态寄存器回读:看门狗计时、电源状态、超时计数

编译流程

bash

运行

cd code/powercontrol
make
make flash

编译参数、烧录器、熔丝配置全部在 Makefile 内定义,可按需适配不同硬件环境。

四、I2C 通信协议(核心交互接口)

基础参数

  • I2C 从机地址:0x68

  • 通信模式:写指令控制继电器 / LED;读指令读取硬件状态寄存器

完整指令集

指令码

功能说明

0x00

看门狗喂狗(NOP,重置超时计时器)

0x01

继电器断开(整机断电)

0x02

继电器吸合(整机上电)

0x03

红色 LED 关闭

0x04

红色 LED 点亮

0x05

绿色 LED 关闭

0x06

绿色 LED 点亮

0x10

设置看门狗超时阈值(单位 16ms)

读写示例

  1. 发送控制指令:i2ctransfer -y 1 w@0x68 0x02(上电)

  2. 读取硬件状态:i2ctransfer -y 1 r@0x68 4, 返回 4 字节数据:status字节、市电状态、看门狗计时、超时总次数

五、设计约束(Non-Goals 明确不实现功能)

项目主动放弃以下功能,全部交由树莓派主机实现:

  • RTC 实时时钟、定时调度

  • 网络通信

  • 文件系统管理

  • 软件层面电源控制

  • UPS 不间断电源逻辑

目的:简化硬件复杂度,让硬件仅承担底层物理电源安全,业务逻辑交给 Linux 主机。

六、适用场景与优势

典型场景

户外无人值守工控、远程灌溉设备、野外物联网节点、7×24 小时无人树莓派设备。

相比树莓派原生看门狗的优势

  1. 完全独立硬件:Linux 内核崩溃、SD 卡损坏、系统卡死时仍可执行断电重启

  2. 锁存继电器:断电后不维持线圈耗电,适合电池供电设备

  3. 永久带电 MCU:主机关机后仍能检测人工按键、市电恢复唤醒设备

  4. 标准化时序:市电丢失、软件卡死、人工操作三种场景统一电源恢复逻辑

  5. I2C 标准化接口,上层程序可简单调用控制硬件电源

七、许可协议

  1. 固件 / 软件:MIT 开源许可证

  2. PCB 硬件设计:CERN-OHL-P v2(宽松开源硬件协议,允许商用、修改、二次分发)

    版权归属:2026 Vinnie Moscantello

八、项目地址

https://github.com/vinthewrench/powercontrol