站内搜索
发作品签到
617 - 软硬件全开源彩屏快充桌充
专业版

617 - 软硬件全开源彩屏快充桌充

简介

桌面彩屏快速充电站-基于3个SW3526S + STM32G030实现

简介:桌面彩屏快速充电站-基于3个SW3526S + STM32G030实现
复刻成本:99

开源协议

CC BY-NC-SA 4.0

(未经作者授权,禁止转载)
创建时间:2025-11-17 16:33:56更新时间:2026-07-03 17:56:01

描述

LoveFinder617-3LaneSW3526 — 三路独立快充功率检测站

> 实时显示 · 多协议兼容 · 独立三通道快充输出

Preview Video
Build
Lang
MCU
Display


📋 项目简介

这是一个基于 SW3526S 快充芯片的开源硬件项目,实现了 三路完全独立 的快速充电输出通道(1×USB-A + 2×USB Type-C),并配备 0.96 寸 ST7735 彩屏 实时显示各通道的电压、电流、功率及快充协议状态。主控采用 STM32G030F6P6(Cortex-M0+, 32KB Flash),代码以 C++17 编写,工程基于 STM32CubeMX + MDK-ARM (Keil) 开发。

无论是作为桌面快充测试工具,还是嵌入式快充方案的学习参考,本项目都能为你提供完整且可复现的实现。


✨ 功能特性

⚡ 三路独立快充

通道接口类型I2C 连接说明
A1USB-AI2C1 直连TYPE-A 快充输出
C1USB Type-C #1I2C2 + MUX LOW与 C2 分时共享 I2C2 总线
C2USB Type-C #2I2C2 + MUX HIGH与 C1 分时共享 I2C2 总线

三颗 SW3526S 芯片完全独立工作,互不干扰,每路均可独立触发快充协议并输出最大功率。

🚀 超宽快充协议覆盖

每颗 SW3526S 集成了丰富的快充协议,通过 I2C 寄存器读取实时握手状态,开箱即支持:

协议全称典型输出
PPSUSB PD Programmable Power Supply3.3~21V@3A
PD3.0 / PD2.0USB Power Delivery5V / 9V / 12V / 15V / 20V@3A
QC4+ / QC4 / QC3+ / QC2.0Qualcomm Quick Charge3.6~20V (200mV/Step)
AFCSamsung Adaptive Fast Charging5V / 9V / 12V
FCP / SCPHuawei Fast Charge / Super Charge5V / 9V / 12V / 10V@2A
PE2.0 / PE1.1MediaTek Pump Express5~20V (500mV/Step)
SFCPSpreadtrum Fast Charge5V / 9V / 12V
BC1.2Battery Charging 1.2DCP 模式 / 苹果 2.4A / 三星

🖥️ 实时彩屏监控

0.96 寸 ST7735 彩屏(160×80)通过 SPI 驱动,采用分段局部刷新机制实现无闪烁实时显示:

┌─────────────────────────────────────────────┐
│ 23.50V     28'C      123.4W     ← VIN · 温度 · 总功率 │
├──────┬──────────────┬──────────────┬─────────┤
│      │     A1       │     C1       │   C2    │
│      │   QC3        │   PPS        │  PD FX  │  ← 快充协议/通道名称 (圆角背景)
│      │   12.1V      │   20.0V      │  5.0V   │  ← 输出电压 + 进度条
│      │   1.50A      │   2.95A      │  0.00A  │  ← 输出电流 + 进度条 (空载动画)
└──────┴──────────────┴──────────────┴─────────┘
  • 第一排:输入电压(红色)| 工作温度(蓝→绿→黄→红色阶)| 总功率(白色)
  • 第二排:通道名称 / 快充协议名称(绿色,圆角底色背景),空载时显示 [A1] / [C1] / [C2]
  • 第三排:输出电压(青色),数值 + 柱状进度条(最大 21V)
  • 第四排:输出电流(黄色),数值 + 柱状进度条(最大 3.5A)
  • 进度条空载动画:无输出时以来回滑动效果指示通道待机中

🔌 电气参数

参数最小值推荐值最大值单位
输入电压62435V
输入电流(推荐)≥10A
单路输出电流3.5A
单路最高输出电压21 (PPS)V
单路最大功率≈65W
降压效率>94%(@12V→5V/3A)
工作温度-10+60°C

> ⚠️ 供电要求:模块需要 高压直流输入(推荐 24V @ ≥10A 的 DC 电源适配器)方可正常运作。模块本身 无法直接接入 220V 市电,必须外接 DC 电源适配器。若低于 23V 输入可能无法触发全部快充协议的最高功率档位。


