参加全国大学生智能汽车竞赛需要的CSK5062离线语音控制资源上手指引
导读
第21届全国智能汽车竞赛讯飞组赛项中电子红绿灯需要使用语音控制LED点阵屏幕显示直行、左转、右转、红灯四种状态,其中语音控制和屏幕显示控制使用CSK5062芯片自己设计实现。这篇文章会把参赛会用到的信息进行汇总,并提供官方示例来源,以方便大家快速了解和获得相关资源。
本次竞赛比赛规则:https://www.iflysse.com/laboratory/intelligent-car-race
大赛技术问题答疑入口:https://docs2.listenai.com/z/242.png
CSK5062芯片是一款单核微控制器,内置RISC-V核心和NPU,独立的NPU专用于神经网络运算。
- SOP16封装
- RISC-V+NPU@300MHz + 2MB FLash
- 参考模组带USB转串口芯片,支持一键固件烧录
本文包含以下内容:
- CSK5062芯片模组功能特性、原理图、PCB参考;
- CSK5062 SDK获取和说明
- 编译环境安装、编译和固件烧录
- 常用的定时器、SPI、GPIO、PWM示例说明
CSK5062离线语音模组的功能特性、原理图和PCB设计参考

参考模组特性:
外设
-
- 1*Audio ADC,24bit
- 2*UART interfaces
- 内置PA(CLASS D)输出
- 官方适配语音算法:
- 支持语音唤醒、语音命令词、语音增强、单麦克风降噪
- 安静环境唤醒率可达98%,识别率95%以上,72小时0次误唤醒,最多支持300个命令词
- 支持离线自由说、方言自学习等特色能力
- 支持二开自定义
- 零代码可视化开发,自定义唤醒词、命令词
- 支持收发自定义串口指令,一键生成固件、固件烧录、串口调试等
官方开源的参考模组的功能和硬件说明:https://docs2.listenai.com/x/eI3K-GObW
参考模组原理图:
参考模组硬件设计资源(含原理图、PCB)已公开,可以在嘉立创直接获得:https://oshwhub.com/lshuangyu/project_zsvzbyyh
CSK5062:

电源复位:

BOOT:

Type-C:

串口芯片:

POW:

软件流控:

CSK5062 SDK获取和说明
CSK5062 离线语音模组完整开发流程参考

