此次软件优化由CW32生态社区用户:随风½魔方广告工程、6336166A_SAKURA随风提供,感谢大家对CW32的大力支持!
软件下载:
https://gitee.com/mofuinsuifeng/cw32-pocket-power-supply
相较最初版的修改
对比基线为飞书资料中的正式版 V1.0(2025-08-29)CW32L011_PD Power(CW32L011口袋电源)使用手册。本版本部分代码和实现思路参考了 wangjing123123/cw32-pocket-power-supply,并结合当前硬件及实测结果进行了调整。
将 V1.0 的列表式界面改为四宫格主页,当前入口为 VOL FIXED、VOL ADJ、PROTOCOL SCAN 和 PDO INFO;重绘菜单、输出状态、数值及提示界面。
在原有 PD/PPS 功能基础上增加 QC2 和 QC3 输出:QC2 提供 5V、9V、12V 固定挡位,QC3 提供 3.6V 至 12V 可调输出;固定和可调页面均可通过右键切换协议。
FS2711 的 PD/PPS 协商、PDO 读取和协议扫描改为非阻塞状态机;增加 I2C/PDO 重试、PDO 合法性校验及扫描退出后的复位恢复流程,减少无 PDO、PPS 不可用和界面长时间阻塞的问题。
PD、PPS、QC2 和 QC3 进入输出页面前增加 WAIT 状态;QC2/QC3 的等待页至少显示 500ms,协议设置完成后再进入输出界面。
调整固定和可调输出流程:先选择挡位和确认参数,再由中键打开输出;调节电压或电流时先关闭 MOS,防止带载直接切换参数。
保留 V1.0 的三级保护思路并重构为统一保护模块。输出开启时先同步 VC/ADC/软件门限、清除中断状态并启用保护,最后打开输出 MOS;关闭输出、调参或退出页面时同步关闭保护。
VC1 改用 25mV 迟滞、LSI 时钟、32N8 滤波和上升沿中断;ADC 看门狗改为监控电流采样 IN1,根据实测 Vref 和 VDDA 计算动态上下窗口,并采用连续 16 次超限判定。
软件过流门限改为 max(设定电流 + 200mA, 设定电流 x 110%),持续 30ms 后关断。
初版没有故障码报警;本版本新增故障分类与故障码,分别使用 UV ERROR、OV ERROR、SW OC ERROR、ADC ERROR 和 VC ERROR 表示欠压、过压、软件过流、ADC 看门狗过流和 VC 快速过流。
新增输出页面中央故障弹窗。短路或保护触发后保持在输出页面,按中键只关闭弹窗,不会因 VBUS 瞬时下降误判拔线并退回主页;PDO INFO 页面不显示故障提示。
运行计时统一使用 BTIM3 的 1ms 时基;增加库仑计,按输出电流和时间累计并显示 mAh/Ah。关闭输出或调参时暂停累计,退出输出页面或 PDO 清空时清零。
在原 Keil 工程之外增加 CMake、Ninja 和 Arm GNU Toolchain 编译方式,可生成 HEX、BIN 和 ELF 固件文件。
CW32L011 便携式可调电源
本项目基于 CW32L011 和 FS2711Q,实现 USB Type-C PD/PPS、QC2 和 QC3 诱骗输出,并提供协议扫描、PDO 信息、输出监测和多级保护功能。
当前界面采用 240 x 135 横屏四宫格布局。PD/PPS 协商、PDO 读取和协议扫描均使用非阻塞状态机,界面操作不会因协议处理长时间卡住。
主要功能
PD 固定电压 PDO 输出。
PPS 可调电压、电流输出。
QC2 固定电压输出:5V、9V、12V。
QC3 可调电压输出:3.6V 至 12V,电压步进 0.2V。
协议扫描和 PDO 能力查看。
实时显示电压、电流、功率、运行时间、容量和 MCU 温度。
欠压、过压、软件过流、ADC 看门狗过流和 VC 快速过流保护。
首页
设备正常上电后播放启动画面,然后进入四宫格首页:
| 入口 | 功能 |
|---|---|
| VOL FIXED | 进入固定电压输出,默认显示 PD 固定 PDO,也可切换到 QC2 |
| VOL ADJ | 进入可调电压输出,默认显示 PPS PDO,也可切换到 QC3 |
| PROTOCOL SCAN | 扫描充电头支持的协议 |
| PDO INFO | 查看 PD、PPS、QC2 和 QC3 的输出能力 |
首页中 VOL 使用白色,FIXED 和 ADJ 使用橙色。

