在 Espressif ESP32-LYRATD-MSC 开发板上配置音频编解码器

Configuring audio codec on Espressif ESP32-LYRATD-MSC Development Board

当我使用 official audio recording examples 编译和烧录 ESP32-LYRATD-MSC 时,在配置 ES8388 编解码器驱动程序后出现 es_write_reg 错误。

从 LYRA 或 WROVER 套件到 LYRATD-MSC 的哪些变化可能导致错误?

这是 known issue 示例。 ESP32-LYRATD-MSC 附带 ZL38063 DSP 芯片,但从示例中可以看出,它需要配置 ESP8388:

audio_hal_codec_config_t audio_hal_codec_cfg =  AUDIO_HAL_ES8388_DEFAULT(); // offending line
audio_hal_codec_cfg.i2s_iface.samples = AUDIO_HAL_16K_SAMPLES;
audio_hal_handle_t hal = audio_hal_init(&audio_hal_codec_cfg, 0);
audio_hal_ctrl_codec(hal, AUDIO_HAL_CODEC_MODE_ENCODE, AUDIO_HAL_CTRL_START);

要解决,改为配置 ZL38063:

audio_hal_handle_t init_audio_codec()
{
#if (CONFIG_ESP_LYRAT_V4_3_BOARD || CONFIG_ESP_LYRAT_V4_2_BOARD)
    audio_hal_codec_config_t audio_hal_codec_cfg = AUDIO_HAL_ES8388_DEFAULT();
    return audio_hal_init(&audio_hal_codec_cfg, 0);
#endif

#if (CONFIG_ESP_LYRATD_MSC_V2_1_BOARD || CONFIG_ESP_LYRATD_MSC_V2_2_BOARD)
    audio_hal_codec_config_t audio_hal_codec_cfg = AUDIO_HAL_ZL38063_DEFAULT();
    return audio_hal_init(&audio_hal_codec_cfg, 2);
#endif
}

然后,在app_main()

audio_hal_ctrl_codec(init_audio_codec(), AUDIO_HAL_CODEC_MODE_BOTH, AUDIO_HAL_CTRL_START);