esp32s3下i2s开发记录
关键词:esp32s3,platformIO,i2s,inmp441,max98357
引言
本文将鄙人在使用esp32s3开发inmp441和max98357并用其进行收音和放音实验的重点作记录。
一,介绍
1. 硬件模块介绍
(1) esp32s3
ESP32-S3 是一款低功耗的 MCU 系统级芯片 (SoC),支持 2.4 GHz Wi-Fi 和低功耗蓝牙 (Bluetooth® LE) 无线通信。芯片集成了高性能的 Xtensa® 32 位 LX7 双核处理器、超低功耗协处理器、Wi-Fi 基带、蓝牙基带、RF 模块以及外设。拥有2个i2s接口。
(2)inmp441
INMP441是一款高性能,低功耗,数字输出,带底部端口的全向MEMS麦克风。该完整的INMP441解决方案由一个MEMS传感器,信号组成调节,模数转换器,抗混叠滤波器,电源管理和行业标准的24位I²S接口。I²S接口允许INMP441直接连接到数字处理器,如DSP和微控制器,无需使用用于系统中的音频编解码器。INMP441具有高信噪比,是一款出色的选择近场应用。
接口定义:
SCK | I²S接口的串行数据时钟 |
---|---|
WS | 用于I²S接口的串行数据字选择 |
L/R | 左/右声道选择。(设置为低电平时,麦克风在I²S帧的左声道输出信号;设置为高电平时,麦克风在右声道输出信号) |
SD | I²S接口的串行数据输出。 |
VCC | 输入电源DC1.8V至3.3V. |
GND | 电源地 |
(3)max98357
MAX98357A/MAX98357B是数字脉冲编码调制(PCM)输入D类功率放大器,可提供AB类音频性能,同时具有D类的效率。器件在I2S/左对齐模式下通过单个增益设置输入可提供5中可选择增益(3dB、6dB、9dB、12dB、15dB),在TDM模式下为固定12dB增益。
数字音频接口高度灵活,MAX98357A支持I²S数据,MAX98357B支持左对齐数据。两种器件均支持8通道时分复用(TDM)数据。对于所有支持的数据格式,数字音频接口可接收8KHz至96KHz的指定采样速率。IC通过配置可将立体声输入数据转换成左声道、右声道、(左声道/2 + 右声道/2)输出。对于I2S和左对齐模式,IC采用16/24/32位数据工作,对于TDM模式,器件采用16位或32位数据工作。IC无需PCM通讯应用中的外部MCLK信号。这有助于减小EMI以及电路板的耦合问题,另外,也可减小电路板尺寸以及IC引脚数。
IC在BCLK和LRCLK上具有很高的宽带抖动容限(12ns典型值),能够可靠工作。
有源辐射抑制、边沿速率限制以及过冲控制电路大大减小EMI。无需滤波的扩谱调制机制可省去传统D类器件中的输出滤波器件,可减少方案中的器件数量。
IC采用9引脚WLP (1.345mm x 1.435mm x 0.64mm)和16引脚TQFN (3mm x 3mm x 0.75mm)封装,工作在-40°C至+85°C温度范围。
(不清楚MAX98357A/MAX98357B/MAX98357是什么关系,只找到了MAX98357A/MAX98357B的数据手册,不过应该没多大差别)
接口定义:
VCC | 输入电源DC2.5V至5.5V. |
---|---|
GND | 电源地 |
SD | 关机和频道选择 |
GAIN | 增益和频道选择 |
DIN | 数字输入信号 |
BCLK | I²S接口的串行数据输出 |
LRC | I2S与LJ模式的左/右时钟。同步时钟用于TDM模式 |
2. 平台介绍
platformIO
二、实施
1. 硬件部分
(1)inmp441的连线为
inmp441 | esp32s3 |
---|---|
SCK | GPIO7 |
WS | GPIO6 |
L/R | GPIO4 |
SD | \ |
VCC | 3.3V |
GND | GND |
(2)max98357的连线为
max98357 | esp32s3 |
---|---|
VCC | 3.3V |
GND | GND |
SD | \ |
GAIN | \ |
DIN | GPIO18 |
BCLK | GPIO17 |
LRC | GPIO16 |
2. 软件部分
代码
<