◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
简介:HelixLink是一个开创性的开源硬件项目,旨在打造一款模块化、可扩展、高性价比的多功能调试器。并通过精心设计的扩展接口,构建一个属于创客和工程师的调试工具生态系统。
开源协议:CC BY-NC-SA 4.0
项目发起人
HelixLink项目由【HelixLink团队】协作完成,核心成员分工如下:
【flyn】:负责硬件电路设计、机械结构开发以及 UI 界面设计。
【maxiao】:负责软件整体架构设计,单片机固件与上位机软件的主要代码实现。
【B-S-J】:负责部分底层驱动的编写与测试,修复已知 Bug,撰写项目技术文档及制作演示视频。

本项目欢迎社区贡献。提交代码前请阅读 CONTRIBUTING.md,并遵循已有的代码风格和提交规范。
概 述
HelixLink:多功能嵌入式调试工作站
将DAPLINK在线调试、双路串口、总线工具、逻辑分析、信号发生和本地交互集中到一套可扩展的软硬件平台中。
HelixLink 面向嵌入式工程师、电子爱好者和高校开发者,以先楫半导体 HPM5361 RISC-V MCU 为核心,通过一个 USB 2.0 High-Speed 复合设备连接电脑,并配套设备端图形界面和 Qt 桌面上位机。

代码仓库
https://gitee.com/helixlink
视频介绍
文档更新
2026-08-14:发布第一版固件、硬件和上位机,基础功能已完成。
2026-08-21:添加附件清单BOM,添加面板下单参数等说明。
1. 项目简介
嵌入式开发中,调试、串口通信、CAN 总线分析、逻辑分析和信号输出往往需要多种工具配合完成。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 5V 输入,可向外提供 5V 和 3.3V
整机尺寸: 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 路,具体引脚对应如下:
5. 软件设计
软件代码主要放在 02_software 目录下,目录结构如下:

软件部分包括设备固件和桌面上位机。设备固件从 firmware/user/main.c 启动,完成各级模块初始化后进入 FreeRTOS 调度;上位机请求经 Protobuf 编码后,通过 libusb 发送到设备端 Bulk 接口,设备完成解析并调用对应功能模块,再将结果和状态数据返回上位机。
固件和上位机都使用 CMake 构建。固件使用 HPM SDK 和 RISC-V GCC 工具链;上位机使用 Qt 6.8 和 C++17,libusb 直接随源码编译。两端共用 share/com 下的 .proto 文件,构建时会自动生成对应的 nanopb 代码。
设备固件基于 FreeRTOS,main() 主要完成板级初始化、GPIO 配置和模块加载,随后启动任务调度。各功能模块负责自身的外设配置,并按需要创建信号量、消息队列和任务。
工程在 module_load.h 中参考 RT-Thread 实现了分级初始化注册机制,系统启动时按照板级、设备、组件、环境和应用的顺序加载模块,不需要在 main() 中逐个调用初始化函数。对应的注册宏如下:

