语音模块固件烧写与调试
276.2 语音模块固件烧写与调试
本节演示的是固件选择、串口接线、下载和指令测试,没有展示需要抄录的业务源码,因此此处不额外添加源码代码块。课程压缩包中的自动生成串口文件仅用于核对通信协议。
一、语音模块固件烧写与调试
1.1 语音模块固件烧写与调试介绍
- 烧录目的:SU-03T 只有运行与项目匹配的固件后,才能识别约定的串口数据,并播放“人脸录入成功”等预先配置好的提示音。
- 固件来源:固件可以在机芯智能平台中按需求配置并生成。本项目应优先使用课程资料中已经配置、验证过的固件,避免提示语和串口协议与 STM32 程序不一致。
- 本课程固件的准确位置:
语音模块固件/jx_firm/jx_su_03t_release_update.bin。原笔记中的“jx form/release update”是识别错误,并不是实际目录名。 - 固件与工程配置:同目录下的
王锋人脸门锁_20231121002.json是平台工程配置,可用于以后在官方平台中查看或修改配置;它不是直接烧入模块的文件。 - 必须选对固件类型:
jx_su_03t_release_update.bin是串口升级固件,本节使用 USB 转串口模块下载它;jx_su_03t_release.bin是硬件烧录器固件,只能配合专用烧录器使用,不能在本节的串口升级工具中混用。
.bin 和单片机开发中常见的 Intel HEX 文件都可以承载固件,但二者并不完全等价:BIN 是连续的原始二进制数据,本身通常不记录装载地址;HEX 是包含地址、数据和校验信息的文本记录。烧录工具需要根据文件格式和芯片下载方式正确解释它们,不能只修改扩展名来互换。
本课程固件把 4 个消息编号配置为 4 条播报:
| 消息编号 | 播报内容 |
|---|---|
0x01 | 人脸录入成功 |
0x02 | 人脸识别成功 |
0x03 | 人脸删除成功 |
0x04 | 温度异常 |
1.2 烧录工具介绍
- 烧录方式:通过 SU-03T 的 UART1 进行串口升级。
- 准确的工具位置:
语音模块固件/Hummingbird-M-Update-Tool/UniOneUpdateTool.exe。应按文件名寻找工具,不要再用“倒数第二个 EXE”这种会随目录排序变化的描述。 - 串口驱动:课程使用 CH340 USB 转串口模块。若 Windows 中没有出现对应 COM 口,应先安装与设备匹配的 WCH CH340 驱动,并在“设备管理器 → 端口(COM 和 LPT)”中确认端口号。
- 端口占用:升级工具和串口调试助手不能同时占用同一个 COM 口。烧录前关闭串口助手,测试前再让升级工具释放端口。
若工具无法读取文件,可先把固件复制到只含英文、数字的短路径,例如 D:\su03\jx_su_03t_release_update.bin。课程中出现的乱码报错就是旧版工具对中文路径兼容不佳所致。工具或固件应从课程资料或厂家可信来源取得;不要为运行来历不明的 EXE 而直接关闭系统安全防护。
1.3 硬件连接
下载使用 SU-03T 的 UART1。串口必须交叉连接,即发送端接对方的接收端:
| SU-03T 引脚 | 功能 | USB 转串口端 | 信号方向 |
|---|---|---|---|
B6 | UART1_RXD | TXD | USB 转串口 → SU-03T |
B7 | UART1_TXD | RXD | SU-03T → USB 转串口 |
GND | 信号参考地 | GND | 必须直接相连 |
VCC | 模块电源输入 | 稳定的 5 V 电源 | 烧录工具开始等待后再上电 |
接线时必须注意以下几点:
- SU-03T 的
VCC允许输入范围为 3.6~5.5 V,典型供电为 5 V。原笔记写成“VCC 接 3.3 V 或 5 V”不准确,3.3 V 低于厂家规定的 VCC 下限。 - 模块上的
3V3是内部 LDO 的 3.3 V 输出端,不是本节的电源输入端,不能把外部 5 V 接到3V3。 - 语音播放会产生脉冲电流,尤其是连接 4 Ω 扬声器并提高音量时。建议使用稳定的 5 V 电源,并按新版规格为电源预留不小于约 550 mA 的供电能力。
- 若 USB 转串口模块、SU-03T 电源和 STM32 板来自不同电源,三者的
GND仍须用导线明确共地。不能仅凭“都接在同一台电脑上”就假定经过 USB Hub 后一定可靠共地。 VCC的 5 V 供电与 UART 的逻辑电平是两件事。应确认所用 CH340 小板的TXD/RXD是 3.3 V 兼容电平;不能只依据“CH340”芯片名称猜测某块转接板的实际输出电平,更不要把 5 V 电源直接接到B6/B7。- 接线或更换连线时先断电。为了复现“先等待、后上电”的下载时序,最好用电源开关控制模块供电,避免拿裸线反复碰触造成短路或接触抖动。
1.4 烧录过程
- 关闭可能占用该串口的串口调试助手等程序,在设备管理器中确认 CH340 对应的 COM 口。
- 将
jx_su_03t_release_update.bin放到不含中文和特殊字符的短路径中。 - 在模块断电的状态下接好
B6 ↔ TXD、B7 ↔ RXD和GND ↔ GND,先不要给 SU-03T 的VCC上电。 - 运行
UniOneUpdateTool.exe,选择正确的串口和jx_su_03t_release_update.bin。 - 单击烧录按钮,使工具进入等待设备上电的状态。
- 给 SU-03T 接通稳定的 5 V 电源。工具检测到模块后会自动开始下载。
- 下载过程中不要拔线、切断电源或晃动接头。等待
APP进度到达 100%,并确认工具提示成功。固件写入完成后,模块通常会自动重启。 - 单击停止或关闭下载任务,让工具释放串口;再给模块重新上电,进入串口测试。
这里的“先断电、点击烧录、再上电”是进入升级流程所需的受控上电时序;它不等于可以在已经写入数据时随意断电。正式写入阶段若发生掉电,固件可能不完整。
常见问题可按下表排查:
| 现象 | 重点检查 |
|---|---|
| 找不到 COM 口 | CH340 驱动、USB 数据线、USB 接口、设备管理器,以及串口是否被其他软件占用 |
| 工具一直等待设备 | B6/B7 是否交叉连接、是否明确共地、是否按“先等待后上电”的顺序操作 |
| 选择固件时报错或出现乱码 | 把工具和固件移到纯英文短路径,重新选择文件 |
| 下载刚开始或中途失败 | 5 V 电源能力、接触是否可靠、COM 口是否正确,以及是否选了带 _release_update.bin 后缀的串口升级固件 |
| 烧录后模块无法正常启动 | 先确认是否误选了不带 _update 的烧录器固件,再按厂家恢复说明重刷正确固件;若模块原固件不支持串口升级,则需要专用烧录器写入支持升级的基础固件 |
1.5 串口调试助手使用方法
烧录完成并释放 COM 口后,可以继续用同一个 CH340 验证语音播报:
- 打开串口调试助手,选择设备管理器中实际显示的 COM 口。视频中的
COM16只是授课电脑上的示例,并不是固定端口。 - 将波特率设为
115200,数据格式设为8位数据位、1位停止位、无校验(8N1)。 - 选中“HEX 发送”或“十六进制发送”,一次发送一条完整指令。
- 依次检查模块能否播放与消息编号对应的提示音。
本课程固件采用固定帧格式:帧头为 AA 55,中间 1 字节为消息编号,帧尾为 55 AA。可直接发送以下测试帧:
| HEX 发送内容 | 预期播报 |
|---|---|
AA 55 01 55 AA | 人脸录入成功 |
AA 55 02 55 AA | 人脸识别成功 |
AA 55 03 55 AA | 人脸删除成功 |
AA 55 04 55 AA | 温度异常 |
必须使用 HEX 模式。若在文本模式下输入 AA 55 01 55 AA,串口工具发送的是字符 A、空格、5 等字符的 ASCII 编码,并不是表中的 5 个二进制字节,模块自然不会按预期响应。
整机中的通信链路为:K210 通过 UART2 把识别结果发送给 STM32,STM32 根据业务逻辑再通过 UART3 向 SU-03T 发送上述协议帧,最终触发语音播报。原转录中的“窗口二、窗口三”应为“串口二、串口三”。本节只负责确认模块固件和 4 条协议帧能够正常工作;整机程序在什么条件下发送哪一帧,由对应业务逻辑决定。