蓝牙技术
直播中

哈哈哈

11年用户 963经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

如何将I2S与音频源一起使用?

我正在使用带有 CYW920820M2EVB-01 的音频观看示例。 我想要使用 AV 源配置文件。 在自述文件中提到,I2S 可以作为源。 GPIO 配置我使用设备配置器并将引脚分配给音频,如下所示:-
时钟 = P4
WS = P5
DO=P15
DI=P14
此后,我保存了它并构建了文件,将其刷入主板并打开了 ClientControl。 然后我打开端口,将 BR/EDR 与蓝牙耳机连接,但 I2S 选项变灰。 我可以通过选择 .wav 来播放其他音频 定义。

如何将 I2S 与音频源一起使用?

回帖(1)

study875

2025-7-3 18:19:29

要将I2S与音频源在CYW920820M2EVB-01开发板上结合使用(作为AV源),并解决I2S选项灰显问题,请按以下步骤操作:


1. 确保硬件配置正确



  • I2S连接:开发板需作为 I2S从设备,由外部主设备(如音频编解码器)提供时钟:

    • BCLK(时钟)→ P4(输入)

    • LRCLK(WS)→ P5(输入)

    • DIN(数据输入)→ P14(输入)

    • DOUT 通常不需使用(源设备无需输出)。


  • 确认外部主设备已正确供电并输出信号(如44.1kHz/16位标准格式)。


2. 配置固件支持I2S源



  • 在代码中启用I2S源模式:

    • 修改 app_audio_config_t 结构体(通常在 app_audio.c 或主程序):
      app_audio_config_t audio_config = {
         .audio_source = WICED_AUDIO_SOURCE_I2S, // 强制设为I2S源
         // 其他参数(采样率、通道数等需匹配外部设备)
      };

    • 检查 采样率匹配:确保 audio_config.sample_rate 与外部设备一致(如44100 Hz)。



3. 启用I2S初始化



  • 在初始化代码中调用I2S启动函数(通常在 application_init() 或音频启动阶段):
     wiced_audio_start(WICED_AUDIO_SOURCE_I2S, &i2s_params);

  • 确保无错误返回(通过调试日志验证)。


4. 检查Makefile配置



  • 确认编译时启用了I2S源:

    • 在项目Makefile中添加:
      DEFINES += WICED_AUDIO_SOURCE_I2S



5. 调整蓝牙配置



  • AVDTP角色:确保设备作为 源设备(Source) 广播:
     wiced_bt_a2d_set_role(BTAV_A2DP_SRC); // 设置为源角色
    wiced_bt_start_advertisements(BTM_BLE_ADVERT_TYPE_CONNECTABLE, NULL);


6. ClientControl 操作优化



  • 连接顺序

    1. 烧录固件后,先启动外部I2S音频源

    2. 再通过ClientControl连接蓝牙耳机。


  • 若I2S选项仍灰显:

    • 检查串口日志(使用 WICED_UART 调试)确认I2S初始化状态。

    • 确保外部主设备时钟信号稳定(用示波器检查BCLK和WS)。



7. 验证音频流



  • 成功连接后:

    • ClientControl应显示 "I2S" 选项可用

    • 音频数据应通过蓝牙传输到耳机。



可能的问题原因



  • I2S信号未稳定:外部设备未启动或信号不兼容。

  • 固件未正确配置:未设置 WICED_AUDIO_SOURCE_I2S

  • 角色冲突:未设为A2DP源角色(BTAV_A2DP_SRC)。

  • 依赖宏未启用:Makefile缺少定义。



注意:CYW20820 SDK中,I2S源可能需要严格的主/从模式匹配。如果仍遇问题,请检查SDK文档中关于 wiced_audio_start 的参数要求,或更新至最新SDK版本。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分