🧠 硬件架构

                     ┌──────────────────────────────────────┐
                     │          DC Power (24V@10A+)         │
                     └────────────┬─────────────────────────┘
                                  │
                    ┌─────────────┼──────────────┐
                    │             │              │
              ┌─────▼─────┐ ┌────▼────┐  ┌──────▼──────┐
              │ SW3526 A1 │ │SW3526 C1│  │ SW3526 C2   │
              │ (TYPE-A)  │ │(TYPE-C) │  │ (TYPE-C)    │
              │ I2C1 直连 │ │I2C2+ MUX│  │ I2C2 + MUX  │
              │           │ │  LOW    │  │   HIGH      │
              └─────┬─────┘ └────┬────┘  └──────┬──────┘
                    │            │               │
                    └────────────┼───────────────┘
                                 │ I2C
                    ┌────────────▼────────────┐
                    │    STM32G030F6P6        │
                    │  (Cortex-M0+, 64MHz)   │
                    │    I2C1/I2C2/SPI/ADC   │
                    └─────┬──────┬──────┬─────┘
                          │      │      │
                    SPI   │   ADC│   UART│
                          │      │      │
              ┌───────────▼┐ ┌──▼──┐ ┌──▼────────┐
              │ ST7735     │ │ NTC │ │ UART      │
              │ 0.96" LCD  │ │10K  │ │ Debug Out │
              │ (160×80)   │ │103AT│ │ (115200)  │
              └────────────┘ └─────┘ └───────────┘

关键器件

  • SW3526S × 3 — 智融科技 (iSmartWare) 高集成度多快充协议充电芯片,QFN-24 (4×4mm) 封装
    • 内置 3.5A 高效率同步降压变换器
    • 支持 CC/CV 模式 + 线损补偿
    • 完善的保护机制:输入过压/欠压、输出过流/短路、过温保护
  • STM32G030F6P6 — ST 主流级 Cortex-M0+ 微控制器,TSSOP-20 封装
    • 64MHz 主频,32KB Flash,8KB SRAM
    • 2×I2C、1×SPI、1×ADC、多路 USART
  • ST7735 0.96" — 128×160 像素 65K 色彩屏 SPI 接口(驱动 IC 焊接款,非排针模块)
  • NTC 10K 103AT (B=3950) — NTC 热敏电阻用于工作温度监测,ADC+DMA 非阻塞采样。探头需使用 导热双面胶 粘贴到 PCB 背面中央,以准确检测板载工作温度

硬件设计要点

特性说明
Type-C 接口SW3526S 内置 Type-C 控制器逻辑,CC 引脚广播 3A 电流能力,支持 DFP/Source 角色,自动检测插入与移除
Type-A 接口CC1 对地接 5.1K 电阻即可配置为 A 口输出模式
I2C 地址与 MUX三颗芯片使用相同 I2C 地址 (0x3C),TYPE-A 独占 I2C1,两路 TYPE-C 通过 GPIO 控制 MUX 分时访问 I2C2:MUX_SELECT=0 选通 C1,MUX_SELECT=1 选通 C2
SPI 驱动彩屏ST7735 使用 SPI1 接口驱动,PA5 (SCK) / PA7 (MOSI),CS/DC/Reset 分别控制
温度监测NTC 分压后接 ADC1 (PA1),DMA 连续采样不阻塞主循环
UART 调试通过 USART2 以 115200bps 输出结构化 JSON 风格数据帧,方便上位机采集分析
供电拓扑24V 输入直供 SW3526S 三颗芯片(内置 Buck DCDC 降压至各通道输出),主控与屏幕通过板载 LDO 降压至 3.3V

💻 软件架构

开发环境

  • IDE:MDK-ARM (Keil μVision) v5
  • MCU 配置:STM32CubeMX (STM32G0xx HAL)
  • 编译器:Arm Compiler v6 (AC6) / ArmCC
  • 语言标准:C++17(自定义库)/ C99(HAL 库)
  • 调试器:CMSIS-DAP / ST-Link

工程结构

LoveFinder617-3LaneSW3526/
├── Core/                         # STM32CubeMX 生成代码
│   ├── Inc/                      #   头文件
│   │   ├── main.h
│   │   ├── stm32g0xx_hal_conf.h
│   │   ├── stm32g0xx_it.h
│   │   ├── gpio.h / i2c.h / spi.h / adc.h / tim.h / usart.h / dma.h
│   └── Src/                      #   源文件
│       ├── main.cpp              #   ⭐ 主程序入口与应用逻辑
│       ├── stm32g0xx_it.c        #   中断服务
│       ├── stm32g0xx_hal_msp.c   #   HAL 底层初始化
│       └── system_stm32g0xx.c
│
├── Drivers/
│   ├── CMSIS/                    # ARM CMSIS 核心与 DSP 库
│   └── STM32G0xx_HAL_Driver/     # STM32G0 HAL 外设驱动
│
├── LoveFinderLib/                # ⭐ 自定义 C++17 驱动库
│   ├── SW3526/
│   │   ├── SW3526.hpp            #   SW3526 控制器驱动 (含Manager多设备管理)
│   │   └── SW3526.cpp
│   ├── ST7735/
│   │   ├── ST7735.hpp            #   ST7735 彩屏驱动 (DMA优化)
│   │   ├── ST7735.cpp
│   │   ├── fonts.hpp / fonts.c   #   自定义字库 (7×10, 11×18)
│   │   └── icons.hpp / icons.c   #   图标资源
│   ├── NTC_ADC/
│   │   ├── NTC_ADC.hpp           #   NTC 温度传感器驱动
│   │   └── NTC_ADC.cpp
│   └── UART/
│       ├── UART.hpp              #   UART 调试输出 (printf风格)
│       └── UART.cpp
│
├── MDK-ARM/                      # Keil μVision 工程文件
│   ├── LoveFinder617-3LaneSW3526.uvprojx
│   └── LoveFinder617-3LaneSW3526/   # 编译输出
│
├── refProj/                      # 参考工程 (STM32F405, 早期版本)
├── refDoc/                       # 参考文档 (ST7735 驱动参考)
├── tools/                        # 辅助脚本
│   ├── analyze_map.py            #   Map 文件分析
│   ├── analyze_memory.py         #   内存用量分析
│   ├── generate_fonts.py         #   字库生成工具
│   └── keil_optimization_guide.py #   Keil 优化指南
│
└── README.md                     # 本文件

