What's the difference between BT_EMBED_MODE and BT_HYBRID_MODE?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Leo_liu1
Level 4
Level 4
50 replies posted 25 replies posted 10 replies posted

Hi Sir,

     目前在考虑MCU+CYW20706实现headset的方案,通过wiced20706 demo.audio.headset发现有两种模式:Apps processor 以及standalone mode。

如果使用standalone mode,那么不需要外部mcu参与,20706可以通过i2s接codec进行处理;如果是Apps processor mode,那么需要通过注释掉STANDALONE_HEADSET_APP,并编译成hcd文件,通过MCU烧录到20706的ram,但是这里我有个问题,在这种模式下,codec应该接在mcu侧还是20706侧

     带着这个疑问,我又做了以下实验,找了一块43907的EVK,一块20706的EVK。通过UART 4根线以及GND把两块板子连接起来,分别通过usb 供电。43xxxWiFi里面正好有一个Bluetooth_audio的demo,默认用的是BT_EMBED_MODE,但我不知道BT_EMBED_MODE,HOST_MODE,BT_HYBRID_MODE三种模式有什么区别。我把刚才编译好的headset-CYW920706WCDEVAL_40Mhz-rom-ram-Wiced-release.hcd转换成了c file,按要求更改并替换到对应的位置,之后把snip.bluetooth_audio烧录到43907EVK,通过log发现download FW失败,串口通讯似乎没有成功。

[Rx]Failed to unlock charger protection register

Failed to set fast-charge speed

Failed to lock charger protection register

Failed to unlock charger protection register

Failed to set input current limi[Rx]t

Failed to lock charger protection register

Failed to unlock charger protection register

Failed to set topoff timer

Failed to lock charger protection register

Platform CYW943907WAE3 initialised

Started ThreadX v5.8

Starting Bluetooth...

bt_buffer_pool_init: Pool creation s[Rx]uccessful, pool handle 0x4e4df0

bt_audio_init_player

WICED DCT BT NAME: WICED BLUETOOTH AUDIO  WICED DCT BT DEVICE CLASS : 20 04 1c WICED DCT name WICED BLUETOOTH AUDIO [Rx]Downloading Firmware...

wiced_add_bluetooth_dm result: 0x0,

> [Rx]HCI_CMD_RESET command reponse is wrong

Error downloading HCI firmware

同时也抓了UART的波形,reset命令是有发出来,但是没有response。

pastedImage_1.pngpastedImage_2.png

排查了下,接线没有问题。所以,我不确定问题出在哪里,或者说我这么操作就是有问题的,请帮忙解答下,谢谢~

Thanks,

Leo

0 Likes
1 Solution

建议选择非standlone的模式,因为20706的I2C引脚和I2S引脚是共用的,在standlone模式下,只能选择SPI控制的codec。

View solution in original post

6 Replies
Leo_liu1
Level 4
Level 4
50 replies posted 25 replies posted 10 replies posted

Hi Sir,

更新一下最新的log:

Platfo[Rx]rm CYW943907WAE3 initialised

Started ThreadX v5.8

Starting Bluetooth...

bt_buffer_pool_init: Pool creation successful, pool handle 0x4e50b0

bt_audio_init_player

WICED DCT BT NAME: WICED BLUETOOTH AUDIO  WICED DCT BT DEVICE CLASS : 20 04 1c WICED DCT name WICED BLUETOOTH AUDIO [Rx]Downloading Firmware...

wiced_add_bluetooth_dm result: 0x0,

> [Rx]update baudrate failed

Error downloading HCI firmware

Thanks,

Leo

0 Likes

关于20706, standalone mode指的是所有的应用层操作都是在20706上完成的,包括对codec的控制。但是demo code中没有这部分的代码,需要自己开发。非standalone mode指的是上位机MCU通过HCI UART接口,使用WICED HCI command和20706通讯,控制应用层的逻辑,以及codec的配置。这种情况下,codec的控制时通过MCU实现的,但是音频I2S接口适合20706接在一起的。

你的应用中,上位机MCU计划使用43907吗?

0 Likes

Hi Owen,

上位机mcu计划使用STM32L4R9ZIY6。

Thanks,

Leo

0 Likes

建议选择非standlone的模式,因为20706的I2C引脚和I2S引脚是共用的,在standlone模式下,只能选择SPI控制的codec。

如果在非standlone的模式下,MCU通过HCI UART控制20706,再通过I2C/SPI 控制 codec,codec再通过I2S接20706,是吗

pastedImage_0.png

0 Likes

是的,就是你图中画的这样子。

0 Likes