首页按键:
上/下:在上下两行之间移动。
左/右:在左右两列之间移动。
中键:进入当前选中的功能。
如果进入固定或可调输出时 PDO 信息尚未就绪,界面先显示 WAIT 并重新读取 PDO。读取完成后进入对应挡位页;不支持对应 PDO 时显示 NO FIXED PDO 或 PPS UNSUPPORTED,按左键返回。
VOL FIXED
该入口同时提供 PD 固定输出和 QC2 输出。
PD 固定输出
进入页面后,左上角显示彩色 PD FIXED 图标,右上角显示灰色 QC2 图标。
使用上/下键选择 PD 固定电压 PDO。
按中键开始 PD 协商,期间显示 WAIT。
协商成功后进入输出页面。
使用上/下键调节限流值,短按步进 0.1A,长按可加速调节。
第一次按中键确认限流参数,输出仍保持关闭。
再次按中键打开输出;之后按中键可切换输出开关。
按右键重新进入限流编辑状态。进入编辑状态时会先关闭输出。
按左键关闭输出并返回挡位页。
QC2 输出
在 PD 固定挡位页按右键进入 QC2 挡位页。此时左上角显示彩色 QC2 图标,右上角显示灰色 PD FIXED 图标。
使用上/下键选择 5V、9V 或 12V。
按中键应用 QC2 挡位。
界面显示至少 500ms 的 WAIT,随后进入输出页面。
QC2 默认限流为 2.0A,并在进入输出页时视为已确认;首次按中键即可打开输出。
按右键可关闭输出并重新编辑限流值;修改后按中键确认,再按一次中键打开输出。
在 QC2 挡位页按左键或右键返回 PD 固定挡位页。
VOL ADJ
该入口同时提供 PPS 和 QC3 可调输出。
PPS 输出
进入页面后,左上角显示彩色 PPS 图标,右上角显示灰色 QC3 图标。
使用上/下键选择 PPS PDO。
按中键开始 PPS 协商,期间显示 WAIT。
协商成功后进入输出页面。
使用上/下键调节当前字段,短按步进 0.1,长按可加速调节。
按右键在电压和电流字段之间切换。切换字段时会先关闭输出。
第一次按中键确认并应用参数,输出仍保持关闭。
再次按中键打开输出;之后按中键可切换输出开关。
按左键关闭输出并返回挡位页。
QC3 输出
在 PPS 挡位页按右键进入 QC3 页面。此时左上角显示彩色 QC3 图标,右上角显示灰色 PPS 图标。
QC3 可调范围为 3.6V 至 12V,默认从 3.6V 开始,默认限流为 2.0A。
按中键应用 QC3,界面显示至少 500ms 的 WAIT,随后进入输出页面。
使用上/下键调节当前字段;QC3 电压步进为 0.2V,电流步进为 0.1A。
按右键切换电压和电流字段;切换时会先关闭输出。
第一次按中键确认参数,再次按中键打开输出。
在 QC3 挡位页按左键或右键返回 PPS 挡位页。
输出页面
输出页面显示以下信息:
实测输出电压、电流和功率。
设定的最大电压和最大电流。
ON / OFF 输出状态。
输出运行时间。
累计容量,低于 1Ah 时显示 mAh,达到 1Ah 后显示 Ah。
MCU 温度。
QC2 和 QC3 输出页左上角的电压文字与对应协议图标同色。关闭输出或进入参数编辑时暂停计时和容量累计;退出输出页面或 PDO 被清空时清零。
PROTOCOL SCAN
协议扫描页会读取 FS2711Q 的协议位图,并结合 PDO 结果显示充电头能力。当前 QC 映射为:
prot_exist bit2:QC3。
prot_exist bit3:QC2。
页面操作:
扫描期间显示 WAIT 或 SCANNING。
已检测协议优先排列并高亮,未检测协议低亮显示。
上/下键:切换协议列表页。
中键:重新扫描。
左键:停止扫描、关闭输出并返回首页。
停留在协议扫描页时,拔出充电头会在页面底部状态栏显示 NO CHARGER - PLUG IN;重新插入后自动再次扫描。

PDO INFO
该页面汇总显示:
PD 固定 PDO 电压挡位。
PPS 电压范围。
QC2 固定挡位:5V、9V、12V。
QC3 可调范围:3.6V 至 12V。
对应协议未识别时分别显示 PD UNSUPPORTED、PPS UNSUPPORTED、QC2 UNSUPPORTED 或 QC3 UNSUPPORTED。按左键返回首页,中键刷新页面。
故障保护
| 提示 | 含义 |
|---|---|
| UV ERROR | 输出持续欠压 |
| OV ERROR | 输出持续过压 |
| SW OC ERROR | 软件检测到持续过流 |
| ADC ERROR | ADC 看门狗检测到连续过流 |
| VC ERROR | VC1 比较器检测到快速过流 |
保护触发后会立即关闭 MOS 并停止计时,输出页面保留故障弹窗。按中键关闭弹窗;排除故障后,再按中键重新打开输出。