核心逻辑流程

main()
├── HAL_Init() / SystemClock_Config()
├── MX_GPIO_Init()...             # HAL 外设初始化
├── initDevices()                 # 自定义设备初始化
│   ├── UART 初始化
│   ├── I2C MUX 使能
│   ├── NTC 温度传感器初始化 (ADC+DMA)
│   ├── SW3526 × 3 初始化
│   │   ├── A1 → I2C1 直连
│   │   ├── C1 → I2C2 + MUX LOW
│   │   └── C2 → I2C2 + MUX HIGH
│   ├── SW3526_Manager 多设备注册
│   └── ST7735 彩屏初始化
│
└── while(1)                      # 主循环
    ├── updateDisplay()           # 无闪烁分段刷新屏幕
    │   ├── 输入电压 (变化时刷新)
    │   ├── 工作温度 (变化时刷新,颜色分级)
    │   ├── 总功率 (变化时刷新)
    │   ├── 快充协议协议 (变化时刷新,圆角背景)
    │   ├── 输出电压 + 进度条 (变化时刷新)
    │   ├── 输出电流 + 进度条 (变化时刷新)
    │   └── 空载动画进度条 (每帧更新,来回滑动)
    │
    ├── processPowerData()        # 数据处理
    │
    ├── 计时 (TIM17 1kHz)
    └── HAL_Delay(100)            # 100ms 刷新周期

软件设计与决策

决策方案理由
多芯片 I2C 访问MUX GPIO 分时选通三颗芯片 I2C 地址相同,无法同时挂载同一总线;A1 独占 I2C1 保证无冲突,C1/C2 通过 MUX 共享 I2C2
C++17 编写驱动类封装、命名空间、std::optionalstd::array、lambda相比纯 C 代码更易维护和扩展,利用 RAII 确保资源安全
无闪烁刷新分段局部刷新 + 变化检测仅在有数据变化时重绘对应区域,帧率稳定且不闪烁
进度条空载动画来回滑动滑块(ping-pong 0→30→0)视觉上指示通道存活待机中,避免死板显示 0
温度颜色分级蓝(<10°C) → 绿(10-30) → 黄(30-50) → 红(>50)直观的温度预警视觉反馈
UART 调试输出机器可读字段帧,每秒一次便于上位机/串口工具采集和日志记录

> 详细 BOM 及原理图请参考工程源文件(.ioc / 原理图 PDF)。


🚧 当前状态与 roadmap

  • 硬件设计完成 — 三路 SW3526S + STM32G030 + ST7735 验证通过
  • 固件核心功能完成 — 三通道独立读取、协议识别、彩屏刷新
  • 预览视频已发布B站播放
  • 🚧 讲解视频 — 制作中,敬请期待

🔗 参考资源

资源链接
📺 预览视频Bilibili: BV16UT369EBX
📦 外壳购买淘宝:604038549945
🔌 前置 USB-A 母座淘宝:1059904825737
📄 STM32G030 数据手册ST官网
🛠️ STM32CubeMXST官网
🛠️ MDK-ARM (Keil)Arm Keil

📜 许可

本项目以 CC BY-NC-SA 4.0 协议发布 — 即 署名-非商业使用-相同方式共享 4.0 国际

您可以自由地 共享(复制、发行)和 演绎(修改、创作衍生作品),但必须:

  • 署名(BY) — 给予原作者署名
  • 非商业使用(NC) — 不得将本作品用于商业目的
  • 相同方式共享(SA) — 衍生作品须采用相同许可协议发布

完整协议文本请见 Creative Commons


Made with ❤️ by LoveFinder

如果项目对你有所帮助,欢迎在 GitHub 上 ⭐star 或在 B站三连支持!

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
[源码]LoveFinder617-3LaneSW3526.7z
52
2
[程序]LoveFinder617-3LaneSW3526.hex
28
克隆工程
添加到专辑
0
0
分享
Logo GIF0
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航