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连接,传输音频。
![双向音频 le-audio-intro-](/static/images/le-audio-intro-双向音频1-nordic-semi-wireless-iot-7byh-600w.jpeg)
![双向音频 le-audio-intro-](/static/images/le-audio-intro-双向音频2-nordic-semi-wireless-iot-ijNI-600w.jpeg)
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 |
![le-audio-FOTA](/static/images/le-audio-intro-fota2-nordic-semi-wireless-iot-9DeF-600w.jpeg)
双BIS gateway
- CONFIG_TRANSPORT_BIS=y
- CONFIG_BT_AUDIO_USE_BROADCAST_NAME_ALT=y
- CONFIG_BT_AUDIO_BROADCAST_NAME_ALT=”string name”
![双BIS gateway le-audio-intro](/static/images/le-audio-intro-双bis-gateway-nordic-semi-wireless-iot-t7a0-600w.jpeg)
音频数据流解析
![音频数据流解析 le-audio-intro-1](/static/images/le-audio-intro-音频数据流解析pic1-nordic-semi-wireless-iot-c4FJ-600w.jpeg)
![音频数据流解析 le-audio-intro-2](/static/images/le-audio-intro-音频数据流解析pic2-nordic-semi-wireless-iot-Kr3z-600w.jpeg)
重要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