项目简介
本项目是基于Python的nRF5340音频应用系统,用于展示通过等时通道(ISO)进行音频播放。采用LC3编解码器对音频数据进行压缩与解压缩,遵循蓝牙® LE音频规范。系统包含网关和耳机两种设备类型,可在连接等时流(CIS)模式或广播等时流(BIS)模式下运行,实现音频数据的传输与播放。此外,项目配备buildprog.py
等工具,简化了固件的构建和编程流程。
项目的主要特性和功能
- 多模式运行:支持CIS和BIS两种模式。CIS模式为双向通信,支持立体声播放与双向通信,可实现对讲机演示;BIS模式为单向通信,能从源设备向无限数量的接收器广播一个或多个音频流。
- 音频同步:借助同步模块实现音频同步,包含演示补偿和漂移补偿,确保所有耳机同时以正确速度播放音频。
- 双设备类型:有网关和耳机两种设备。网关接收外部音频数据并转发给耳机,耳机接收并播放音频。
- 简单配置:可通过修改Kconfig选项轻松切换模式(如BIS模式、CIS双向模式等)和音频源(如USB或I2S)。
- FOTA支持:支持固件空中升级(FOTA),可同时升级应用核心和网络核心,需配合外部闪存屏蔽和
nRF Connect Device Manager
应用程序使用。 - 用户界面:基于开发套件的PCB元素实现简单用户界面,可通过开关和按钮控制应用,LED显示相关信息。
安装使用步骤
安装前提
确保已下载本项目的源码文件,且拥有至少两个nRF5340音频开发套件(一个网关固件,一个耳机固件;若考虑CIS的真无线立体声,需三个套件)。
配置JSON文件
在使用buildprog.py
脚本前,需更新nrf5340_audio_dk_devices.json
文件,为每个开发套件提供以下信息:
- nrf5340_audio_dk_snr
:SEGGER序列号,可在开发套件标签查看,或连接开发套件到PC并运行nrfjprog -i
命令获取。
- nrf5340_audio_dk_dev
:指定开发套件为耳机或网关。
- channel
:仅适用于CIS模式下的耳机,设置耳机工作通道,未设置则默认为左声道。
构建和编程
使用脚本(推荐)
在applications/nrf5340_audio/tools/buildprog
目录下运行buildprog.py
脚本,构建和编程命令需提供以下参数:
- 核心类型(-c
参数):app
、net
或both
- 应用版本(-b
参数):release
或debug
- 设备类型(-d
参数):headset
、gateway
或both
- DFU类型(-m
参数):internal
、external
- 网络核心引导加载程序最小尺寸(-M
)
示例命令:
console
python buildprog.py -c app -b debug -d both
若要编程,可添加-p
参数;若使用Windows子系统Linux(WSL)遇到问题,可添加-s
参数进行顺序编程。
使用命令行
构建应用:
选择构建标志组合,如选择设备类型(耳机:-DCONFIG_AUDIO_DEV=1
;网关:-DCONFIG_AUDIO_DEV=2
)和应用版本(调试版:无标志;发布版:-DCONF_FILE=prj_release.conf
),然后使用标准west build
命令构建。
编程应用:
1. 将设备插入USB端口,打开开发套件。
2. 运行nrfjprog -i
打印SEGGER序列号。
3. 编程网络核心:nrfjprog --program bin/*.hex --chiperase --coprocessor CP_NETWORK -r
4. 编程应用核心:nrfjprog --program build/zephyr/zephyr.hex --coprocessor CP_APPLICATION --chiperase -r
测试
测试默认CIS模式
- 确保开发套件插入USB端口并打开,等待网关的
LED1
开始闪烁蓝色。 - 在操作系统的声音设置中选择
nRF5340 USB Audio
作为输出设备。 - 连接耳机到耳机设备的
HEADPHONE
音频插孔。 - 开始PC音频播放,等待耳机的
LED1
闪烁蓝色和LED2
亮起绿色。 - 使用按钮测试音量、播放/暂停等功能。
测试BIS模式
与测试CIS模式类似,但需手动选择BIS模式,且各接收器的音频设置可单独控制。
测试对讲机演示
与测试CIS模式类似,但需启用对讲机演示的Kconfig选项,通过PDM麦克风进行通话。
测试FOTA升级
- 配置应用以支持FOTA。
- 在Android或iOS设备上安装
nRF Connect Device Manager
应用程序。 - 连接外部闪存屏蔽到耳机。
- 确保耳机运行支持外部闪存DFU的固件。
- 使用
buildprog.py
脚本创建包含新固件的zip文件。 - 将生成的文件传输到移动设备。
- 进入DFU模式,打开
nRF Connect Device Manager
应用程序进行升级。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】