新增模块时,在 module 目录下建立对应文件并实现初始化函数,再根据模块的依赖关系选择注册级别。需要持续运行的功能可在初始化函数中创建 FreeRTOS 任务。完成注册后,模块会随系统启动自动加载,无需修改 main()。
固件和桌面端共用 .proto 消息定义,目前覆盖设备信息、错误、CAN、I²C、SPI、逻辑分析和信号发生模块。
通信帧结构为:
0x55 0xAA | Payload Length (uint32 LE) | Protobuf Envelope | CRC-16/CCITT-FALSE
协议支持请求/响应关联和设备主动通知。单帧 Protobuf 负载上限为 2048 B;大数据采集需要通过多帧事件持续上报。
桌面端基于 Qt 6.8 Widgets 与 C++17,采用 UI 线程和设备工作线程分离的模块化设计。当前工程包含:
设备端使用 CherryUSB 组成一个 USB 2.0 High-Speed 复合设备,其中调试功能采用 DAPLink 的 CMSIS-DAP 实现,负责处理 SWD / JTAG 调试命令。同一个 USB 接口还包含双路 CDC 串口、CLI、上位机通信接口和 Micro SD MSC,各功能使用独立的接口和端点。
两路 CDC 串口分别桥接 UART3 和 UART4。电脑设置串口波特率、数据位、停止位和校验方式后,固件同步更新对应的物理 UART。USB 收到的数据直接转发到 UART,UART 接收的数据通过缓冲区回传到 USB,实现双向透传。
CAN、I²C 和 SPI 模块向 module/com 注册各自的消息处理函数。上位机请求到达后,由通信模块完成解码和分发,再调用对应的 BSP 驱动执行配置、读写或报文发送,结果通过响应消息返回。CAN 接收使用独立任务轮询控制器,收到报文后通过通知消息主动上报,因此不需要上位机反复查询。
逻辑分析仪提供 9 路输入,可选择采集通道并设置高低电平触发条件,采集到的波形通过上位机实时显示,便于查看各接口的电平变化和通信时序。当前使用自定义通信协议,后续考虑适配 PulseView。
当前版本的信号发生器提供 11 个可选输出通道,支持正弦波、方波、三角波和直流输出,可设置频率、幅值和偏置。输出由 PWM 合成,正弦波和三角波需经过外部低通滤波后使用;后续将移除该功能,改为 PWM 信号发生器,相关功能移至扩展板。
板载 W25Q128JVSIQ Flash 通过 SPI 连接,使用 LittleFS 管理本地文件;Micro SD 通过 SPI0 连接,使用 FatFs 管理文件。SD 卡在 FatFs 和 USB MSC 之间切换时由状态机统一处理,进入 U 盘模式前先卸载文件系统,退出后再重新挂载,避免电脑和设备端同时访问卡内数据。
设备端界面基于 LVGL 开发,界面源码位于 firmware/ui,包含页面、组件、图片和字体等资源,配合拨轮和功能按键进行操作。
工程同时提供 firmware/ui_simulator PC 模拟工程。模拟工程复用设备端的 LVGL 界面源码,使用 CMake 和 SDL2 生成 PC 窗口,可在没有连接硬件的情况下进行界面布局和交互调试;需要时还可以启用 FreeRTOS POSIX 模拟。模拟器主要用于界面开发,显示、拨轮和按键等硬件相关功能仍需在设备上验证。
本项目的结构设计采用方形便携结构。根据屏幕比例、边框观感、接口位置和装配方式进行了多次调整,使外形工整简洁,使用时也便于拿取和操作。
整机外形约为 55 × 55 × 15 mm,大小接近掌心。正面使用 2.31 英寸横向屏幕,屏幕上、左、右三侧边框保持对称;下方 JTAG 接口区域的面板用于放置项目 Logo 和运行状态指示灯,降低大黑边的存在感。
拨轮和功能按键布置在侧面,单手即可完成常用操作。同时,USB Type-C、侧面按键和拨轮高度保持一致,整体看起来更加协调。
外壳预留 20 Pin 接口开口,支持标准 20 Pin 调试排线直接插入,无需拆开外壳。
外壳内部设置定位柱和安装孔,核心板、屏幕、导光柱、拨轮和按键按对应位置插入装配,不需要额外使用螺钉。
7. 组装与复刻流程
helixlink_core_V1.3,板厚选择 1.6 mm,板层结构选JLC04161H-3313,免费阻抗。


+5V、+3V3 等主要电源正常后,再进行固件烧录和功能测试。从官方仓库下载烧录工具:HPMicro Manufacturing Tool (https://github.com/hpmicro/hpm_manufacturing_tool)。
解压后运行 hpm_manufacturing_gui.exe,在左侧选项栏中选择如下参数:



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 才能收到回复;随后可根据提示输入对应指令,验证部分功能。输入命令后必须带换行。
Debug 设置中选择 CMSIS-DAP,设备应识别为 CMSIS-DAP 设备,当前设备名称为 CherryUSB CMSIS-DAP;连接后绿色 LED 常亮。上位机占用设备时,Keil 无法连接 HelixLink,测试前需先断开上位机。





工程还使用了 LVGL、LittleFS、FatFs、nanopb、lwrb、libusb 和 Qt 等开源项目,具体版本以仓库源码及子模块记录为准。
相关参考工程和硬件资料:
MicroLink 开源工程:基于 CMSIS-DAP、CherryUSB 和 HPM5301 的多功能调试工具。
MicroLink 在线资料:MicroLink 的功能、接口和使用说明。
HPM5300 系列官方资料:HPM5300 系列芯片及开发板资料。
以上内容,参考原文链接:https://oshwhub.com/flyn/helixlink
本项目自有内容采用 CC BY-NC-SA 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans)许可协议:
如需商业使用,请事先取得项目作者的单独授权。
第三方组件继续遵循各自的开源许可证,主要包括:
CC BY-NC-SA 4.0 不替代第三方组件原有许可证。转载、分发或发布编译产物时,还应保留相关组件的版权声明和许可证文件;完整条款以各组件源码目录中的 LICENSE、COPYING 或 NOTICE 文件为准。
设计图
helixlink_core_V1.3 面板
原理图
(共计6张图片,左右滑动查看)

BOM、3D模型、上位机及相关附件下载
参考原文链接:https://oshwhub.com/flyn/helixlink
END
以上内容来自先楫开发者的原创分享。
我们始终相信开发者共创的力量。先楫社区坚持开源共享、互惠互利,贴近每一个开发者,一步一个脚印,一点一滴积累,为成为更好的我们而不断努力。
心之所向,锐意进取,星辰大海,恣意成长。
MCU生态建设需要您的贡献与支持!欢迎广大爱好者和开发者踊跃投稿,供稿请联系marketing@hpmicro.com。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

工作时间:8:00-18:00
电子邮件
扫码二维码
获取最新动态
