CIS&BIS
|
|
|
CIS |
Connected Isochronous Stream |
多连接,双向,左右声道同步。将来的应用场景有TWS耳机,头戴式耳机等等。 |
BIS |
Broadcast Isochronous Stream |
广播,单向,单声道。应用场景大多为公共场所收听,如机场广播,校园广播,导游广播等。 |
LE Audio DK
|
|
nRF5340 |
主控 |
nRF5340 |
第二个5340, 用于DEBUG, 烧录。 |
nPM1100 |
PMIC |
CS47L63 |
Cirrus logic AD/DA, 立体声输入,单声道输出。 |
PDM MIC |
|
USB-C |
gateway USB 音频输入接口/供电 |
LINE IN |
gateway 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 pin |
SPI NOR Flash pin |
Arduino pin |
P0.08 |
SCK |
D13 |
P0.09 |
MOSI |
D11 |
P0.10 |
MISO |
D12 |
P1.10 |
CS |
D8 |
双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.c |
audio_datapath_i2s_blk_complete() |
Audio_system.c |
encoder_thread() |
Streamctrl.c |
streamctrl_encoded_data_send() |
Streamctrl.c |
le_audio_rx_data_handler() |
Streamctrl.c |
audio_datapath_thread() |
Audio_datapath.c |
audio_datapath_stream_out() |
Audio_datapath.c |
audio_datapath_i2s_blk_complete() |
Audio_usb.c |
data_received() |
Audio_system.c |
audio_decode() |
TIPS
- nRF Connect SDK 2.4.0要使用自带的toolchain,否则可能出现一些奇怪的问题。
- 如果出现无法找到某某文件的话,可能是目录地址太长。
- 如果出现找不到network.hex时,可能是因为你在其它目录创建了LE Audio工程,因为脚本在寻找network.hex时是以nRF Connect SDK工程为相对位置的。
- docs.nordicsemi.com