HiveComm 串口助手 · 使用手册
适用版本:V1.1.6 | 面向:泰芯 TXW81X/TXW82X 方案开发者与产线
本手册讲「怎么用」。开发/构建说明见 README.md,版本历史见 ChangeLog.txt。
1. 这是什么
HiveComm(创芯蜂串口助手) 是 创芯蜂(HiveChip) 出品的 Windows 桌面工具,集成:
- 串口收发:调试各类串口设备/模组(含 TXW81X/TXW82X),支持 HEX、时间戳、查找、多编码。
- 扩展命令面板:把常用 AT/调试指令存成按钮,一键下发。
- 资源工具:图片/音频/任意文件转 C 数组、图片转 LVGL v8 图像、文件信息预览与音频试听。
- Flash 烧录工具:经 CKLINK(USB-ICE) JTAG 给 TXW81X/TXW82X 写/读/擦 Flash,并自动识别芯片型号。
- 在线升级(OTA):启动自动检查新版本。
TXW81X / TXW82X 是珠海泰芯半导体(泰芯)的芯片;创芯蜂(HiveChip)为其代理方案商。本工具是创芯蜂为基于该系列芯片的方案开发/产线提供的串口调试与 Flash 烧录工具。
界面默认英文,可在 Settings → Language 切换 中文。本手册按界面上的英文标签讲解。
2. 启动
直接双击 HiveComm.exe 运行,无需安装。首次启动会联网检查更新(见 第 11 节)。
Flash 烧录功能依赖自带的 csky_debug/ 工具目录,已打包进 exe,无需另装。
3. 界面总览
┌─ 菜单栏:Settings | Help ────────────────────────────┐
├─ 顶部串口栏:Port Baudrate [Open Serial] Chip ────┤
├─ 标签页:Multi Text | Flash Tools | Resource Tools ──┤
│ │
│ 日志/接收区(大文本框) │
│ │
├─ 发送框(多行) [Send] [Line break][Hex TX] │
├─ [Clear log] [Save log] [Reset] │
└─ 底部进度条 ────────────────────────────────────────┘
- 菜单栏:
Settings(编辑/显示/编码/语言)、Help(官网/关于)。 - 顶部串口栏:选口、波特率、开关串口、选芯片型号。
- 标签页:三大功能区,下面分别讲。
- 底部进度条:烧录/读/擦等耗时操作时显示忙碌。
4. 串口收发
4.1 连接串口
- Port:从下拉选 COM 口(插拔会自动刷新)。
- Baudrate:选波特率(如 115200)。
- 点 Open Serial 打开;按钮变为关闭状态、再点即关闭。
- Chip:选模组型号(
TXW81X/TXW82X等)。该选择也用于 Flash 工具,并跨会话记忆。
4.2 发送数据
- 在底部多行发送框输入内容,点 Send 下发。
- Line break:勾选后每次发送在末尾补换行(
\r\n)。 - Hex TX:勾选后把发送框内容按十六进制解析下发(如
A1 B2 C3)。 - Reset:点一下依次「发送
AT+Z\r\n→ 拉低 RTS 片刻」,用于复位模组。
小技巧:把文件拖拽到窗口,其完整路径会自动填入发送框。
4.3 接收与日志
- 收到的数据实时显示在日志区,自动跟随到底部;手动向上滚动后不再抢视图,便于查看历史。
- Clear log:清空日志区(若启用了「实时日志」,对应文件也会一并清空,见第 5 节)。
- Save log:把当前日志区内容另存成一个文本文件(一次性快照)。跟「实时日志」不同——那个是持续追加写入,这个是手动点一次存一次。
4.4 AI / MCP 持久串口会话
用 HiveComm.exe --mcp 接入支持 MCP 的 AI 助手时,可通过 serial_open 打开一个持续监听的串口会话,随后反复调用 serial_send / serial_read;发送期间接收线程不会停止,也不会清空已经收到的数据。使用结束后调用 serial_close 释放串口。MCP 工具及参数会由 exe 自动提供,无需另装 Python。
5. 显示选项(Settings → Display)
| 菜单项 | 作用 |
|---|---|
| Hex RX | 接收数据以十六进制显示(每行字节数随窗口宽度自适应)。与发送框的 Hex TX 互不影响。 |
| Time | 每行接收数据前加时间戳。 |
| Encoding | 接收文本的解码方式:UTF-8 / UTF-16 / GBK / GB2312 / GB18030。中文乱码时切这里。 |
| Expansion | 显示/隐藏扩展命令面板(见第 7 节)。 |
| Auto Reset(Ctrl+R) | 打开串口时自动执行一次复位。 |
| 实时日志(Ctrl+L,菜单固定显示中文,不随界面语言切换) | 勾选后弹出「另存为」选一个文件,此后收到的数据会实时追加写入该文件(内容与日志区完全一致,含 Hex/时间戳显示效果);取消勾选即停止写入。跟 Clear log 联动,见 4.3 节。 |
6. 查找(Settings → Edit → Find)
点 Find 调出查找栏,在日志区内检索:
- 所有命中黄色高亮,当前命中橙色高亮。
- 大数据量下依然流畅(用 Qt 选区染色,5000 命中也是毫秒级)。
- 持续接收时高亮会随新数据更新。
7. 扩展命令面板(Multi Text 标签 / Display → Expansion)
把常用指令存成「命令位」一键下发,免去反复手输。面板是一组「文本框 + 按钮」的命令位(可滚动,约 39 个)。
- 存指令:在某行文本框里填指令(如
AT+RST)。 - 发指令:点该行按钮,或在该文本框里按回车——都会把这条指令填入发送框并立即发送。
- Config File 区(配置名在下拉框选):
- New File:新建一套命令配置。
- Save:保存当前命令集(关闭软件也会自动保存)。
- Refresh:重新载入。
- 可保存多套命名配置,按需切换。
适合产线固定流程:把 AT+... 系列指令排进各行,照顺序点按钮即可。
8. 资源工具(Resource Tools 标签)
原「Image Tools / 图片工具」。现已扩展为通用资源文件工具:除图片外,还支持音频及任意文件转 C 数组,并能预览文件信息、试听音频。
左侧 Resource file list 选择/预览文件;下方 Open File(选单个文件,过滤器含图片/音频,也可选 All Files 选任意文件)、Open Folder(批量收集文件夹内图片/音频)。右侧两个子标签做转换。
已支持格式:图片(PNG / JPG / GIF / BMP …)+音频(WAV / MP3 / FLAC / OGG)。「Convert C File」对任意文件都能转。
8.1 预览与文件信息
- 选中图片:左侧预览区显示缩略图。
- 选中非图片文件(音频/其它):预览区显示文件信息——文件名、类型(如 WAV / MP3 / PNG)、大小(KB);若是 WAV 还显示采样率 / 声道 / 位深。
8.2 音频试听
选中音频文件时,文件列表下方出现 ▶ 播放 / ■ 停止 按钮:
- 点 ▶ 播放 试听,再点 ■ 停止;切换文件、切到别的标签页或关闭软件都会自动停止。
- 基于 Windows 系统自带的解码器(无需额外安装):WAV / MP3 可直接播放;OGG / FLAC 取决于系统是否装了对应 codec——装了才可播,没装则按钮置灰并提示「暂不支持播放此格式」。
8.3 Normal Tools — 转 C 数组文件
- Convert C File:把所选文件的原始字节转成
const unsigned char[]的.c文件。支持图片、音频乃至任意文件(整文件嵌进固件,运行时再用对应解码器解)。 - 生成的
.c头部注释带文件信息:格式名、字节数,图片→分辨率、WAV→采样率 / 声道 / 位深;识别不出的格式标unknown也照转。 - 数组后附长度变量
const unsigned int <名>_len = sizeof(<名>);,跨文件取长度用它:别的源文件extern const unsigned char <名>[]; extern const unsigned int <名>_len;即可(extern的数组是不完整类型、sizeof失效,故用此变量替代)。注释里也给了现成的extern声明可直接抄。
8.4 Lvgl Tools — 转 LVGL v8 图像(图片)
把图片解码成像素生成 LVGL v8 图像(lv_img_dsc_t),完整对齐 lvgl.io 网页转换工具的 v8 标签:
- Color format(颜色格式,15 种):True color / True color with alpha / Chroma keyed、Alpha 1·2·4·8 位、Indexed 1·2·4·8 位、RAW / RAW alpha / RAW chroma、RGB565A8。
- Output format(输出,5 种):C array、Binary RGB332 / RGB565 / RGB565 Swap / RGB888。
- Dither:勾选启用 Floyd–Steinberg 抖动(减少色带)。
- Big-endian:二进制输出多字节像素按大端排列。
- 点 Convert LVGL 生成单个
.c或.bin。
Lvgl Tools 的选项跨会话记忆(不记上次打开的文件)。
9. Flash 烧录工具(Flash Tools 标签)★
给 TXW81X / TXW82X 写/读/擦 Flash。走 CKLINK(USB-ICE) JTAG,与串口 COM 口无关。
📖 完整图文步骤(界面图解 + 排错 + 命令行/MCP 自动化)见 烧录固件教程。下面是要点速览。
9.1 准备
- 装驱动(首次):安装 CKLink 驱动,或安装 CDK 时会自动装好驱动。装好后软件
CKLINK下拉才能发现设备。 - 接线:CKLINK 接 PC 与目标板(本系列多为 SWD/cJTAG 2 线),目标板正常供电。
- 选型号:底部串口栏的 Chip 选
TXW81X或TXW82X——或用 Flash Tools 里的 Detect Chip 自动识别。 - 多板选板:插入多块 CKLink 时,下拉项方括号显示设备序列号末 4 位(如
[F894]),按该标识选择目标板;烧录仍使用完整设备 ID 锁定。
9.2 Detect Chip(自动识别芯片)
点 Detect Chip:后台连接 CKLINK 读 CPU Type,CK803→TXW81X / CK804→TXW82X,自动填好顶部 Chip 框。
- 运行中按钮变 Cancel,再点可取消。
- 只做 JTAG 连接读 CPU,不读 Flash、不跑算法,尽量不打扰目标。
9.3 写 Flash(Target Objects)
最多 3 个 Bin(Bin 1/2/3),每行:
| 控件 | 含义 |
|---|---|
| Program | 勾选=本行参与烧录。 |
| Verify | 勾选=烧完校验。 |
| Address: 0x___ | 该 Bin 烧录的起始地址(十六进制,免填 0x)。 |
| ... | 选择 .bin 文件。 |
填好后点 Start 开始烧录,日志区实时回传进度。地址/路径/勾选状态跨会话记忆。
9.4 读 Flash(Read Flash)
- Flash start address:起始地址,如
0x0。 - Flash read length:读取长度,如
0x10000。 - 点 Read Flash,选择保存的
.bin路径。
9.5 擦除 Flash(Erase Flash)
- Erase start address / Erase length (bytes):擦除范围(按
Flash Settings的擦除方式可能整片/按扇区)。 - 点 Erase Flash,二次确认后执行。
9.6 Flash Settings(参数)
| 项 | 说明 |
|---|---|
| Timeout(s) | 单次操作总超时(含失败重试预算)。连接不稳可调大。 |
| Erase | 擦除方式:Erase sectors(按扇区)/ Chip erase(整片)/ Erase range(按范围)/ No erase(不擦)。 |
| ICE Clk(kHz) | JTAG/ICE 时钟。连接不稳可调小(如 6000)后重试。 |
设置项跨会话记忆。
9.7 注意事项
- 一次只跑一个操作:写/读/擦/探测互斥,运行中其他按钮锁定、活动按钮变 Cancel(再点即取消)。
- 连接不稳(偶发
Fail to check had module等):先确认 JTAG 接线短而稳、3.3V 供电稳、ICE 时钟不要过高;可调小 ICE Clk + 调大 Timeout 重试。 - 频繁探测/异常中断可能让芯片停在调试态——重新上电目标板即可恢复。
- 升级 CKLink 探头固件:CKLINK 下拉里每块探头会显示它自身的固件版本(如
v3.5)。只有识别不到 USB 序列号的老探头才会自动弹窗询问升级(带序列号的探头哪怕固件低于 3.5 也照常能烧、不打扰;没有单独的升级按钮;选「暂不」则本次运行不再主动弹);点 立即升级 后约半分钟、不可取消,期间不要拔 USB / 关程序,升级后不可降级;很老的探头升完会多出序列号和一个 COM 口。没有序列号的老探头必须先升级才能烧录(否则厂商驱动会在可被打断的烧录途中强制刷它)——用它点烧/读/擦/探测会被拦下并再次弹窗。详见烧录教程。 - 接线/供电/时钟都对仍连不上:可能是芯片固件复用了调试口
PA9/PA10、上电即占用。可:① 短接 Flash 的 1、2 脚后再烧录;② 先点烧录再给芯片上电(卡复位瞬间同步,成功率非 100%、需多试);③ 串口能通则发AT+GOTOBOOT强制进烧录模式(烧完需重新上电)。详见烧录教程。
10. 语言切换(Settings → Language)
English / 中文 实时切换界面语言。
11. 软件更新(OTA)
- 启动时自动向
upgrade.hivechip.com检查新版本,有更新则弹更新提示卡片:显示当前版本→新版本、安装包大小、更新内容。 - 三个选择:
- 立即更新:下载新版、校验后自动替换并重启。
- 稍后提醒:本次跳过,下次启动再提示。
- 跳过此版本:永久跳过该版本,更高版本仍会提示。
- 下载/校验失败会提示并回到主界面,不会退出软件。
12. 关于(Help)
- Hive Chip:打开官网
hivechip.com。 - About HiveComm:显示软件名与版本号。
13. 常见问题
| 现象 | 处理 |
|---|---|
| 接收中文乱码 | Settings → Display → Encoding 换 GBK/UTF-8 等匹配模组输出。 |
| 看不到 COM 口 | 检查驱动/连线;插拔后列表会自动刷新。 |
| 收发框看到的是十六进制 / 想发十六进制 | 显示用 Display → Hex RX;发送用发送框旁 Hex TX,两者独立。 |
| Flash 连不上 / 识别失败 | 见 9.7:查 JTAG 接线与供电、调小 ICE Clk、调大 Timeout;必要时给目标板重新上电。 |
| Flash 工具找不到串口 | Flash 走 JTAG(CKLINK),不用 COM 口,属正常。 |
找不到 Flash Tools / 扩展面板 | 在 Settings → Display → Expansion 打开扩展显示。 |
*本手册随软件版本更新。发现与实际界面不符,请反馈。*
HiveComm 固件烧录图文教程
适用版本:V1.1.6 | 面向:泰芯 TXW81X / TXW82X 方案的开发者、产线与自动化集成
本教程专讲「怎么把固件烧进芯片」(GUI 图文 + 命令行/MCP 自动化)。
功能概览见 使用手册,开发/构建见 README.md,版本历史见 ChangeLog.txt。
1. 烧录原理(先搞清这一点)
HiveComm 的 Flash 烧录 走 CKLINK(USB-ICE) 的 JTAG/SWD 调试通道,与串口 COM 口完全无关。它在后台调用自带的 CSKYFlashProgramerConsole.exe(已打包进 HiveComm.exe,无需另装)把固件写入芯片 Flash。
⚠️ 所以:Flash 工具不需要、也不会用到 COM 串口。在 Flash Tools 里找不到串口选择是正常的。串口只用于收发数据调试(见使用手册)。
支持芯片:
| 芯片型号 | CPU 核 | Detect 识别依据 |
|---|---|---|
| TXW81X | C-SKY CK803 | CPU Type 含 CK803 |
| TXW82X | C-SKY CK804 | CPU Type 含 CK804 |
2. 硬件连接
首次使用先装 CKLink 驱动:单独安装 CKLink 驱动即可;或安装 CDK(C-Sky Development Kit)——它会自动装好 CKLink 驱动。装好后插上 CKLink,Windows 设备管理器能识别、软件的 CKLINK 下拉才能发现它。
- CKLink 一端连电脑 USB,另一端的 JTAG/SWD 排线连到目标板的调试口。本系列多为 SWD / cJTAG 2 线(TCK / TMS)+ GND + 3V3 参考。
- 目标板独立正常供电(CKLink 只是调试/烧录通道,不一定给目标板供电)。
- 接线尽量短而稳,3.3V 供电稳定 —— 这是连接成功率的首要因素(接触不良、线长、供电抖动是连不上的最常见原因)。
插上 CKLink 的 USB 后,软件会自动发现它(Windows PnP 热插拔,纯只读、不碰芯片),无需手动刷新。
3. 五步总览
接线上电 → 打开 Flash Tools 面板 → 选 CKLink 并识别芯片 → 配置 bin 与地址 → 点 Start,看日志出现 ✔ 操作成功 (rc=0) 即完成。
下面逐步图解。
4. GUI 图文烧录(主线)
4.0 打开 Flash Tools 面板
Flash 工具在扩展面板里。若主界面看不到 Flash Tools 标签:
菜单Settings → Display → Expansion打开扩展显示,然后切到Flash Tools标签页。
界面默认英文;可在 Settings → Language 切中文。本教程按界面上的英文标签讲解。
4.1 界面图解
| # | 区域 | 作用 |
|---|---|---|
| 1 | Chip(底部串口栏) | 选芯片型号 TXW81X / TXW82X / TXW817-810。可手动选,也可由 ③ 的 Detect Chip 自动填。跨会话记忆。你手动选的型号优先:选定后即以你的选择为准,不会被上一次探测结果改回;换板或改选 CKLink 也会作废上次的探测结果(V1.1.5 起)。 |
| 2 | CKLINK 下拉 | 选用哪一块 CKLink 烧录。插拔自动刷新,旁边 发现 N 个 实时报数。插了多块时必须在这里选一块(否则不烧、防烧错板)。 |
| 3 | Detect Chip | 后台连 CKLink 读 CPU Type,自动识别 TXW81X/82X 并填到 ①。运行中变 Cancel。 |
| 4 | Target Objects | 写 Flash 的主区,最多 3 行 Bin(见 4.4)。 |
| 5 | Start | 收集勾选的行 → 校验地址/文件 → 开始烧录。运行中变 Cancel(再点即取消)。 |
| 6 | Read Flash | 把 Flash 内容读出来存成 .bin(见 5.1)。 |
| 7 | Erase Flash | 按地址范围擦除 Flash(不可恢复,见 5.2)。 |
| 8 | Flash Settings | Timeout(s) 超时 / Erase 烧前擦除方式 / ICE Clk(kHz) 时钟。跨会话记忆。 |
| 9 | 烧录日志 | 只读,实时回传 Console 输出与进度里程碑。 |
| 10 | 底部进度条 | 烧/读/擦时显示进度(写、读为百分比,擦/纯校验为忙碌动画)。 |
4.2 步骤 A:连接并选择 CKLink
- 确认 ② 的 CKLINK 下拉里有设备,旁边显示 发现 1 个(或更多)。
- 只插了一块 → 不用管,软件自动用它。
- 插了多块(产线常见)→ 必须在下拉里点选其中一块。下拉项形如
[C3D4] v3.5 CKLink_Lite_V2-A1B2C3D4 COM15:方括号是设备序列号末 4 位,便于快速区分;v3.5是这块 CKLink 探头自身的固件版本。- 没选就直接操作会被拦下,日志报 *「检测到 N 个 CKLINK,请先在下拉里选一块再操作」* —— 这是防止烧错板的护栏,不是故障。
升级 CKLink 探头固件
只有识别不到 USB 序列号的老 CKLink 才会提示升级(下拉显示为 [无SN] v2.3 CKLink-Lite 老固件(无序列号,建议升级))。带序列号的探头哪怕固件低于 3.5(如 2.26、2.38)也能正常烧录,软件不会打扰你。没有单独的升级按钮,入口是弹窗:
- 打开 Flash Tools 页 / 插上这种探头时:自动弹一次「这块 CKLink 调试器的固件过旧,必须升级后才能用它烧录 / 读 / 擦 / 探测,现在升级?」。选 暂不 则本次运行不再主动弹。
- 用它点 Start / Read / Erase / Detect Chip 时:会被拦下并当场再弹窗询问;升级前无法用它操作。
- 在弹窗里点 立即升级(弹窗就是确认,不会再问第二次)。
- 升级 约半分钟。期间 不要拔 USB、不要关闭程序 —— 升级不可取消(此时 Flash 页按钮全部变灰、关窗会被拦住),中途打断可能损坏探头;升级也无法降级。
- 日志出现 ✔ CKLink 固件升级成功:2.3 -> 3.5 即完成。很老的探头升级后会换一个 USB 身份(多出
T0000…序列号和一个 COM 口),下拉会自动刷新;日志里厂商工具末尾的no response/connection failed属正常现象。 - 如果探头当时接着目标板,升级后请给目标板重新上电。
为什么老探头必须先升级? 没有 USB 序列号的老固件探头,厂商驱动一连上它就会强制刷它的固件;而烧录 / 读 / 擦 / 探测这些操作可以被取消、也会超时中止,在写探头固件的途中被打断可能把探头刷坏。所以软件会先拦下这些操作,让你走上面这条不可打断的升级。带序列号的探头不受影响、照常能烧,也不会弹窗。
4.3 步骤 B:识别 / 选择芯片型号
- 推荐:点 ③ Detect Chip,让软件自动识别后填好 ① 的
Chip。日志会显示✔ 自动识别:CPU CK803 -> TXW81X之类。 - 或手动在 ① 的
Chip下拉直接选TXW81X/TXW82X。
型号必须选对:型号决定用哪套 Flash 算法。选错型号是flash driver error code=N类随机报错的常见原因之一,烧录前用 Detect 确认一下最稳。
Detect 只做 JTAG 连接读 CPU,不读 Flash、不跑算法,尽量不打扰目标。
4.4 步骤 C:配置 Bin(Target Objects)
在 Target Objects 里,每个 .bin 占一行,最多 3 行。一行的构成:
| 控件 | 含义 |
|---|---|
| ☑ Program | 勾上 = 这一行参与烧录(写入)。不勾则这行跳过。 |
| ☑ Verify | 勾上 = 烧完后读回校验写入是否正确。建议与 Program 一起勾。 |
| Address: 0x____ | 该 bin 写入的起始地址。16 进制、免填 0x(填 10000 即 0x10000)。 |
路径下拉 + ... | 点 ... 选 .bin 文件;下拉记最近 10 条历史,跨会话记忆。 |
操作:
- 第 1 行点
...选固件.bin。 - 在 Address: 0x 后填写入地址(如应用固件常见
0x10000,引导/整片烧常见0x0—— 以你的固件分区表为准)。 - 勾上 Program 和 Verify。
- 多个 bin 烧到不同地址(如 boot + app)→ 用第 2、3 行各填一个。
地址、路径、勾选状态都会跨会话记忆,下次打开免重填。
4.5 步骤 D:Flash Settings(按需调)
| 项 | 说明 | 建议 |
|---|---|---|
| Timeout(s) | 单次操作的连接/重试开销预算(实际总超时会按固件大小自动叠加,大固件不会被误杀)。 | 默认 60;连接不稳可调大。 |
| Erase | 烧前擦除方式:Erase sectors(按扇区,最常用)/ Chip erase(整片)/ Erase range(按本次烧录范围)/ No erase(不擦)。 | 默认 Erase sectors。 |
| ICE Clk(kHz) | JTAG/ICE 时钟。 | 默认 12000;连接不稳调小(如 6000、3000)再试。 |
NOR Flash 只能1→0:未擦除区域直接写会导致 Verify 失配。所以默认Erase sectors、烧前先擦是常态。详见 第 6 节排错。
4.6 步骤 E:开始烧录,看结果
- 点 ⑤ Start。
- 看 ⑨ 日志:依次出现 *型号/算法 → 检测到 CKLINK → 各 Bin 行汇总 → 开始烧录 → Program Data…* 进度行。
- ⑩ 进度条走动。运行中 Start 按钮变 Cancel,可中途取消。
- 成功标志:日志末尾出现
`` ✔ 操作成功 (rc=0),耗时 12.3 秒 @ ICE Clk 12000 kHz ``
失败则是 ✘ 操作失败 (rc=…) 或 ✘ 超时已终止,按 第 6 节 排查。
一次只跑一个操作:烧/读/擦/探测互斥,运行中其它按钮锁定。
5. 读 Flash / 擦 Flash
5.1 读 Flash
把芯片里的内容读出来存成 .bin(备份 / 比对 / 取证)。
- ⑥ Read Flash 区填 起始地址(如
0x0)和 长度(如0x80000,默认0x200000)。 - 点 Read Flash,在弹出的对话框里选保存路径。
- 日志出现
✔ 操作成功 (rc=0)即读取完成。
5.2 擦 Flash
⚠️ 擦除不可恢复,会清掉指定范围的数据。
- ⑦ Erase Flash 区填 起始地址 和 长度。
- 点 Erase Flash,弹窗二次确认后才执行。
6. 常见问题与排错
| 现象 / 日志 | 原因 | 处理 |
|---|---|---|
找不到 Flash Tools 标签 | 扩展面板没开 | Settings → Display → Expansion 打开。 |
| Flash 工具里没有串口选择 | 正常 —— 烧录走 JTAG,不用 COM | 无需处理。 |
| 日志:检测到 N 个 CKLINK,请先在下拉里选一块 | 插了多块 CKLink 没指定 | 在 ② CKLINK 下拉选一块再操作(防烧错板)。 |
下拉显示 [无SN] … 老固件(无序列号)(旧版本里显示成 [A] CKLink_Lite_V2-A);烧录报 Specifid CKLINK … is not find | CKLink 探头自身固件太老,不报 USB 序列号,软件没法用名字指定它 | 按弹窗提示 立即升级(见 4.2),升完就有序列号、可正常烧录。 |
| 点 Start / Read / Erase / Detect Chip 被拦下,日志:这块 CKLink 是老固件…需先把它的固件升到 3.5,同时弹窗询问升级 | 护栏:老固件探头会被厂商驱动强制刷固件,不能放在可取消的操作里进行 | 在弹窗里点 立即升级,升完再烧 / 读 / 擦 / 探测。当时点了「暂不」的话,再点一次操作会重新弹窗。 |
Fail to check had module / 连接失败 | JTAG 握手没成功(接线 / 供电 / 时钟) | 接线短而稳、3.3V 供电稳、调小 ICE Clk(6000/3000)+ 调大 Timeout 重试。 |
Verify 失配 / flash driver error code=N(N 恰为固件字节累加和) | 目标区未擦除就写(NOR 只能 1→0) | 把 Erase 设为 Erase sectors 后重烧。 |
flash driver error code=N(N 每次都变 / 随机) | 多为型号选错、JTAG 不稳读到垃圾值、时钟过高 | 先 Detect Chip 确认型号;降 ICE Clk;查接线供电。 |
| 探测/烧录中断后芯片没反应 | 芯片停在调试态 | 给目标板重新上电即可恢复。 |
操作超时 ✘ 超时已终止 | 硬件无响应 / 算法不匹配 / 大固件 | 查上面几条;大固件其实会自动放大超时,超时多半是真没连上。 |
| 接线 / 供电 / 时钟都对、仍连不上 | 芯片固件复用了调试口 PA9/PA10,上电即占用 | 见下方「芯片同步不上怎么救」三种办法。 |
芯片「同步不上 / 连不上」怎么救(泰芯常见)
接线、供电、ICE 时钟都没问题却仍连不上,很可能是芯片里跑的程序复用了调试口 PA9 / PA10:芯片一上电,固件立刻占用这两个调试脚,CKLink 就同步不上芯片了。按下面顺序试:
- 短接 Flash 的 1、2 脚再烧录:短接后芯片上电时读不到正常固件、进不了用户程序,调试口空出来 —— 这时点 Start 即可同步上、正常烧录。
- 先点 Start,再给芯片上电:先让芯片断电 → 点 Start(工具会不停重试与芯片建立连接)→ 立刻给芯片上电,卡在芯片复位后、固件还没占用调试口的第一瞬间同步上。⚠️ 时间窗口很短、成功率不是 100%,可能要「断电 → 点 Start → 上电」重复几次。
- 用串口 AT 指令强制进烧录模式:串口还能通时,发
AT+GOTOBOOT让芯片进入烧录(boot)模式再烧录。⚠️ 烧录完成后芯片需重新上电才能正常运行。
7. 命令行 / MCP 自动化烧录
GUI 是给人点的;产线脚本、CI、AI 助手则用命令行(CLI)或 MCP —— 同一套烧录能力,结果是机器可读的 JSON。目标机只需一个 HiveComm.exe、无需安装任何额外依赖。
7.1 调用方式
统一用 HiveComm.exe,加 --api 进入命令行烧录模式:
HiveComm.exe --api <子命令> [参数 ...]
GUI 版 exe 没有控制台、结果不打屏,所以用 --out r.json 把结果(JSON)写到文件、--log x.log 把烧录过程逐行写到日志文件。退出码:0=成功 / 1=失败 / 3=操作成功但结果没落盘。
7.2 子命令一览
# 列在线 CKLink(多块时拿 hardware id 选板)
HiveComm.exe --api list-cklinks --out l.json
# 自动识别芯片型号(CK803→TXW81X / CK804→TXW82X)
HiveComm.exe --api detect --out d.json
# 读 flash 存成 bin
HiveComm.exe --api read --chip TXW81X --addr 0x0 --length 0x80000 --save dump.bin --out r.json
# 烧录(program + verify;地址写在路径后 PATH@HEXADDR,可多个 --bin)
HiveComm.exe --api program --chip TXW81X --bin app.bin@0x10000 --erase-type sectors --out r.json
HiveComm.exe --api program --bin boot.bin@0x0 --bin app.bin@0x10000 --no-verify
# 多板并行:把同一固件烧到所有在线 CKLink(每块各起子进程,聚合 PASS/FAIL)
HiveComm.exe --api program-all --chip TXW81X --bin app.bin@0x10000 --out r.json
HiveComm.exe --api program-all --bin app.bin@0x0 --max-parallel 4 --log batch.log
# 按地址范围擦除(不可恢复,必须 --yes)
HiveComm.exe --api erase --chip TXW81X --addr 0x0 --length 0x10000 --yes
# 插了多块 CKLink:上面每条都加 --hardware-id(先 list-cklinks 拿完整名)
HiveComm.exe --api program ... --hardware-id CKLink_Lite_V2-<serial>
# 升级 CKLink 探头【自身】固件(不是目标芯片;不可降级,必须 --yes;约半分钟,期间勿拔 USB)
HiveComm.exe --api list-cklinks --out l.json # 每块带 fw_text / needs_upgrade(=无序列号,才需要升) / no_serial
HiveComm.exe --api upgrade-cklink --yes --out r.json # 只有一块可升级时自动选中它;多块可升级加 --hardware-id
地址 / 长度均为 16 进制(带不带0x都行);--bin可重复,每个写成路径@十六进制地址。
7.3 结果与机读错误码
每个命令的 --out r.json 写一个 JSON envelope:
{ "ok": true, "command": "program", "data": { "rc": 0, "attempts": 1, ... }, "ts": "..." }
退出码:0=成功 / 1=失败(看 error_code)/ 3=操作成功但结果没落盘。
常见 error_code(脚本据此分支,不要去匹配中文文本):
| error_code | 含义 |
|---|---|
CKLINK_AMBIGUOUS | 多块 CKLink 在线却没 --hardware-id 选板 → 跑硬件前就中止(不瞎猜烧错板)。 |
VERIFY_MISMATCH | 校验失配,多为目标区未擦除 → 改 --erase-type sectors。 |
CHIP_UNKNOWN | 型号无法识别 / 算法文件缺失。 |
BIN_NOT_FOUND | --bin 路径不存在。 |
FLASH_ERROR / TIMEOUT / START_FAIL | 算法/驱动错、超时、Console 启动失败。 |
安全护栏:erase必须显式--yes;多块 CKLink 在线时务必--hardware-id选板。
7.4 MCP(让 Claude 等 AI 助手直接烧录)
HiveComm.exe --mcp 会作为 MCP server 运行,AI 助手连上后自动发现全部烧录/读/擦/探测/选板工具(含 flash_program / flash_program_all / flash_detect / flash_read / flash_erase / list_cklinks),无需任何额外文档。烧/擦类工具标了 destructiveHint,host 会在执行前让你确认。
在 Claude Desktop / Claude Code 里配置一次(任何 MCP server 都需要,一次性):
{ "mcpServers": { "hivecomm": { "command": "C:\\路径\\HiveComm.exe", "args": ["--mcp"] } } }
把配置里的C:\\路径\\HiveComm.exe换成本机HiveComm.exe的实际完整路径。
8. 附录:地址与擦除方式参考
擦除方式(Flash Settings → Erase / CLI --erase-type)
| GUI | CLI | 行为 |
|---|---|---|
Erase sectors | sectors | 按扇区擦本次要写的区域(默认、最常用)。 |
Chip erase | chip | 整片擦除。 |
Erase range | range | 按本次烧录覆盖范围擦(4K 块对齐)。 |
No erase | none | 不擦(仅当确认目标已是空白时用)。 |
地址小贴士
- 地址、长度一律 16 进制,GUI 里
Address: 0x前缀是固定的,框里只填数字部分;CLI 里带不带0x都行。 - 具体烧到哪个地址 以你的固件 / 分区表为准,本教程示例(
0x0/0x10000)仅作演示。
*本教程随软件版本更新。若与实际界面不符,请反馈。相关:使用手册 · README*