自定义唤醒词命令词的SDK生成和下载
CSK5062的SDK需要登陆聆思AI语音定制平台(https://platform.listenai.com/ai-voice-firmwares/login )获得,在AI语音定制平台按流程填入信息等待3~5分钟即可生成定制的语音算法,并自动打包到SDK中。
定制选项参考说明和详细步骤视频参考:https://docs2.listenai.com/x/NsSTFY8H_

SDK说明
- 支持离线语音识别,无需联网
- 支持自定义命令词和协议
- 提供丰富的硬件驱动接口(GPIO、UART、PWM、I2C等)
- 集成实时操作系统(RTOS)支持
- 跨平台编译支持(Windows 和 Linux)
- 自动化工具链下载和配置
SDK详细讲解说明参考官方文档:https://docs2.listenai.com/x/wIsU2g7Fx
开发须知
- 命令词和提示音:在网页平台配置,SDK下载时已自动生成,无需关注
- 你的工作:专注于外设初始化和业务逻辑,响应语音命令执行硬件操作
- 开发重点:GPIO引脚控制(A10、B11),实现具体的硬件控制逻辑
- 你的主要开发区域:source/main.c 和 source/listen/app/ls_app_client.c
- 重点开发内容:外设初始化、GPIO控制(A10、A11、A12、B11)、业务逻辑
- 无需关注:命令词、提示音配置(由网页平台自动生成)
- 无需修改:ls_app_cfg_user.h、tone.h、tone_buf.h(平台自动更新)
SDK架构概览

顶层目录

重点开发区域

CSK5062 编译环境安装、编译和固件烧录
编译工具链安装
编译工具链的安装指令已经放在build.bat 脚本中,执行第一次编译时会自动下载,详细说明参考官方文档:https://docs2.listenai.com/x/AYLuBCyWV
如下图所示,以windows环境为例,在下载SDK后将 mars-sdk 文件夹解压出来,地址栏上输入 cmd -> 回车 -> 执行命令 build.bat -r all

编译成功后的页面如下:

编译产物和烧录使用的固件

烧录固件
1、使用官方模组做验证需要先安装对应版本的串口驱动驱动,驱动不匹配会造成烧录连接失败以及烧录失败等问题。
|
Windows |
https://www.wch.cn/downloads/CH343CDC_ZIP.html |
安装包安装 |
|
MacOS |
https://www.wch.cn/downloads/CH341SER_MAC_ZIP.html |
安装包安装 |
|
Linux |
https://github.com/WCHSoftGroup/ch343ser_linux |
源码安装 |
2、进入烧录模式


- 打开烧录工具地址: https://platform.listenai.com/web-burn/studio ,将 app.bin 烧录到设备里

常用的定时器、SPI、GPIO、PWM说明(提供示例)
TIMER(定时器)
用于精确定时和时间管理,广泛应用于周期性任务、超时检测、PWM生成、输入捕获等场景。本驱动基于GPT(General Purpose Timer)模块,提供高精度的定时功能。TIMER可以配合GPIO实现定时拉高拉低GPIO的功能,用于生成特定时序的信号。
API函数说明和具体示例可以参考:https://docs2.listenai.com/x/iLJa1J9CS
主要特性
- 支持6个独立的定时器通道(Channel 0-5)
- 支持32位、16位、8位定时器模式
- 多种运行模式:
-
- 单次模式(Single)
- 重复模式(Repeat)
- 自由运行模式(FreeRun)
- 保持运行模式(KeepGo)
-
- 支持向上计数、向下计数、双向计数
- 可配置时钟源和分频
- 支持中断回调
SPI
提供的SPI驱动支持主机和从机模式,可配置时钟极性和相位,支持DMA传输,适用于高速数据传输场景。
API函数说明和开发示例可以参考官方文档:https://docs2.listenai.com/x/bNUGNkjbq
SPI引脚说明:

注意:当前项目 A10/A11/A12/B11 引脚无法使用完整的 SPI 全双工通信!
SPI 需要 4 个信号:MOSI、MISO、SCK、CS,当前可用引脚虽然支持部分 SPI 功能(如 MOSI、SCK、CS),但缺少 MISO(主机接收数据线)信号,无法实现完整的 SPI 全双工通信。
解决方案:如需使用 SPI 功能,需要:
- 查看芯片引脚功能表格,找到支持完整 SPI 功能的引脚组合
- 重新设计硬件,将支持 MISO 信号的引脚引出
- 参考官方《芯片数据手册》中的引脚复用表
GPIO
API函数说明和开发示例可以参考官方文档:https://docs2.listenai.com/x/PxpBEzFnQ
外部中断的API函数说明和开发示例可以参考官方文档:https://docs2.listenai.com/x/pvtqgFTR9
可用引脚:
开发前需要先确定可用引脚有哪些,如果使用官方的CSK5062语音模组做验证,以下引脚已被占用:

GPIO的电平

上下拉电阻

PWM
官方的CSK5062离线语音模组示例使用 A10引脚 输出PWM信号,经过实际验证可用。
API函数说明和开发示例可以参考官方文档:https://docs2.listenai.com/x/fwoQMUyXa
主要特性
- 支持6个独立的PWM通道(Channel 0-5)
- 可配置频率范围:1Hz - 数百kHz
- 可配置占空比:0% - 100%
- 支持边沿对齐和中心对齐模式
- 支持多种时钟源选择
- 支持时钟分频(1/2/4/8/16/32/64/128)
注意事项
1、开发前需要先确定可用引脚有哪些,如果使用官方的CSK5062语音模组做验证,A11 和 A12 引脚已用作协议串口输出,因此在选择PWM输出引脚时需要注意:

推荐:使用 A10 或 B11 引脚作为PWM输出。
2、初始化PWM前必须使能时钟和复位:
__HAL_PMU_GPT_RST_ENABLE();
__HAL_CRM_GPT_S_CLK_ENABLE();
__HAL_CRM_GPT_T0_CLK_ENABLE();
__HAL_CRM_GPT_CLK_ENABLE();
- 频率选择
- LED亮度调节:推荐 1kHz - 10kHz
- 电机速度控制:推荐 10kHz - 20kHz
- 音频应用:需要更高频率
4. 占空比精度
占空比范围是 0-100,精度为整数百分比。如需更高精度,可能需要调整时钟分频。
5. 通道选择
不同的引脚对应不同的PWM通道,使用前需要确认引脚与通道的映射关系。
相关说明
感谢全国大学生智能汽车竞赛组织者、讯飞的老师们,还有参赛选手们的选择和支持!CSK5062芯片是全国产化,完全自主研发设计,属于国内可控的AI SoC 芯片,在实际使用中遇到问题和新的需求欢迎发在评论区沟通探讨,我们会及时回复处理。
更多推荐


所有评论(0)