软件过流门限为 max(设定电流 + 200mA, 设定电流 x 110%),持续 30ms 后关断。输出开启前会同步 VC、ADC 和软件保护门限;关闭输出、调节参数或退出页面时同步关闭保护。
编译
需要安装 CMake、Ninja 和 Arm GNU Toolchain。
Release 构建:
cmake --preset Release cmake --build --preset Release
当前开发验证构建:
cmake --build build/CodexCheck
构建目录会生成:
cw32_pocket_power_supply.hex
cw32_pocket_power_supply.bin
cw32_pocket_power_supply
pyOCD 烧录
工程自带 CW32L011 CMSIS-Pack,可通过 ST-Link 烧录 CodexCheck 固件:
pyocd load ` --pack IDEsupport/MDK/WHXY.CW32L011_DFP.1.0.1.pack ` --target cw32l011k8 ` --format hex ` --erase chip ` build/CodexCheck/cw32_pocket_power_supply.hex
如连接多个下载器,可增加 --probe <调试器序列号> 。pyOCD 提示 CMSIS-Pack 中缺少 SVD 不影响擦除和烧录。 调试器序列号>
工程说明
芯片:CW32L011K8。
协议芯片:FS2711Q。
显示分辨率:240 x 135。
Keil 工程:MDK/Project.uvprojx。
CMake 工程入口:CMakeLists.txt。
- 随机文章
- 热门文章
- 热评文章
- 4月10日将迎“龙年龙月龙日龙时”
- 华为新款 MateBook X Pro 官宣:将接入盘古大模型
- 成都金牛:开启营商环境6.0时代
- 海南万盛牧业发展有限公司:推动东澳鹅产业现代化
- 马士基:红海危机仍具不确定性,即期市场运价或持续波动上涨
- 五集政论片《解码长三角》第四集《锦绣画卷》
- 63岁大姐疑因点痣导致癌变,杭州有医院每年都能接诊多例!医生:身上的黑痣,最怕一件事
- 中央气象台4月22日06时发布暴雨黄色预警
- 黄金交易提醒:中东紧张局势助力金价周线五连阳,七成分析师看涨后市
- 茶百道港股上市首日大跌35%,登上热搜!有散户已浮亏超600万港元!
- 关于近期加强监管、防范风险情况的答记者问
- 这场技术交易大会干货满满
- 商务部:西方有关中国“产能过剩”的炒作毫无道理 中方坚决反对
- 1“赛事+”提升城市“流量” 陕西商洛拓经济发展新“赛道”
- 2“五一”临近 持基过节的投资者要注意这几点
- 3华发股份:成功入选“人民优选”品牌 五一黄金周热销30亿
- 4到2027年产业规模达到2000亿元 浙江发布历史经典产业高质量发展计划
- 5钟鼓楼老街区的古都新事
- 6IDC:24Q1全球PC出货量恢复增长 达到疫情前水平
- 7非常危险!女子摔成粉碎性骨折!又是因为洞洞鞋,夏天多人中招……
- 8金税四期试点上线,财税体制改革拉开帷幕!或有资金借道信创ETF基金(562030)逢跌进场布局
- 9初步数据:我国一季度经常账户顺差392亿美元
- 10“发现山西之美”TDC旅游发现者大会举办:共话文旅新生态 邀客体验新玩法
- 11国门“夫妻档” 国庆共坚守
- 12北交所一周审核动态:2家企业更新进展 胜业电气二轮问询回复中称家电头部客户对价格敏感度较低
- 13甘肃白银县域经济:从“一枝独秀”到“多点开花”
- 1小方制药两专利受让信披出错,产品挂网价申报出差池
- 2高考在即,如何拿出最好状态?这份“锦囊”请收好
- 3【央视快评】继续弘扬“爱国、革命”的黄埔精神 为同心共圆中国梦广泛凝心聚力
- 4EBC GROUP平台外汇行情播报|科技股疲态和过热情绪引起不安
- 5父母“上瘾”,凌晨3点都不睡!儿女一查账单惊呆了……
- 6我国最大海上公务执法船“海巡09”巡航惠州港
- 7星环科技:9月10日召开业绩说明会,投资者参与
- 8四川双江口水电站库周交通工程“8·18”较大坍塌事故调查报告公布
- 9红旗天工08正式上市 售价23.98万元起
- 10国证2000指数表现亮眼 景顺长城量化策略助力捕获超额收益
- 112025年华北地区联合招聘活动在京举办
- 12小摩:料宁德时代(03750)股价短期或回调 目标价400港元 维持“增持”评级
- 139月首周港股三大指数收涨 机构对后续持乐观态度,9月首周港股三大指数收涨 机构对后续持乐观态度



