项目简介
本项目是基于Python和C语言开发的蓝牙低功耗(BLE)音频传输系统,专为nRF5340 Audio开发套件设计。依据蓝牙LE音频规范,借助LC3编解码器实现音频的压缩与解压缩,并通过等时通道进行音频播放。系统可作为网关或耳机使用,网关接收外部音频数据并转发给耳机,耳机负责播放接收到的音频,还支持双向模式,允许一个网关同时与一到两个耳机进行音频的收发。
项目的主要特性和功能
- 多模式支持:支持连接等时流(CIS)和广播等时流(BIS)两种模式。CIS模式可实现立体声播放和同步;BIS模式可向多个未连接的接收器广播音频流。
- 音频处理:利用LC3软件编解码器对音频数据进行编码和解码,保障音频质量。
- 同步机制:通过同步模块实现音频同步播放,包含呈现补偿和漂移补偿,防止I2S溢出或欠载。
- 用户界面:基于开发套件的PCB元素实现简单用户界面,通过开关、按钮控制应用程序,LED显示设备状态。
- 配置灵活:可通过修改配置文件切换设备类型、应用模式、音频输入输出方式等。
- 固件更新:支持固件空中升级(FOTA),可对应用核心和网络核心进行单独或同时更新。
安装使用步骤
环境准备
确保已下载本项目的源码文件,并准备好至少两个nRF5340 Audio开发套件(一个网关固件,一个耳机固件)。
构建和编程
使用脚本构建和编程(推荐)
- 准备JSON文件:在
nrf5340_audio_dk_devices.json
文件中更新每个开发套件的信息,包括SEGGER序列号、设备类型和耳机通道。 - 运行脚本:在
buildprog
目录下运行buildprog.py
脚本,按需提供参数,如核心类型、应用版本、设备类型、DFU类型等。- 示例1:构建调试版本的应用核心,适用于耳机和网关
console python buildprog.py -c app -b debug -d both
- 示例2:构建调试版本的应用和网络核心,启用内部DFU布局,使用最小尺寸的网络核心引导加载程序
console python buildprog.py -c both -b debug -d both -m internal -M
- 示例1:构建调试版本的应用核心,适用于耳机和网关
- 编程:若要在构建后编程设备,可添加
-p
参数;若使用Windows子系统Linux(WSL)编程时遇到问题,可添加-s
参数进行顺序编程。console python buildprog.py -c both -b debug -d both -p
使用命令行构建和编程
- 构建应用程序:选择设备类型和应用版本的构建标志,使用标准的
west build
命令进行构建。- 示例:构建发布版本的耳机应用核心固件
console west build -b nrf5340_audio_dk_nrf5340_cpuapp --pristine -- -DCONFIG_AUDIO_DEV=1 -DCONF_FILE=prj_release.conf
- 示例:构建发布版本的耳机应用核心固件
- 编程应用程序:将设备插入USB端口,打开命令提示符,打印SEGGER序列号,分别对网络核心和应用核心进行编程。
console nrfjprog --program bin/*.hex --chiperase --coprocessor CP_NETWORK -r 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】