diff --git a/ESP32_MICROPHONE/ESP32_INMP441_SETUP_ESP-2.X/ESP32_INMP441_SETUP_ESP-2.X.ino b/ESP32_MICROPHONE/ESP32_INMP441_SETUP_ESP-2.X/ESP32_INMP441_SETUP_ESP-2.X.ino new file mode 100644 index 0000000..6dd7a15 --- /dev/null +++ b/ESP32_MICROPHONE/ESP32_INMP441_SETUP_ESP-2.X/ESP32_INMP441_SETUP_ESP-2.X.ino @@ -0,0 +1,55 @@ +#include +#define I2S_WS 15 +#define I2S_SD 13 +#define I2S_SCK 2 +#define I2S_PORT I2S_NUM_0 +#define bufferLen 64 + +int16_t sBuffer[bufferLen]; +void setup() { + Serial.begin(115200); + Serial.println("Setup I2S ..."); + + delay(1000); + i2s_install(); + i2s_setpin(); + i2s_start(I2S_PORT); + delay(500); +} + +void loop() { + + size_t bytesIn = 0; + esp_err_t result = i2s_read(I2S_PORT, sBuffer, sizeof(sBuffer), &bytesIn, portMAX_DELAY); + if (result == ESP_OK && bytesIn > 0) + { + Serial.println(bytesIn); + } +} + +void i2s_install(){ + const i2s_config_t i2s_config = { + .mode = i2s_mode_t(I2S_MODE_MASTER | I2S_MODE_RX), + .sample_rate = 44100, + .bits_per_sample = i2s_bits_per_sample_t(16), + .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT, + .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_STAND_I2S), + .intr_alloc_flags = 0, // default interrupt priority + .dma_buf_count = 8, + .dma_buf_len = bufferLen, + .use_apll = false + }; + + i2s_driver_install(I2S_PORT, &i2s_config, 0, NULL); +} + +void i2s_setpin(){ + const i2s_pin_config_t pin_config = { + .bck_io_num = I2S_SCK, + .ws_io_num = I2S_WS, + .data_out_num = -1, + .data_in_num = I2S_SD + }; + + i2s_set_pin(I2S_PORT, &pin_config); +} \ No newline at end of file