This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] WL1837MOD:通过 I2S 路由音频时出现问题

Guru**** 2864540 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/628454/wl1837mod-problems-with-routing-audio-over-i2s

器件型号:WL1837MOD

我正在尝试将此组件完全集成到我们的板中、其中有 Marshmallow 版本的 Android。 我尝试遵循此主题中的说明

https://e2e.ti.com/support/wireless_connectivity/wilink_wifi_bluetooth/f/307/t/388013#pi239031350=1

无需使用 hcitool、只需在本机代码中集成命令即可。 我找到了一种使用提供的回调通过 bt 层进行通信的方法。 它似乎可以工作、但音频通道似乎没有变化。 如何通过 I2S 编码成功路由音频?

#define HCI_CMD_WRITE_CODEC 0xfd06

HC_BT_HDR * p_Buf = NULL;
uint8_t *p;
uint8_t CODEC I2S_CMD[]={0x00、0x02、0x00、0x80、0x3E、0x00、0x01、0x00、0x01、0x00、0x10、0x00、0x01、0x00、0x10、0x00、0x10、0x00、0x00、0x10、

0x00、0x00、0x10、0x00、0x10、0x00、0x10、0x00、0x10、0x00、0x00、0x10、0x10、0x00、0x10、0x00、0x00、0x00、0x00、0x10、0x00、0x1、0x10、0x00、0x10、0xGI 启动;
if (bt_vender_cback)
{
P_buf =(HC_BT_HDR *) bt_vender_cbacks->alloc (BT_HC_HDR_SIZE + HCI_CMD_PREAMARE_SIZE +\
sizeof (codec_I2S_cmd);
}


如果(p_buf)
{
p_Buf->event = MSG_STACK_TO_HC_HCI_CMD;
p_buf->offset = 0;
p_buf->layer_specific = 0;
p_buf->len = sizeof (codec_I2S_cmd)+ HCI_CMD_PREAMING_SIZE;

P =(uint8_t *)(p_buf + 1);
uint16_TO_STREAM (p、HCI_CMD_WRITE_CODEC);
* p++= sizeof (codec_I2S_cmd);
memcpy (p、&codec_I2S_cmd、sizeof (codec_I2S_cmd));
}

       BT_vender_cbacks->xmit_CB (HCI_CMD_WRITE_CODEC、p_Buf、hw_config_cback);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,我们已收到您的查询,并将很快返回给您

    谢谢
    Saurabh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Claudio、

    将 WL18xx 器件上的 I2S/PCM 端口用于蓝牙音频实质上是使用 WL18xx 控制器的辅助 A2DP (A3DP)模式。

    为了成功地通过 I2S/PCM 端口路由音频、您首先需要使用上述命令(0xFD06)来配置 WL18xx 的 PCM 接口。

    此外、您还需要结合使用以下命令、以便通过 PCM 接口正确路由音乐。

    • HCI_VS_A3DP_Codec_Configuration (0xFD8E)
    • HCI_VS_A3DP_Open_Stream (0xFD8C)
    • HCI_VS_A3DP_Close_Stream (0xFD8D)
    • HCI_VS_A3DP_Start_Stream (0xFD8F)
    • HCI_VS_A3DP_Stop_Stream (0xFD90)

    有关这些 HCI_VS 命令的完整文档,请访问 :www.ti.com/.../swru442  

    此致、

    Vihang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vihang、

    我认为我的特定问题不需要 a3dp 接口。 我正在尝试通过 PCM/I2S 通道使用耳机蓝牙来发送/接收来自内部调制解调器的数据。 当音频调用开始时、我将编解码器端口路由到直接通信调制解调器和 wl18xx 中。 我还尝试将蓝牙连接到外部耳机以流式传输媒体、似乎工作正常。

    因此、我使用0xfd06命令配置 PCM 接口、以便通过 I2S 发送数据、但除了白噪声之外、我仍然听不到任何其他内容。

    有一种方法可以询问蓝牙的当前配置、以了解我发送的命令是否有效?

    此致

    克劳迪奥

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Claudio、

    如果要使用 PCM/I2S 接口、则必须使用 A3DP 模式。

    此致、
    Vihang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我尝试更好地了解如何配置器件、但我不了解如何使其正常工作。 我尝试编写了您建议我使用的前两条 a3dp 命令、但它们似乎不起作用:

    [...]
    uint8_t ad3p_codec_config[]={0x00、0x04、0x01、0x00、0x00、0x04、0x01、0x00、0x00、0x00};
    uint8_t ad3p_codec_open[]={handle、0x30、0x00、0x40、0x00、0x00、0x30、0x30、0xbucd_decc
    
    、0x30
    、0xbul_adfuld_adf_buldc =硬件配置、3p_adf_adf_buld_adf_adf_buls_decc;t_ab_buls_decc = 3p_ab_adf_adf_adf_buls_decc (buls_b_buls_buls_decc);
    
    p_buf = build_cmd_Buf (HCI_VS_A3DP_Open_Stream、sizeof (ad3p_codec_open)、ad3p_codec_open);
    bt_vender_cbacks->xmit_CB (HCI_VS_A3DP_Open_Stream、p_Buf、hw_config_cback);
    [] 

    Android bt 协议栈为我提供了与上面列出的两条命令之一相关的超时、因此硬件似乎不响应我的命令。 我在事件 fender_op = 8 (设置音频状态)后发送命令

    10-24 15:26:52.997 1591 1616 I bt_Vendor:Vendor op - 8.
    10-24 15:26:52.997 1591 1616 I bt_vendor:设置音频状态
    10-24 15:26:52.997 1591 1616 I bt_vendor:epilogue_CB
    10-24 15:26:52.997 1591 1616 I bt_HCI :epilogue_finished_callback
    10-24 15:26:52.997 1591 1616 W bt_btm :BTM Remote 不支持2-EDR eSCO
    10-24 15:26:52.997 1591 1616 W bt_btm :BTM Remote 不支持3-EDR eSCO
    10-24 15:26:52.998 1591 1613 I bt_Vendor:Vendor op - 7.
    10-24 15:26:53.283 1591 1616 W bt_btif:BTA_AG_SCO_OPENING_ST:忽略事件1
    10-24 15:26:57.821 1591 1616 D bt_btm_pm:BTM_pm_snd_mD_req 从监听切换到监听。
    10-24 15:27:02.836 1591 1608 E bt_HCI :COMMAND_TIMEOUT_HCI 层超时,等待对命令的响应。 操作码:0xfd8c
    10-24 15:27:02.836 1591 1608 E bt_HCI :COMMAND_TIVE_OUT 正在重新启动蓝牙进程。

    此致、

    克劳迪奥