Raw PDM with more than two microphones
Posted: Thu Aug 28, 2025 6:20 pm
Hello,
I am interested in using the raw PDM mode on the I2S peripheral with 6 microphones (3 data lines).
I can get the raw PDM data of one data line (two microphones) using the following configuration:
However when I try to activate the other two data lines by setting nothing changes, I am still getting data only for the first data line.
Is raw PDM supported with more than one data line? How can I configure it?
Best regards,
Anton
I am interested in using the raw PDM mode on the I2S peripheral with 6 microphones (3 data lines).
I can get the raw PDM data of one data line (two microphones) using the following configuration:
Code: Select all
i2s_pdm_rx_config_t pdm_rx_cfg = {
.clk_cfg = {
.sample_rate_hz = 3072000,
.clk_src = I2S_CLK_SRC_DEFAULT,
.mclk_multiple = I2S_MCLK_MULTIPLE_256,
.dn_sample_mode = I2S_PDM_DSR_8S,
.bclk_div = 13,
},
.slot_cfg = {
.data_bit_width = I2S_DATA_BIT_WIDTH_16BIT,
.slot_bit_width = I2S_SLOT_BIT_WIDTH_AUTO,
.slot_mode = I2S_SLOT_MODE_STEREO,
.slot_mask = 0b11,
.data_fmt = I2S_PDM_DATA_FMT_RAW
},
.gpio_cfg = {
.clk = GPIO_NUM_4,
.dins = {
GPIO_NUM_21,
GPIO_NUM_13,
GPIO_NUM_14
},
.invert_flags = {
.clk_inv = false,
},
},
};
ESP_ERROR_CHECK(i2s_channel_init_pdm_rx_mode(rx_chan, &pdm_rx_cfg));
ESP_ERROR_CHECK(i2s_channel_enable(rx_chan));
Code: Select all
.slot_mask = 0b111111Is raw PDM supported with more than one data line? How can I configure it?
Best regards,
Anton