littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于Python的nRF5340音频应用系统

项目简介

本项目是基于Python的nRF5340音频应用系统,用于展示通过等时通道(ISO)进行音频播放。采用LC3编解码器对音频数据进行压缩与解压缩,遵循蓝牙® LE音频规范。系统包含网关和耳机两种设备类型,可在连接等时流(CIS)模式或广播等时流(BIS)模式下运行,实现音频数据的传输与播放。此外,项目配备buildprog.py等工具,简化了固件的构建和编程流程。

项目的主要特性和功能

  1. 多模式运行:支持CIS和BIS两种模式。CIS模式为双向通信,支持立体声播放与双向通信,可实现对讲机演示;BIS模式为单向通信,能从源设备向无限数量的接收器广播一个或多个音频流。
  2. 音频同步:借助同步模块实现音频同步,包含演示补偿和漂移补偿,确保所有耳机同时以正确速度播放音频。
  3. 双设备类型:有网关和耳机两种设备。网关接收外部音频数据并转发给耳机,耳机接收并播放音频。
  4. 简单配置:可通过修改Kconfig选项轻松切换模式(如BIS模式、CIS双向模式等)和音频源(如USB或I2S)。
  5. FOTA支持:支持固件空中升级(FOTA),可同时升级应用核心和网络核心,需配合外部闪存屏蔽和nRF Connect Device Manager应用程序使用。
  6. 用户界面:基于开发套件的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参数):appnetboth - 应用版本(-b参数):releasedebug - 设备类型(-d参数):headsetgatewayboth - DFU类型(-m参数):internalexternal - 网络核心引导加载程序最小尺寸(-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模式

  1. 确保开发套件插入USB端口并打开,等待网关的LED1开始闪烁蓝色。
  2. 在操作系统的声音设置中选择nRF5340 USB Audio作为输出设备。
  3. 连接耳机到耳机设备的HEADPHONE音频插孔。
  4. 开始PC音频播放,等待耳机的LED1闪烁蓝色和LED2亮起绿色。
  5. 使用按钮测试音量、播放/暂停等功能。

测试BIS模式

与测试CIS模式类似,但需手动选择BIS模式,且各接收器的音频设置可单独控制。

测试对讲机演示

与测试CIS模式类似,但需启用对讲机演示的Kconfig选项,通过PDM麦克风进行通话。

测试FOTA升级

  1. 配置应用以支持FOTA。
  2. 在Android或iOS设备上安装nRF Connect Device Manager应用程序。
  3. 连接外部闪存屏蔽到耳机。
  4. 确保耳机运行支持外部闪存DFU的固件。
  5. 使用buildprog.py脚本创建包含新固件的zip文件。
  6. 将生成的文件传输到移动设备。
  7. 进入DFU模式,打开nRF Connect Device Manager应用程序进行升级。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】