TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 780 subscribers
Post #1622 5
ESP32-S3 自制 CH32V003 烧录器

作者用 ESP32-S3 替代专用 WCH-Link,通过 SWIO 协议为 CH32V003 实现完整烧录流程,并开源了全部代码。

项目链路为 PC → ESP32-S3 → SWIO → CH32V003,由 ESP32-S3 直接处理时序敏感的 SWIO 通信与 DMI 调试接口,实现了目标检测、内存访问、flash 解锁、页擦除、编程、回读校验及复位运行。硬件方面使用 ESP32-S3 N8R2、CH32V003A4M6(SOP-16)、4.7kΩ–10kΩ SWIO 上拉电阻及 CP6208 电机驱动。

早期版本 SWIO 同步失败(DMCFGR = 0xFFFFFFFF),作者排查启动时序、接收行为与物理接线后,成功输出 SWIO sync: OK、DMI communication: OK、CH32 ID = 0x0713BB91。flash 操作中观察到 FLASH_CTLR 解锁前后从 0x00008080 变为 0x00000200,随后用确定性数据测试编程与回读,零失配。

首个实际应用为驱动 PC4 的裸机固件,配合 CP6208 与直流电机。首次上电失败,排查发现固件已正确烧录且 PC4 输出约 3.3V,问题出在 CP6208 第二输入为 HIGH 而非 LOW,接地后电机正常运转。作者总结:烧录链路完全正确时,最终硬件应用仍可能出错。

主机端提供 Python 命令行工具,示例:python tools/flash_tool.py --port COM10 --bin firmware/ch32_blink/blink.bin --addr 0x08000000 --reset。真机最终测试全部通过:目标检测、编程、校验、复位运行均 OK。


代码仓库包含 ESP32-S3 固件、CH32V003 示例、Python 烧录器、硬件与 SWIO/DMI 文档。作者下一步计划探索该方案向其他 WCH RISC-V 器件的扩展性。

GitHub

#开发者 #工具 #ESP32S3 #CH32V003 #SWIO #RISCV #嵌入式 #烧录器
@DevToolboxHub
More from @devtoolboxhub
  1. Sep 26, 2026PostgreSQL 复制槽上限参数 max_replication_slots 解析 max_replication_slots 决定共享内存中复制槽数组的长度,仅此而已。它不决…
  2. Sep 26, 2026五仓库架构踩坑:Gitlink 与双 CI Flude 团队复盘了多仓库架构的实践代价。项目从第一分钟起就选择拆分成独立仓库,Pipeline、engine、design-docs…
  3. Sep 26, 2026Xeno Core:TypeScript 后端架构框架 Node.js 复杂系统的架构选型往往决定代码的长期命运。开发者常在两条路之间纠结:要么依赖重度使用实验性装饰器和反射(如…
  4. Sep 25, 2026用 SLO 给 AI Agent 的行为定个预算 Grafana Labs 提出把可靠性工程里的错误预算(error budget)思路用到 AI Agent 上。延迟、token…
  5. Sep 25, 2026Xcode 27.2 改用 JSON 项目格式 Xcode 27.2 用基于 JSON 的 project.xcproj 取代了沿用多年的 project.pbxproj。新建项目…
  6. Sep 25, 2026PostgreSQL 的 max_prepared_transactions 该不该开 prepared transaction 是脱离会话独立存在的两阶段提交事务。执行 PREP…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →