
HelixLink 多功能调试器
简介
HelixLink是一个开创性的开源硬件项目,旨在打造一款模块化、可扩展、高性价比的多功能调试器。并通过精心设计的扩展接口,构建一个属于创客和工程师的调试工具生态系统。
简介:HelixLink是一个开创性的开源硬件项目,旨在打造一款模块化、可扩展、高性价比的多功能调试器。并通过精心设计的扩展接口,构建一个属于创客和工程师的调试工具生态系统。开源协议
:CC BY-NC-SA 4.0
描述
HelixLink:多功能嵌入式调试工作站
将DAPLINK在线调试、双路串口、总线工具、逻辑分析、信号发生和本地交互集中到一套可扩展的软硬件平台中。
HelixLink 面向嵌入式工程师、电子爱好者和高校开发者,以先楫 HPM5361 RISC-V MCU 为核心,通过一个 USB 2.0 High-Speed 复合设备连接电脑,并配套设备端图形界面和 Qt 桌面上位机。

代码仓库
视频介绍
【[开源]HelixLink多功能调试器组装教程】
【[开源]HelixLink多功能调试器烧录固件】
文档更新
- 2026-08-14:发布第一版固件、硬件和上位机,基础功能已完成;
1. 项目简介
嵌入式开发中,调试、串口通信、CAN 总线分析、逻辑分析和信号输出往往需要多种工具配合完成。HelixLink 将这些常用功能集中在一块便携式核心板上,并通过屏幕、桌面上位机和扩展接口,满足开发、调试和教学等场景的使用需求。
本项目由 HelixLink 团队共同开发。欢迎加入 QQ 交流群:1077879146(请备注“HelixLink”),与开发者和其他用户一起交流。
2. 项目功能
HelixLink 将在线调试、串口通信、总线调试、信号测量、文件存储和设备管理能力集成到同一块核心板,并通过桌面上位机和扩展接口提供更多功能。
-
核心功能:
- 基于 DAPLink 的 CMSIS-DAP 实现 SWD / JTAG 在线调试与程序烧录,默认 SWJ 时钟配置为 10 MHz。
- 支持双路 USB 转串口,用于串口通信、日志查看和数据透传;另有独立 USB CLI 用于设备命令和调试信息。
- 支持 CAN / CAN FD 调试功能,支持报文收发、过滤和定时发送。
- 支持 I²C 与 SPI 主机工具,可配置总线参数并完成设备读写和协议联调。
- 支持逻辑分析仪,通过 ADC 多路采样获取目标信号,并在桌面端显示波形。
- 当前支持信号发生器功能,可通过上位机配置通道和波形参数,并使用 PWM 合成测试信号;后续将移除该功能,改为 PWM 信号发生器,信号发生器相关功能移至扩展板。
-
存储与本地交互:
- 配备 2.31 英寸 320 × 240 TFT 屏、拨轮、功能按键、LED 和蜂鸣器,可用于状态显示、功能选择和操作提示。
- 配备板载 Flash 和 Micro SD,分别使用 LittleFS 和 FatFs 管理存储数据。
- Micro SD 可通过 USB MSC 暴露给电脑,用于文件传输和存储管理。
-
扩展功能:
- 20 Pin 多功能接口引出 SWD / JTAG、双路 TTL、CAN、I²C、SPI、ADC / PWM、5 V 和 3.3 V。
- 16 Pin 扩展接口引出 GPIO、5 V、3.3 V 和 GND,可连接自定义扩展板。
- 核心板预留 UART Wi-Fi 模块和 SPI 2.4 GHz 模块电路,可继续扩展无线通信功能。
- 预留扩展接口,方便后续扩展其他模块。
-
开发中功能:
- 离线烧录器功能尚未发布。
- CAN FD 和逻辑分析仪性能还有优化空间,信号发生器后续将调整为 PWM 信号发生器。
- 不同功能的扩展板。
3. 主要参数
- 主控: 先楫 HPM5361ICB1 RISC-V MCU
- USB: USB Type-C,USB 2.0 High-Speed
- 屏幕: 2.31 英寸 TFT,分辨率 320 × 240
- 存储: 16 MB Flash,支持 Micro SD
- 供电: USB 5 V 输入,可向外提供 5 V 和 3.3 V
- 整机尺寸: 55 × 55 × 15 mm
4. 硬件设计
4.1 核心板架构
核心板围绕 HPM5361 构建,包含 USB Type-C、LCD、本地输入与指示、板载 Flash、Micro SD、CAN 收发器、调试/通信接口、无线通信模块以及扩展接口。

核心板原理图采用模块化设计,覆盖主控最小系统、电源管理、板载存储、显示与本地交互、CAN 通信,以及调试、无线和通用扩展接口等电路。
4.2 调试与通信接口
本项目采用兼容标准 20 Pin JTAG 定义的多功能接口,同时复用 UART、CAN、I²C、SPI、信号发生器和逻辑分析仪等功能。

- SWD / JTAG:兼容标准 20 Pin JTAG 接口。
- 双路 UART:当前板级代码映射到 MCU 的 UART3 与 UART4,并与 USB CDC 桥接。
- CAN:使用 SIT1042AQTK/3 收发器,支持标准 CAN 和最高 5 Mbit/s 的 CAN FD(本项目未板载 120 Ω 终端电阻)。
- I²C:SCL/SDA 配有 10 kΩ 上拉至 3.3 V,并通过主接口引出。
- SPI、PWM、ADC/OPA:作为调试、采集、输出或扩展功能使用,部分引脚存在复用关系。
4.3 显示、交互与存储
4.3.1 屏幕
核心板配备 2.31 英寸、320 × 240 分辨率的 TFT 屏,通过 SPI 接口驱动,并使用 DMA 提高刷新效率。设备端基于 LVGL 构建图形界面,用于显示设备状态、功能菜单和调试信息。

4.3.2 功能键与拨轮

板上有一个功能键和一个带按压的拨轮。拨轮左右各有两级触点,加上中间按压,相当于五个按键;当前固件使用上拨、下拨和按下三个输入,使用软件消抖。功能键与 BOOT0 复用,上电时按住可进入 USB 引导烧录模式。
4.3.3 LED 与蜂鸣器
板载红绿双色 LED 和蜂鸣器,用于提示设备启动、调试连接和异常状态:
- 开机状态:绿灯以 1 秒亮、1 秒灭的周期闪烁。
- DAP 已连接或目标程序停止运行:绿灯常亮。
- DAP 未连接:红灯常亮。
- 目标程序正在运行:红灯呈呼吸效果。
- 蜂鸣器预设开机、警告和报警三种提示音,分别为 1 kHz 持续 1 秒、2 kHz 持续 2 秒和 3 kHz 持续 3 秒。
当前固件启动后默认进入开机灯效。蜂鸣器默认关闭,主要用于配合后续的离线烧录功能;当前提示音已经配置完成,但尚未接入上层应用代码。
4.3.4 存储系统

核心板配备 W25Q128JVSIQ(16 MB)板载 Flash 和 Micro SD 卡槽。Micro SD 使用的 SPI0 与主控自身的硬件 JTAG 共用 PA04~PA07,固件通过 PA09 的 CD 引脚检测 SD 卡是否插入:插卡后引脚切换为 SPI0,此时无法通过该组 JTAG 接口调试或烧录核心板主控;拔卡后引脚恢复为 JTAG。板载 Flash 使用 LittleFS 管理本地文件;Micro SD 使用 FatFs 管理文件,可存储固件、日志和采集数据,并支持通过 USB MSC 作为 U 盘连接电脑。
4.4 电源与保护
核心板由 USB Type-C 5 V 供电,VBUS 经限流后生成系统 +5V,再转换为 +3V3,并分别为模拟、无线和扩展接口提供独立电源。多功能接口可输出 +5V_OUT 和 +3V3_OUT,两路均带有限流保护。
USB 接口带有 ESD 保护,CAN 总线带有共模电感和 TVS,I²C、SPI、UART 及模拟接口也加了 ESD 保护阵列,用于接口插拔和外部接线时的静电防护。
4.5 扩展与预留接口

