此次软件优化由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。
- 随机文章
- 热门文章
- 热评文章
- 马云内部发文:AI时代刚刚到来 一切才刚开始
- 热潮涌动的人工智能距离科技“奇点”还有多远
- 新点软件成功中标上海市综合监管运行管理系统建设项目
- 招商蛇口一季度销售金额402亿元,3月斥资11.98亿元获一宗地块权益
- 分手含泪转让演唱会门票?小心有诈!
- 恒丰银行扎实开展全民国家安全教育日活动
- 央行回应社融增速回落:仍处历史较高水平,避免过度冲高导致后劲不足
- 以色列引汇市波动,鲍威尔继续影响市场!下周哪些央行可能干预市场?
- 科创主题基金获批五周年:有产品收益率翻倍,高至115.6%
- 超燃!港股尾盘攻势不减,港股互联网ETF(513770)涨近4%!续刷年内新高!
- 关于近期加强监管、防范风险情况的答记者问
- 航拍新疆|飞播水稻种 2小时200亩
- 罕见!今天和本周表现最好的公募基金,都布局了港股标的
- 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奇瑞将与欧洲高端品牌签署技术平台授权协议
- 32024中国长三角青年企业家交流大会在杭州举办
- 4雷克萨斯GX中东版 全部在售 2023款 2022款 2020款 2019款 2018款成都远卓名车雷克萨斯GX中东版团购钜惠20万 欢迎上门试驾
- 5零跑C16将搭载中创新航磷酸铁锂电池
- 6Q1净利微增7%,宁德时代股东总数较2023年年末减少10728户
- 7哪吒,需要背水一战
- 8“新”中有“机”!创新服务承接新流量 撬动消费升级
- 9非创始版SU7何时交付 小米:工厂生产爬坡 全力提高产能
- 10央媒评卧铺挂帘:谁买的票谁做主
- 11江西南昌首部“多规合一”国土空间总体规划获批
- 12方程豹旗舰硬派越野!豹8正式亮相:仰望U8“青春版”登场
- 13583家族/造型霸气 方程豹豹8量产版发布



