首先,我们先介绍一下音频芯片:开发板上带有一个麦克风,一个扬声器,音频编解码芯片使用ES8311。麦克风直接连接到了ES8311芯片上,ES8311和扬声器之间,还有一个音频驱动放大器。ES8311通过I2S接口与ESP32-C3连接。
ES8311这个芯片不仅使用I2S接口与ESP32连接,还有I2C接口与ESP32连接,I2C接口用于配置,I2S接口用于音频传输
点击打开example_config.h文件,I2C引脚相关代码在它24~35行之间,这里使用了条件编译,根据使用的ESP32不同型号,定义I2C引脚。针对开发板上ESP32-C3,应该修改它的33、34行,修改为开发板上使用的GPIO0和GPIO1引脚
#define I2C_SCL_IO (GPIO_NUM_1)
#define I2C_SDA_IO (GPIO_NUM_0)
I2S引脚相关代码在它的37~48之间,然后先修改39~41行
#define I2S_MCK_IO (GPIO_NUM_10)
#define I2S_BCK_IO (GPIO_NUM_8)
#define I2S_WS_IO (GPIO_NUM_12)
然后修改46、47行,改完以后I2S的5个引脚就修改好了
#define I2S_DO_IO (GPIO_NUM_11)
#define I2S_DI_IO (GPIO_NUM_7)
特别要注意I2S引脚当中的GPIO11,这个引脚目前还是VDD_SPI引脚,默认是一个电源引脚,输出3.3V,需要把它变成GPIO11才可以使用,这个变化是不可逆的,变成GPIO11以后,就不能再变成VDD_SPI