核心板预留了 2.4 GHz 和 Wi-Fi 模块位置,便于后续扩展无线调试功能。2.4 GHz 模块与 20 Pin 接口的 JTAG 信号复用,使用该模块时无法使用烧录功能;当前版本暂未使用无线模块。
扩展接口预留了 2 路 UART、DAC,以及 I²C 和 CAN 各 1 路,具体引脚对应如下:
| 引脚 | 外设 |
|---|---|
| PA00、PA01 | UART0 |
| PY06、PY07 | UART1 |
| PY04、PY05 | CAN3 |
| PY02、PY03 | I²C2 |
| PB08、PB09 | DAC |
5. 软件设计
软件代码主要放在 02_software 目录下,目录结构如下:
02_software/
├── firmware/ # 设备固件
│ ├── user/ # 启动入口和模块加载
│ ├── board/ # 板级驱动
│ ├── module/ # DAP、USB 转串口、CAN、I²C、SPI、逻辑分析等功能
│ ├── ui/ # 设备端图形界面
│ └── lib/ # FreeRTOS、CherryUSB、DAPLink、LVGL 等依赖
├── share/ # 固件与上位机共用代码
│ ├── com/ # .proto 消息和 nanopb 生成代码
│ ├── crc/ # CRC 校验
│ └── lwrb/ # 环形缓冲
└── desktop/ # Qt 桌面上位机
└── src/
├── app/ # 主窗口和界面组织
├── modules/ # 各功能页面
├── interfaces/ # 模块与通信层之间的接口
└── core/ # 设备连接、数据分帧、请求应答和事件分发
软件部分包括设备固件和桌面上位机。设备固件从 firmware/user/main.c 启动,完成各级模块初始化后进入 FreeRTOS 调度;上位机请求经 Protobuf 编码后,通过 libusb 发送到设备端 Bulk 接口,设备完成解析并调用对应功能模块,再将结果和状态数据返回上位机。
固件和上位机都使用 CMake 构建。固件使用 HPM SDK 和 RISC-V GCC 工具链;上位机使用 Qt 6.8 和 C++17,libusb 直接随源码编译。两端共用 share/com 下的 .proto 文件,构建时会自动生成对应的 nanopb 代码。

5.1 设备固件
设备固件基于 FreeRTOS,main() 主要完成板级初始化、GPIO 配置和模块加载,随后启动任务调度。各功能模块负责自身的外设配置,并按需要创建信号量、消息队列和任务。
工程在 module_load.h 中参考 RT-Thread 实现了分级初始化注册机制,系统启动时按照板级、设备、组件、环境和应用的顺序加载模块,不需要在 main() 中逐个调用初始化函数。对应的注册宏如下:
#define INIT_BOARD_EXPORT(fn) // 板级初始化
#define INIT_DEVICE_EXPORT(fn) // 设备初始化
#define INIT_COMPONENT_EXPORT(fn) // 组件初始化
#define INIT_ENV_EXPORT(fn) // 环境初始化
#define INIT_APP_EXPORT(fn) // 应用初始化
新增模块时,在 module 目录下建立对应文件并实现初始化函数,再根据模块的依赖关系选择注册级别。需要持续运行的功能可在初始化函数中创建 FreeRTOS 任务。完成注册后,模块会随系统启动自动加载,无需修改 main()。
5.2 统一通信协议
固件和桌面端共用 .proto 消息定义,目前覆盖设备信息、错误、CAN、I²C、SPI、逻辑分析和信号发生模块。
通信帧结构为:
0x55 0xAA | Payload Length (uint32 LE) | Protobuf Envelope | CRC-16/CCITT-FALSE
协议支持请求/响应关联和设备主动通知。单帧 Protobuf 负载上限为 2048 B;大数据采集需要通过多帧事件持续上报。
5.3 桌面上位机
桌面端基于 Qt 6.8 Widgets 与 C++17,采用 UI 线程和设备工作线程分离的模块化设计。当前工程包含:
- 设备发现、连接、信息与能力查询
- CAN / CAN FD 报文收发、过滤与定时发送界面
- I²C 与 SPI 参数配置、数据读写
- 逻辑分析波形显示
- 信号发生参数配置
- 设置、快捷命令、批量发送和会话保存
5.4 主要功能设计
5.4.1 在线调试与 USB 复合设备
设备端使用 CherryUSB 组成一个 USB 2.0 High-Speed 复合设备,其中调试功能采用 DAPLink 的 CMSIS-DAP 实现,负责处理 SWD / JTAG 调试命令。同一个 USB 接口还包含双路 CDC 串口、CLI、上位机通信接口和 Micro SD MSC,各功能使用独立的接口和端点。
5.4.2 双路 USB 转串口
两路 CDC 串口分别桥接 UART3 和 UART4。电脑设置串口波特率、数据位、停止位和校验方式后,固件同步更新对应的物理 UART。USB 收到的数据直接转发到 UART,UART 接收的数据通过缓冲区回传到 USB,实现双向透传。
5.4.3 CAN、I²C 与 SPI
CAN、I²C 和 SPI 模块向 module/com 注册各自的消息处理函数。上位机请求到达后,由通信模块完成解码和分发,再调用对应的 BSP 驱动执行配置、读写或报文发送,结果通过响应消息返回。CAN 接收使用独立任务轮询控制器,收到报文后通过通知消息主动上报,因此不需要上位机反复查询。
5.4.4 逻辑分析与信号发生
逻辑分析仪提供 9 路输入,可选择采集通道并设置高低电平触发条件,采集到的波形通过上位机实时显示,便于查看各接口的电平变化和通信时序。当前使用自定义通信协议,后续考虑适配 PulseView。
当前版本的信号发生器提供 11 个可选输出通道,支持正弦波、方波、三角波和直流输出,可设置频率、幅值和偏置。输出由 PWM 合成,正弦波和三角波需经过外部低通滤波后使用;后续将移除该功能,改为 PWM 信号发生器,相关功能移至扩展板。
5.4.5 存储管理
板载 W25Q128JVSIQ Flash 通过 SPI 连接,使用 LittleFS 管理本地文件;Micro SD 通过 SPI0 连接,使用 FatFs 管理文件。SD 卡在 FatFs 和 USB MSC 之间切换时由状态机统一处理,进入 U 盘模式前先卸载文件系统,退出后再重新挂载,避免电脑和设备端同时访问卡内数据。
5.5 LVGL 界面与 PC 模拟
设备端界面基于 LVGL 开发,界面源码位于 firmware/ui,包含页面、组件、图片和字体等资源,配合拨轮和功能按键进行操作。
工程同时提供 firmware/ui_simulator PC 模拟工程。模拟工程复用设备端的 LVGL 界面源码,使用 CMake 和 SDL2 生成 PC 窗口,可在没有连接硬件的情况下进行界面布局和交互调试;需要时还可以启用 FreeRTOS POSIX 模拟。模拟器主要用于界面开发,显示、拨轮和按键等硬件相关功能仍需在设备上验证。
6. 结构设计
本项目的结构设计采用方形便携结构。根据屏幕比例、边框观感、接口位置和装配方式进行了多次调整,使外形工整简洁,使用时也便于拿取和操作。

