I2S MEMS Microphone · SKU 02630

ICS-43434 I2S 麦克风模块资料

数字 I2S 输出 MEMS 麦克风模块,适合 ESP32、SAMD、RP2040/RP2350、树莓派等带 I2S 输入的平台。普通 UNO/Nano 不建议直接使用。

Quick Facts

  • 接口:I2S 数字输出,不是模拟输出
  • 供电:芯片 1.65V~3.63V,模块建议 3.3V
  • 数据:24-bit I2S,MSB first
  • 状态:TDK 标记 EOL,实物芯片批次待确认
ICS-43434 I2S 麦克风模块 SKU:02630;淘宝链接已记录。
进入淘宝购买

Overview

模块介绍

ICS-43434 集成 MEMS 声学传感器、信号调理、ADC、抽取/抗混叠滤波、电源管理和 I2S 数字接口。它输出数字音频数据,不需要外接音频编解码芯片,也不能像模拟麦克风那样接 ADC 读数。

适用平台

推荐 ESP32、SAMD21/SAMD51、RP2040/RP2350、树莓派等带 I2S 输入的平台。

不适合 UNO/Nano

常见 ATmega328P UNO/Nano 没有标准 I2S 外设,不建议直接接本模块。

左右声道选择

LR/SEL 接 GND 通常输出左声道,接 3.3V 输出右声道,代码读取声道要一致。

Wiring

ESP32 单麦克风接线

下面是常用 ESP32 测试接线。ESP32 的 I2S 引脚可重映射,实际以代码配置为准。

ICS-43434 I2S 麦克风模块接 ESP32 接线图
ICS-43434 模块ESP32说明
VDD / 3V33V3推荐 3.3V
GNDGND共地
SCK / BCLKGPIO26I2S BCLK
WS / LRCLKGPIO22I2S WS
SD / DOUTGPIO21I2S DIN
LR / SELGND左声道;接 3V3 为右声道

Stereo

双麦克风左右声道

两个 ICS-43434 可以共用 SCK、WS、SD。左麦 LR 接 GND,右麦 LR 接 3.3V。若 SD 线释放异常,可参考数据手册在 SD 线上加下拉电阻,常见示例为 100kΩ。

两个 ICS-43434 I2S 麦克风左右声道接线图

Arduino Example

ESP32 Arduino 测试例程

下面例程使用 Espressif 新版 I2S Standard RX 接口,适合 Arduino-ESP32 3.x / ESP-IDF 5.x 思路。不同核心版本 API 可能不同,编译报错时先确认版本。

#include 
#include "driver/i2s_std.h"

#define I2S_BCLK GPIO_NUM_26
#define I2S_WS   GPIO_NUM_22
#define I2S_DIN  GPIO_NUM_21

static i2s_chan_handle_t rx_chan;

void setup() {
  Serial.begin(115200);
  delay(1000);

  i2s_chan_config_t chan_cfg = I2S_CHANNEL_DEFAULT_CONFIG(I2S_NUM_AUTO, I2S_ROLE_MASTER);
  ESP_ERROR_CHECK(i2s_new_channel(&chan_cfg, NULL, &rx_chan));

  i2s_std_config_t std_cfg = {
    .clk_cfg = I2S_STD_CLK_DEFAULT_CONFIG(16000),
    .slot_cfg = I2S_STD_PHILIPS_SLOT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_32BIT, I2S_SLOT_MODE_MONO),
    .gpio_cfg = {
      .mclk = I2S_GPIO_UNUSED,
      .bclk = I2S_BCLK,
      .ws = I2S_WS,
      .dout = I2S_GPIO_UNUSED,
      .din = I2S_DIN,
      .invert_flags = {
        .mclk_inv = false,
        .bclk_inv = false,
        .ws_inv = false,
      },
    },
  };

  std_cfg.slot_cfg.slot_mask = I2S_STD_SLOT_LEFT;

  ESP_ERROR_CHECK(i2s_channel_init_std_mode(rx_chan, &std_cfg));
  ESP_ERROR_CHECK(i2s_channel_enable(rx_chan));
  Serial.println("ICS-43434 I2S mic ready. Open Serial Plotter.");
}

void loop() {
  int32_t samples[256];
  size_t bytes_read = 0;

  esp_err_t ret = i2s_channel_read(rx_chan, samples, sizeof(samples), &bytes_read, pdMS_TO_TICKS(1000));
  if (ret != ESP_OK || bytes_read == 0) {
    Serial.println(0);
    return;
  }

  int sample_count = bytes_read / sizeof(int32_t);
  int32_t peak = 0;

  for (int i = 0; i < sample_count; i++) {
    int32_t v = samples[i] >> 8;
    if (v < 0) v = -v;
    if (v > peak) peak = v;
  }

  Serial.println(peak);
}

FAQ

常见问题与排查

串口一直是 0 或几乎不变

检查 3.3V 供电、GND 共地、SCK/WS/SD 是否接反、LR 接法与代码声道是否一致,并确认使用的是 I2S 例程而不是 PDM 或模拟麦克风例程。

噪声很大

缩短 SCK/WS/SD 线长,确保供电旁路良好、接地可靠,不要让声孔被焊剂、胶水、灰尘或外壳堵住。

能不能接 5V?

芯片资料供电范围是 1.65V~3.63V。未确认模块有稳压和电平转换前,不建议直接接 5V。

接 UNO 没反应

UNO/Nano 常见 ATmega328P 板没有标准 I2S 外设,不建议直接使用。建议换 ESP32、SAMD、RP2040/RP2350 或树莓派。

Customer Reply

淘宝客户简短话术

您好,这款是 ICS-43434 I2S 数字麦克风模块,不是模拟麦克风,不能直接接 ADC 读音量。建议使用 ESP32、SAMD、RP2040 或树莓派等支持 I2S 输入的平台,VDD 建议接 3.3V。

您好,如果串口一直是 0,请先检查 VDD 是否 3.3V、GND 是否共地、BCLK/WS/SD 有没有接反,LR 脚是否固定到 GND 或 3.3V,并确认代码读取的左右声道一致。UNO/Nano 不建议直接接这个 I2S 麦克风。

References

官方资料 / 公开资料链接