[i2s_audio] Implemented I2S PDM Microphone DSR selection (#17751)

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
This commit is contained in:
Egor Vorontsov
2026-08-03 09:22:03 -04:00
committed by GitHub
co-authored by pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
parent 6b10e8bd15
commit 4d9c514a1a
9 changed files with 72 additions and 15 deletions
@@ -0,0 +1,25 @@
microphone:
- platform: i2s_audio
id: mic_id_external
i2s_din_pin: ${i2s_din_pin1}
adc_type: external
pdm: false
mclk_multiple: 384
correct_dc_offset: true
on_data:
- if:
condition:
- microphone.is_muted:
id: mic_id_external
then:
- microphone.unmute:
id: mic_id_external
else:
- microphone.mute:
id: mic_id_external
- platform: i2s_audio
id: mic_id_pdm
i2s_din_pin: ${i2s_din_pin2}
adc_type: external
pdm: true
pdm_dsr: 16
-10
View File
@@ -1,8 +1,3 @@
i2s_audio:
i2s_bclk_pin: ${i2s_bclk_pin}
i2s_lrclk_pin: ${i2s_lrclk_pin}
i2s_mclk_pin: ${i2s_mclk_pin}
microphone:
- platform: i2s_audio
id: mic_id_external
@@ -22,8 +17,3 @@ microphone:
else:
- microphone.mute:
id: mic_id_external
- platform: i2s_audio
id: mic_id_pdm
i2s_din_pin: ${i2s_din_pin2}
adc_type: external
pdm: true
@@ -1,8 +1,8 @@
substitutions:
i2s_bclk_pin: GPIO15
i2s_lrclk_pin: GPIO4
i2s_mclk_pin: GPIO5
i2s_din_pin1: GPIO33
i2s_din_pin2: GPIO34
<<: !include common.yaml
packages:
i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml
<<: !include common-pdm.yaml
@@ -0,0 +1,8 @@
substitutions:
i2s_din_pin1: GPIO33
i2s_din_pin2: GPIO34
packages:
i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-s2-idf.yaml
<<: !include common.yaml
@@ -0,0 +1,14 @@
# Common I2S audio bus configuration for ESP32-S2 IDF tests
# Provides a shared i2s_audio bus that speaker/microphone components can use
# Each consumer must give its speaker/microphone a unique data pin
substitutions:
i2s_bclk_pin: GPIO5
i2s_lrclk_pin: GPIO4
i2s_mclk_pin: GPIO15
i2s_audio:
- id: i2s_audio_bus
i2s_bclk_pin: ${i2s_bclk_pin}
i2s_lrclk_pin: ${i2s_lrclk_pin}
i2s_mclk_pin: ${i2s_mclk_pin}