ESP32-s3开发板麦克风使用全解析
目录
1. 硬件原理介绍
我们的ESP32开发板上集成了两个麦克风,它们的位置分别是:

- 麦克风1:位于扩展接口旁边
- 麦克风2:位于USB接口旁边
这两个麦克风是如何工作的呢?从硬件角度看,它们都连接到了ES7210这个专业的音频ADC芯片上。这个芯片负责采集麦克风信号,然后通过I²S接口将数字化后的音频数据传输给ESP32主控。
除了I²S接口外,ES7210还提供了I²C接口用于寄存器配置。这样我们就可以通过ESP32读写ES7210内部寄存器,对其进行灵活配置。
2. 电路设计分析
ES7210芯片支持最多4个麦克风输入,在我们的开发板上:
- 麦克风1:连接到ES7210的15/16脚
- 麦克风2:连接到ES7210的19/20脚
- 麦克风3:连接到31/32脚,这个比较特别,它其实接的是ES8311输出的音频(也就是送往喇叭的声音)。这个设计的妙处在于可以实现回声消除,对语音识别应用非常有用
- 麦克风4:接地,未使用


通过这种接法,麦克风3能捕获开发板自己输出的声音,配合麦克风1/2捕获的环境声音,可以实现更高质量的语音交互体验。
3. 实践案例:麦克风录音
接下来,我们通过一个实际案例来学习如何使用这两个麦克风进行录音,并将音频保存到SD卡。
3.1 运行原有示例
首先,我们运行一下官方提供的示例程序,看看它的实现效果。这个程序的主要流程是:
- 初始化ES7210芯片
- 挂载SD卡
- 录制10秒钟的音频
- 卸载SD卡,完成录音
具体操作步骤:
# 选择目标芯片并配置
# 选择串口
# 编译并下载程序
录音完成后,我们可以取出SD卡,将其放到读卡器中,然后在电脑上播放录制好的wav文件来验证效果。
3.2 代码修改与适配
现在,我们基于IDF中的示例代码i2s/i2s_es7210_tdm来实现自己的录音程序。主要修改点包括:
- 针对ES7210的引脚配置
// I²C接口配置 (SDA=1, SCL=2)
i2c_config.sda_io_num = 1;
i2c_config.scl_io_num = 2;
// I²S接口配置
i2s_pin_config.mck_io_num = 38; // MCLK引脚
i2s_pin_config.bck_io_num = 39; // BCLK引脚
i2s_pin_config.ws_io_num = 40; // WS/LRCK引脚
i2s_pin_config.data_in_num = 41; // DATA引脚
- 修改SD卡接口从SPI到SDIO
// SD卡SDIO接口配置
sdmmc_host_t host = SDMMC_HOST_DEFAULT();
sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT


262

被折叠的 条评论
为什么被折叠?