整机外形约为 55 × 55 × 15 mm,大小接近掌心。正面使用 2.31 英寸横向屏幕,屏幕上、左、右三侧边框保持对称;下方 JTAG 接口区域的面板用于放置项目 Logo 和运行状态指示灯,降低大黑边的存在感。

拨轮和功能按键布置在侧面,单手即可完成常用操作。同时,USB Type-C、侧面按键和拨轮高度保持一致,整体看起来更加协调。

外壳预留 20 Pin 接口开口,支持标准 20 Pin 调试排线直接插入,无需拆开外壳。

外壳内部设置定位柱和安装孔,核心板、屏幕、导光柱、拨轮和按键按对应位置插入装配,不需要额外使用螺钉。
7. 组装与复刻流程
7.1 PCB 下单与元件采购
- PCB 下单使用最新的
helixlink_core_V1.3,板厚选择 1.6 mm。 - 元件可参考 BOM 购买,推荐从立创商城或淘宝采购,并注意核对封装。
7.2 PCB 焊接与检查

- PCB 背面的排母、Wi-Fi 模块和 2.4 GHz 模块暂不焊接;R7 电阻也不需要焊接,否则会导致 SD 卡无法正确识别。
- 上电前测量电源与 GND 之间是否短路,首次上电建议使用带限流功能的电源。
- 确认
+5V、+3V3等主要电源正常后,再进行固件烧录和功能测试。
7.3 固件烧录
-
从官方仓库下载烧录工具:HPMicro Manufacturing Tool。
-
解压后运行
hpm_manufacturing_gui.exe,在左侧选项栏中选择如下参数:

- 按住 BOOT0 复用的功能按键后连接 USB,使芯片进入 USB 引导模式。

- 选择固件并点击烧录,等待烧录完成。

7.4 基础功能检查
- 烧录完成后断电重启,设备正常启动时绿色 LED 会闪烁,设备管理器中会出现以下 USB 设备。若串口名称尚未显示为 HelixLink USB,属于正常现象,可按下一步修改。其中,
Helixlink USB to UART1对应芯片的 UART3,Helixlink USB to UART2对应芯片的 UART4,Helixlink USB Cli用于调试。

-
项目提供
05_tools/win_usb_rename.ps1脚本。连接 HelixLink 后,以管理员身份运行该脚本,可将 HelixLink 的 USB 串口修改为上图所示的名称,方便区分。 -
在串口助手中选择
Helixlink USB Cli端口,以任意波特率打开,输入help\r\n(必须包含换行)即可收到回复。部分串口助手还需开启DTR才能收到回复;随后可根据提示输入对应指令,验证部分功能。输入命令后必须带换行。

