XT60 Tools 是一个基于 CH32V203C8T6 与 RT-Thread 的 XT60 电源控制项目,用于对后级直流负载进行上电、下电和状态切换,并提供电压、电流、功率显示,以及欠压、过流、过功率保护和运行记录功能。
项目当前同时包含:
- 固件工程
- 浏览器 UI 仿真
- 硬件与协议文档
- 对外公开资料草稿
- 使用 USB 键盘或 USB 鼠标直接控制输出通断
- 通过屏幕显示实时电压、电流、功率和运行状态
- 支持欠压、过流、过功率保护
- 支持记录最小电压、最大电流、最大功率
- 支持按键绑定、屏幕旋转和参数持久化
- 提供一个前端仿真页面用于交互验证
- 电池供电设备的输出开关控制
- 测试工装或实验台的负载上电管理
- 需要远离负载进行控制的场景
- 调试阶段对功耗、保护阈值和运行状态的观察
XT60_tools/
├── embed/ 固件工程,基于 RT-Thread 和 CH32V203
│ ├── User/ 业务代码:ADC、USB、显示、协议、Shell、应用逻辑
│ ├── drivers/ 板级驱动
│ ├── Peripheral/ 芯片外设库
│ ├── Core/ 系统核心文件
│ ├── Startup/ 启动文件
│ ├── rtthread/ RT-Thread 源码
│ └── obj/ 构建输出与生成文件
├── simulate/ 浏览器 UI 仿真
├── hardware/ 硬件说明与引脚分配
├── docs/ 项目文档、UI/命令说明、公开资料
├── datasheet/ 参考资料
└── README.md
- 主控:
CH32V203C8T6 - 显示:
1.14"IPS LCD,172 x 320,驱动ST7789V - 输入:XT60 公头
- 输出:XT60 母头
- 控制接口:USB 2.0,用于连接键盘或鼠标
典型输入场景为 3S 锂电池组,设备通过 MCU 控制输出开关级,实现后级负载的通断控制。
仓库中的固件构建目录为 embed/obj/,默认使用 riscv-none-embed-* 工具链。
make -C embed/obj all构建完成后,常见产物位于 embed/obj/ 下,包括:
.elf.hex.lst
清理构建输出:
make -C embed/obj clean本地启动一个静态文件服务:
python3 -m http.server 8000 --directory simulate浏览器访问:
http://localhost:8000
仿真入口为 simulate/index.html。
如果使用 MounRiver Studio / Eclipse 工作流,可从 embed/.project 导入工程,并构建 obj 配置。
默认键盘绑定如下:
ArrowUP:上电ArrowDown:下电tab:切换输出状态
默认鼠标动作如下:
- 左键:上电
- 右键:下电
- 中键:切换输出状态
设备支持通过命令行执行更高级的配置,包括保护阈值设置、记录功能开关、按键绑定和屏幕旋转。
power on
power off
power tog
set-uv <voltage>
set-oc <current>
set-op <power>
record on
record off
record tog
record clear
rotate
reset
说明:
set-uv/set-oc/set-op支持直接输入阈值,也支持on/off/tog- 保护逻辑采用“连续越界并持续完整检测窗口后触发”的方式
reset会恢复默认配置并关闭输出
当前仓库未提供自动化单元测试,建议按以下方式验证改动:
- 固件构建成功,且产物生成正常
- 在硬件上验证输出控制与保护行为
- 在仿真页面检查 240x135 布局与交互反馈
重点场景包括:
set-uvset-ocset-oprecord on/offpower on/off/tog
- 业务代码主要位于
embed/User/与embed/drivers/ - 尽量避免无必要修改
embed/rtthread/、embed/Peripheral/、embed/Core/、embed/Startup/ embed/obj/下为生成内容,修改前应确认是否会被重新生成覆盖- 部分文档包含
<!-- 此文件禁止AI写入 -->标记,更新时需要遵守项目约定
V0.1.0 26/01/05:template projectV0.2.0 26/01/08:ADD UI simulate