nRF5340新增LEAudio应用教程
本帖最后由 Wallytina 于 2025-4-10 15:59 编辑CIS&BIS
CISConnected Isochronous Stream多连接,双向,左右声道同步。将来的应用场景有TWS耳机,头戴式耳机等等。
BISBroadcast Isochronous Stream广播,单向,单声道。应用场景大多为公共场所收听,如机场广播,校园广播,导游广播等。
LE Audio DK
nRF5340主控
nRF5340第二个5340, 用于DEBUG, 烧录。
nPM1100PMIC
CS47L63Cirrus logic AD/DA, 立体声输入,单声道输出。
PDM MIC
USB-Cgateway USB 音频输入接口/供电
LINE INgateway 3.5mm 音频输入接口
SD卡
按键/LED
锂电池接口
双向音频双向音频是基于CIS的应用,做测试时,只需要将如下两个宏打开即可。
[*]CONFIG_STREAM_BIDIRECTIONAL
[*]CONFIG_WALKIE_TALKIE_DEMO
打开对讲机功能之后,MIC作为声音的输入,HEADPHONE作为声音的输出,这两个接口均接到cirrus logic芯片上,然后通过I2S与nRF5340连接,传输音频。
FOTA
在编译时我们在脚本后增加参数-m internal/external 即可打开FOTA功能python buildprog.py -c both -b debug -d both -m internal -M
烧录完成之后要进入FOTA模式需要长按BTN4 &RESET,接着松开RESET,BTN4保持按着。
过1~2s后空中将会看到广播名称带有DFU的设备,如下:
[*]Gateway: NRF5340_AUDIO_GW_DFU
[*]Left Headset: NRF5340_AUDIO_HL_DFU
[*]Right Headset: NRF5340_AUDIO_HR_DFU
手机连接之后,即可进行OTA升级dfu_application.zip 是带有多个image的压缩包app_update.bin 是用于升级appcore的文件net_core_app_update.bin 是用于升级netcore的文件当我们选择使用external flash时,由于Audio DK上没有自带外部flash,
所以我们需要外接一个MX25R6435F
DK pinSPI NOR Flash pinArduino pin
P0.08SCKD13
P0.09MOSID11
P0.10MISOD12
P1.10CSD8
双BIS gateway
[*]CONFIG_TRANSPORT_BIS=y
[*]CONFIG_BT_AUDIO_USE_BROADCAST_NAME_ALT=y
[*]CONFIG_BT_AUDIO_BROADCAST_NAME_ALT=”string name”
音频数据流解析
重要API及其所在的文件位置
Audio_datapath.caudio_datapath_i2s_blk_complete()
Audio_system.cencoder_thread()
Streamctrl.cstreamctrl_encoded_data_send()
Streamctrl.cle_audio_rx_data_handler()
Streamctrl.caudio_datapath_thread()
Audio_datapath.caudio_datapath_stream_out()
Audio_datapath.caudio_datapath_i2s_blk_complete()
Audio_usb.cdata_received()
Audio_system.caudio_decode()
TIPS
[*]nRF Connect SDK 2.4.0要使用自带的toolchain,否则可能出现一些奇怪的问题。
[*]如果出现无法找到某某文件的话,可能是目录地址太长。
[*]如果出现找不到network.hex时,可能是因为你在其它目录创建了LE Audio工程,因为脚本在寻找network.hex时是以nRF Connect SDK工程为相对位置的。
[*]docs.nordicsemi.com
页:
[1]