- 连接桌面上位机,确认设备能够被识别,并验证 CAN、I²C、SPI 等功能。验证 CMSIS-DAP 时,在 Keil 的
Debug设置中选择CMSIS-DAP,设备应识别为 CMSIS-DAP 设备,当前设备名称为CherryUSB CMSIS-DAP;连接后绿色 LED 常亮。上位机占用设备时,Keil 无法连接 HelixLink,测试前需先断开上位机。
7.5 接口功能验证
- 使用已知正常的目标板验证 CMSIS-DAP 的 SWD / JTAG 连接和程序烧录。
- 分别验证双路串口收发,以及 CAN、I²C、SPI 的基本通信。
- 检查逻辑分析仪的多通道采集和触发功能,并验证信号发生器的 PWM 输出;正弦波和三角波需接入外部低通滤波器后测量。
7.6 安装外壳
- 先安装屏幕和前壳组件,确认屏幕方向、边框位置和导光柱安装位置。

- 将屏幕、导光柱(可不装)和前壳上的定位结构对齐,确认各部件能够顺利贴合。

- 将屏幕排线与核心板连接,然后核心板与上壳的孔位对齐。

- 安装金属按键。

- 对齐前后壳及后盖,沿定位柱和安装孔插入合拢。

- 装配完成后检查 USB Type-C、20 Pin 接口、屏幕、拨轮和按键,确认接口能够正常插拔,再进行整机上电测试。

8. 参考工程、资料与协议
8.1 参考工程与技术资料
- HPM SDK:MCU 驱动、板级支持、FreeRTOS 及构建体系。
- CherryUSB:USB 2.0 High-Speed 复合设备协议栈。
- DAPLink:CMSIS-DAP 协议核心及 SWD / JTAG 调试实现参考。
- CMSIS-DAP:调试器通信协议与命令说明。
- USB 2.0 Specification:USB 2.0 协议规范。
- HPMicro Manufacturing Tool:HelixLink 固件烧录工具。
工程还使用了 LVGL、LittleFS、FatFs、nanopb、lwrb、libusb 和 Qt 等开源项目,具体版本以仓库源码及子模块记录为准。
相关参考工程和硬件资料:
- HSLink Pro:基于 HPM5301 的 CherryDAP 调试器项目。
- MicroLink 开源工程:基于 CMSIS-DAP、CherryUSB 和 HPM5301 的多功能调试工具。
- MicroLink 在线资料:MicroLink 的功能、接口和使用说明。
- HPM5300 系列官方资料:HPM5300 系列芯片及开发板资料。
- HPM5301 EVKLite 用户指南:HPM5301 EVKLite 硬件和使用参考。
8.2 协议说明
本项目自有内容采用 CC BY-NC-SA 4.0 许可协议:
- 署名(BY):转载、修改或分享时须注明原作者和项目来源。
- 非商业性使用(NC):未经授权,不得将本项目用于商业用途。
- 相同方式共享(SA):基于本项目修改或创作的内容,须继续使用 CC BY-NC-SA 4.0 协议发布。
如需商业使用,请事先取得项目作者的单独授权。
第三方组件继续遵循各自的开源许可证,主要包括:
- HPM SDK:BSD 3-Clause
- CherryUSB、DAPLink:Apache License 2.0
- LVGL、lwrb:MIT License
- LittleFS、FatFs:BSD 风格许可证
- libusb:GNU LGPL 2.1
- nanopb:zlib License
CC BY-NC-SA 4.0 不替代第三方组件原有许可证。转载、分发或发布编译产物时,还应保留相关组件的版权声明和许可证文件;完整条款以各组件源码目录中的 LICENSE、COPYING 或 NOTICE 文件为准。
8.3 团队与贡献
HelixLink项目由【HelixLink团队】协作完成,核心成员分工如下:
【flyn】:负责硬件电路设计、机械结构开发以及 UI 界面设计。
【maxiao】:负责软件整体架构设计,单片机固件与上位机软件的主要代码实现。
【B-J-S】:负责部分底层驱动的编写与测试,修复已知 Bug,撰写项目技术文档及制作演示视频。
本项目欢迎社区贡献。提交代码前请阅读 CONTRIBUTING.md,并遵循已有的代码风格和提交规范。
8.4 联系我们
QQ 复刻交流群:1077879146(入群请备注“HelixLink”)
QQ 闲话群:334607120(入群请备注“HelixLink”)
项目主页:https://gitee.com/helixlink/helixlink
欢迎提交 Issue 和 Pull Request,也欢迎在群里提问、分享你的复刻成果。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

![[Pacon]赛博挂坠](https://image.lceda.cn/oshwhub/pullImage/125a05186c6d420d929370e81091c3fc.jpg?x-oss-process=image/resize,w_122,h_85,m_lfit/format,webp)








