6c6e94ffb6d019f3f08b91f5e89b1131080b2109
BOM-DAT/inductor-dat/inductor-dat.md
| ... | ... | @@ -29,6 +29,9 @@ |
| 29 | 29 | |
| 30 | 30 | ## footprint |
| 31 | 31 | |
| 32 | +- OP 1040 == 10.0x10.0mm |
|
| 33 | +- OP 0630 == 7.4 x 6.6 mm |
|
| 34 | + |
|
| 32 | 35 | - SWRH1207 |
| 33 | 36 | - SWRB1204 |
| 34 | 37 | - CDRH127 |
| ... | ... | @@ -36,7 +39,11 @@ |
| 36 | 39 | - CDRH74R |
| 37 | 40 | - CDRH4D28 |
| 38 | 41 | - CD43 |
| 39 | -- CD105 |
|
| 42 | +- CD105 |
|
| 43 | +- CD75 = 7.8 x 7.0 == OP 0630 |
|
| 44 | + |
|
| 45 | + |
|
| 46 | + |
|
| 40 | 47 | - SWPA6045 |
| 41 | 48 | - SWPA5040 |
| 42 | 49 | - SWPA4030 |
Chip-cn-dat/Espressif-dat/ESP32-S3-DAT/ESP32-S3-DAT.md
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | |
| 10 | 10 | - [[ESP32-S3-module-DAT]] - [[ESP32-S3-WROOM-1-dat]] - [[ESP32-S3-board-dat]] |
| 11 | 11 | |
| 12 | - |
|
| 12 | +- [[ESP32-S3-app-DAT]] |
|
| 13 | 13 | |
| 14 | 14 | |
| 15 | 15 |
Chip-cn-dat/Espressif-dat/ESP32-S3-DAT/ESP32-S3-app-DAT/ESP32-S3-app-DAT.md
| ... | ... | @@ -5,7 +5,7 @@ |
| 5 | 5 | |
| 6 | 6 | - [[interface-interactive-dat]] |
| 7 | 7 | |
| 8 | -- [[ESP32-I2S-dat]] |
|
| 8 | +- [[ESP32-I2S-dat]] - [[ESP32-S3-dat]] |
|
| 9 | 9 | |
| 10 | 10 | |
| 11 | 11 |
Chip-cn-dat/ZILLTEK-dat/2026-03-02-16-52-46.png
| ... | ... | Binary files /dev/null and b/Chip-cn-dat/ZILLTEK-dat/2026-03-02-16-52-46.png differ |
Chip-cn-dat/ZILLTEK-dat/ZILLTEK-dat.md
| ... | ... | @@ -0,0 +1,11 @@ |
| 1 | + |
|
| 2 | + |
|
| 3 | +# ZILLTEK-dat |
|
| 4 | + |
|
| 5 | +- [[mems-dat]] - [[zilltek-dat]] |
|
| 6 | + |
|
| 7 | +- [[I2S-dat]] |
|
| 8 | + |
|
| 9 | +MSM261DGT003 |
|
| 10 | + |
|
| 11 | + |
|
| ... | ... | \ No newline at end of file |
Chip-cn-dat/mems-dat/2026-03-02-16-56-12.png
| ... | ... | Binary files /dev/null and b/Chip-cn-dat/mems-dat/2026-03-02-16-56-12.png differ |
Chip-cn-dat/mems-dat/MSM261S4030H0R-dat/MSM261S4030H0R-dat.md
| ... | ... | @@ -1,5 +1,10 @@ |
| 1 | 1 | |
| 2 | -# MSM261S4030H0R-dat |
|
| 2 | +# |
|
| 3 | + |
|
| 4 | + |
|
| 5 | + |
|
| 6 | + |
|
| 7 | +- [[sensor-microphone-I2S-dat]] - [[sensor-microphone-I2S]] |
|
| 3 | 8 | |
| 4 | 9 | MSM261S4030H0R |
| 5 | 10 |
Chip-cn-dat/mems-dat/mems-dat.md
| ... | ... | @@ -1,4 +1,13 @@ |
| 1 | 1 | |
| 2 | 2 | # mems-dat |
| 3 | 3 | |
| 4 | -MEMS(敏芯微) |
|
| ... | ... | \ No newline at end of file |
| 0 | +MEMS(敏芯微) |
|
| 1 | + |
|
| 2 | + |
|
| 3 | +- [[mems-dat]] - [[zilltek-dat]] |
|
| 4 | + |
|
| 5 | +- [[MSM261S4030H0R-dat]] |
|
| 6 | + |
|
| 7 | +MSM2613526H1CPM SCH |
|
| 8 | + |
|
| 9 | + |
|
| ... | ... | \ No newline at end of file |
Chip-dat/Nordic-dat/NRF5x-dat/NRF52840-dat/arduino-nano-33-ble-dat/arduino-nano-33-ble-dat.md
| ... | ... | @@ -13,7 +13,7 @@ https://store.arduino.cc/products/arduino-nano-33-ble |
| 13 | 13 | |
| 14 | 14 | - [[MPM3610-dat]] - [[dcdc-down-dat]] - [[MPS-dat]] |
| 15 | 15 | |
| 16 | -- [[MP34DT06JTR-dat]] - [[sensor-microphone-dat]] - [[st-sensor-dat]] - [[I2S-microphone]] |
|
| 16 | +- [[MP34DT06JTR-dat]] - [[sensor-microphone-dat]] - [[st-sensor-dat]] - [[sensor-microphone-I2S]] |
|
| 17 | 17 | |
| 18 | 18 | - [[ESD-dat]] - [[USB-ESD-dat]] |
| 19 | 19 |
Tech-dat/Interface-dat/I2S-dat/I2S-dat.md
| ... | ... | @@ -13,6 +13,7 @@ |
| 13 | 13 | |
| 14 | 14 | - [[sensor-dat]] |
| 15 | 15 | |
| 16 | +- [[ESP32-S3-dat]] |
|
| 16 | 17 | |
| 17 | 18 | |
| 18 | 19 | ## info |
| ... | ... | @@ -29,7 +30,22 @@ This makes I2S a popular choice for high-speed data transfer applications. |
| 29 | 30 | |
| 30 | 31 | |
| 31 | 32 | |
| 33 | +### 1. Pin Mapping Logic |
|
| 32 | 34 | |
| 35 | +To get this working, you simply need to map your microphone's pins to the ESP32’s I2S peripheral. Here is how they correspond: |
|
| 36 | + |
|
| 37 | +| Microphone Label | I2S Standard Name | ESP32 Function | Role | |
|
| 38 | +| :--- | :--- | :--- | :--- | |
|
| 39 | +| **CLK** (or BCLK) | **SCK** (Bit Clock) | Output | The heartbeat that times every individual bit. | |
|
| 40 | +| **L/R** (or WS) | **WS** (Word Select) | Output | Toggles to define the start of Left/Right frames. | |
|
| 41 | +| **DATA** (or SD) | **SDIN** (Data In) | Input | The digital audio stream entering the ESP32. | |
|
| 42 | + |
|
| 43 | + |
|
| 44 | +### 2. Why "MCLK" is Missing |
|
| 45 | + |
|
| 46 | +If you are looking at ESP32 documentation, you might see a fourth signal called **MCLK (Master Clock)**. |
|
| 47 | +* **The Good News:** Most I2S MEMS microphones (like the INMP441 or SPH0645) do **not** require an MCLK signal. They derive their internal timing directly from the Bit Clock (CLK). |
|
| 48 | +* **The Setup:** You can simply leave the MCLK configuration in your code as "unused" or -1. |
|
| 33 | 49 | |
| 34 | 50 | |
| 35 | 51 |
Tech-dat/Interface-dat/I2S-dat/I2S-microphone-dat/2025-01-06-14-07-17.png
| ... | ... | Binary files a/Tech-dat/Interface-dat/I2S-dat/I2S-microphone-dat/2025-01-06-14-07-17.png and /dev/null differ |
Tech-dat/Interface-dat/I2S-dat/I2S-microphone-dat/2026-02-10-17-43-37.png
| ... | ... | Binary files a/Tech-dat/Interface-dat/I2S-dat/I2S-microphone-dat/2026-02-10-17-43-37.png and /dev/null differ |
Tech-dat/Interface-dat/I2S-dat/I2S-microphone-dat/2026-02-10-17-44-36.png
| ... | ... | Binary files a/Tech-dat/Interface-dat/I2S-dat/I2S-microphone-dat/2026-02-10-17-44-36.png and /dev/null differ |
Tech-dat/Interface-dat/I2S-dat/I2S-microphone-dat/I2S-microphone-dat.md
| ... | ... | @@ -1,160 +0,0 @@ |
| 1 | - |
|
| 2 | -# I2S-microphone-dat |
|
| 3 | - |
|
| 4 | - |
|
| 5 | - |
|
| 6 | -- [[I2S-microphone-dat]] - [[buzzer-mems-dat]] - [[sensor-mems-dat]] |
|
| 7 | - |
|
| 8 | - |
|
| 9 | - |
|
| 10 | -- [[ADMP404-dat]] - [[analog-device-dat]] |
|
| 11 | - |
|
| 12 | - |
|
| 13 | -I2S Output Digital Microphone - [[INMP441-dat]] - [[MSM261S4030H0R-dat]] |
|
| 14 | - |
|
| 15 | -- [[ICS-43432-dat]] - [[ICS-43434-dat]] |
|
| 16 | - |
|
| 17 | -- [[SPH0645-dat]] |
|
| 18 | - |
|
| 19 | - |
|
| 20 | - |
|
| 21 | - |
|
| 22 | - |
|
| 23 | -- [[INMP441-dat]] |
|
| 24 | - |
|
| 25 | - |
|
| 26 | - |
|
| 27 | - |
|
| 28 | -- [[MP34DT06JTR-dat]] - [[sensor-microphone-dat]] - [[st-sensor-dat]] - [[I2S-microphone]] |
|
| 29 | - |
|
| 30 | -MEMS audio sensor omnidirectional digital microphone |
|
| 31 | - |
|
| 32 | -https://www.st.com/resource/en/datasheet/mp34dt06j.pdf |
|
| 33 | - |
|
| 34 | - |
|
| 35 | - |
|
| 36 | - |
|
| 37 | - |
|
| 38 | - |
|
| 39 | - |
|
| 40 | -## Common pins |
|
| 41 | - |
|
| 42 | - |
|
| 43 | -| model | L/R | WS | SD | SCK | |
|
| 44 | -| ---------------------- | ---------- | ---------------- | ---- | ----- | |
|
| 45 | -| explain | left/right | data-word select | DATA | clock | |
|
| 46 | -| [[INMP441-dat]] | yes | yes | yes | yes | |
|
| 47 | -| [[ICS-43434-dat]] | yes | yes | yes | yes | |
|
| 48 | -| [[MSM261S4030H0R-dat]] | yes | yes | yes | yes | |
|
| 49 | -| [[SPH0645-dat]] | yes | yes | yes | yes | |
|
| 50 | - |
|
| 51 | - |
|
| 52 | -## wiring reference |
|
| 53 | - |
|
| 54 | -| Signal | Connection | |
|
| 55 | -| ------ | ----------------------------------------------- | |
|
| 56 | -| SEL | unconnected (only one channel, apparently left) | |
|
| 57 | -| LRCL | #15 | |
|
| 58 | -| DOUT | #32 | |
|
| 59 | -| BCKL | #14 | |
|
| 60 | -| GND | GND | |
|
| 61 | -| 3V | 3V | |
|
| 62 | - |
|
| 63 | - |
|
| 64 | -## go advance |
|
| 65 | - |
|
| 66 | -- simultaneous data = microphones with **TDM (Time-Division Multiplexing)** |
|
| 67 | - |
|
| 68 | - |
|
| 69 | - |
|
| 70 | - |
|
| 71 | -## demo code for interleaved data |
|
| 72 | - |
|
| 73 | - #include <driver/i2s.h> |
|
| 74 | - |
|
| 75 | - // I2S configuration |
|
| 76 | - #define I2S_NUM I2S_NUM_0 // I2S port number |
|
| 77 | - #define SAMPLE_RATE 16000 // Sampling rate in Hz |
|
| 78 | - #define I2S_BCK_PIN 26 // Bit clock pin (SCK) |
|
| 79 | - #define I2S_WS_PIN 25 // Word select pin (WS/LRCLK) |
|
| 80 | - #define I2S_DATA_PIN 22 // Serial data pin (SD) |
|
| 81 | - |
|
| 82 | - #define BUFFER_SIZE 1024 // Buffer size for audio data |
|
| 83 | - |
|
| 84 | - void setup() { |
|
| 85 | - Serial.begin(115200); |
|
| 86 | - |
|
| 87 | - // Configure I2S |
|
| 88 | - i2s_config_t i2s_config = { |
|
| 89 | - .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX), // Master receive mode |
|
| 90 | - .sample_rate = SAMPLE_RATE, |
|
| 91 | - .bits_per_sample = I2S_BITS_PER_SAMPLE_32BIT, // 32-bit data |
|
| 92 | - .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, // Stereo format |
|
| 93 | - .communication_format = I2S_COMM_FORMAT_I2S, |
|
| 94 | - .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, // Interrupt level 1 |
|
| 95 | - .dma_buf_count = 4, // Number of DMA buffers |
|
| 96 | - .dma_buf_len = BUFFER_SIZE // DMA buffer size |
|
| 97 | - }; |
|
| 98 | - |
|
| 99 | - // Configure I2S pins |
|
| 100 | - i2s_pin_config_t pin_config = { |
|
| 101 | - .bck_io_num = I2S_BCK_PIN, |
|
| 102 | - .ws_io_num = I2S_WS_PIN, |
|
| 103 | - .data_out_num = I2S_PIN_NO_CHANGE, |
|
| 104 | - .data_in_num = I2S_DATA_PIN |
|
| 105 | - }; |
|
| 106 | - |
|
| 107 | - // Install and start I2S |
|
| 108 | - i2s_driver_install(I2S_NUM, &i2s_config, 0, NULL); |
|
| 109 | - i2s_set_pin(I2S_NUM, &pin_config); |
|
| 110 | - i2s_zero_dma_buffer(I2S_NUM); |
|
| 111 | - |
|
| 112 | - Serial.println("I2S initialized!"); |
|
| 113 | - } |
|
| 114 | - |
|
| 115 | - void loop() { |
|
| 116 | - int32_t i2s_buffer[BUFFER_SIZE]; // Buffer for interleaved audio data |
|
| 117 | - size_t bytes_read; |
|
| 118 | - |
|
| 119 | - // Read data from I2S |
|
| 120 | - i2s_read(I2S_NUM, i2s_buffer, sizeof(i2s_buffer), &bytes_read, portMAX_DELAY); |
|
| 121 | - |
|
| 122 | - // Process interleaved data |
|
| 123 | - size_t samples_read = bytes_read / sizeof(int32_t); |
|
| 124 | - for (size_t i = 0; i < samples_read; i += 2) { |
|
| 125 | - int32_t left_channel = i2s_buffer[i]; // Left channel (Microphone 1) |
|
| 126 | - int32_t right_channel = i2s_buffer[i+1]; // Right channel (Microphone 2) |
|
| 127 | - |
|
| 128 | - // Print the audio data for debugging |
|
| 129 | - Serial.print("Left: "); |
|
| 130 | - Serial.print(left_channel); |
|
| 131 | - Serial.print(" | Right: "); |
|
| 132 | - Serial.println(right_channel); |
|
| 133 | - } |
|
| 134 | - } |
|
| 135 | - |
|
| 136 | - |
|
| 137 | -## Other Pick |
|
| 138 | - |
|
| 139 | -LMD2718T261-OA1 |
|
| 140 | - |
|
| 141 | - |
|
| 142 | -## Types |
|
| 143 | - |
|
| 144 | -5P |
|
| 145 | - |
|
| 146 | -ICS-43434 - 5P |
|
| 147 | - |
|
| 148 | -8P |
|
| 149 | - |
|
| 150 | -WMM7040DTHN0-8/TR = WMM7040DTHN0-8/TR |
|
| 151 | - |
|
| 152 | -LGA8 |
|
| 153 | - |
|
| 154 | - |
|
| 155 | - |
|
| 156 | -## ref |
|
| 157 | - |
|
| 158 | -- [[sensor-microphone-dat]] |
|
| 159 | - |
|
| 160 | -- [[I2S-dat]] - [[I2S-microphone]] - [[I2S]] |
|
| ... | ... | \ No newline at end of file |
Tech-dat/Sensor-dat/sensor-microphone-dat/Analog-microphone-dat/Analog-microphone-dat.md
| ... | ... | @@ -1,8 +0,0 @@ |
| 1 | - |
|
| 2 | -# Analog-microphone-dat |
|
| 3 | - |
|
| 4 | -- [[MAX9812-dat]] |
|
| 5 | - |
|
| 6 | -- [[Electret-Condenser-Microphone-dat]] |
|
| 7 | - |
|
| 8 | -- [[audio-dat]] |
|
| ... | ... | \ No newline at end of file |
Tech-dat/Sensor-dat/sensor-microphone-dat/microphone-Analog-dat/2026-03-02-16-45-11.png
| ... | ... | Binary files /dev/null and b/Tech-dat/Sensor-dat/sensor-microphone-dat/microphone-Analog-dat/2026-03-02-16-45-11.png differ |
Tech-dat/Sensor-dat/sensor-microphone-dat/microphone-Analog-dat/microphone-Analog-dat.md
| ... | ... | @@ -0,0 +1,27 @@ |
| 1 | + |
|
| 2 | +# microphone-Analog-dat |
|
| 3 | + |
|
| 4 | +- [[MAX9812-dat]] |
|
| 5 | + |
|
| 6 | +- [[Electret-Condenser-Microphone-dat]] |
|
| 7 | + |
|
| 8 | +- [[audio-dat]] |
|
| 9 | + |
|
| 10 | + |
|
| 11 | + |
|
| 12 | + |
|
| 13 | +## analog |
|
| 14 | + |
|
| 15 | +ZTS6216 - Ultralow Noise Microphone with Top Port and Analog Output |
|
| 16 | + |
|
| 17 | + |
|
| 18 | + |
|
| 19 | + |
|
| 20 | +## ref |
|
| 21 | + |
|
| 22 | +- [[sensor-microphone-dat]] |
|
| 23 | + |
|
| 24 | + |
|
| 25 | + |
|
| 26 | + |
|
| 27 | + |
Tech-dat/Sensor-dat/sensor-microphone-dat/sensor-microphone-I2S-dat/2025-01-06-14-07-17.png
| ... | ... | Binary files /dev/null and b/Tech-dat/Sensor-dat/sensor-microphone-dat/sensor-microphone-I2S-dat/2025-01-06-14-07-17.png differ |
Tech-dat/Sensor-dat/sensor-microphone-dat/sensor-microphone-I2S-dat/2026-02-10-17-43-37.png
| ... | ... | Binary files /dev/null and b/Tech-dat/Sensor-dat/sensor-microphone-dat/sensor-microphone-I2S-dat/2026-02-10-17-43-37.png differ |
Tech-dat/Sensor-dat/sensor-microphone-dat/sensor-microphone-I2S-dat/2026-02-10-17-44-36.png
| ... | ... | Binary files /dev/null and b/Tech-dat/Sensor-dat/sensor-microphone-dat/sensor-microphone-I2S-dat/2026-02-10-17-44-36.png differ |
Tech-dat/Sensor-dat/sensor-microphone-dat/sensor-microphone-I2S-dat/sensor-microphone-I2S-dat.md
| ... | ... | @@ -0,0 +1,165 @@ |
| 1 | + |
|
| 2 | +# sensor-microphone-I2S-dat |
|
| 3 | + |
|
| 4 | + |
|
| 5 | + |
|
| 6 | +- [[sensor-microphone-I2S-dat]] - [[sensor-mems-dat]] |
|
| 7 | + |
|
| 8 | +- [[buzzer-mems-dat]] |
|
| 9 | + |
|
| 10 | +- [[ADMP404-dat]] - [[analog-device-dat]] |
|
| 11 | + |
|
| 12 | + |
|
| 13 | +I2S Output Digital Microphone - [[INMP441-dat]] |
|
| 14 | + |
|
| 15 | +- [[mems-dat]] - [[zilltek-dat]] |
|
| 16 | + |
|
| 17 | +- [[MSM261S4030H0R-dat]] |
|
| 18 | + |
|
| 19 | + |
|
| 20 | +- [[ICS-43432-dat]] - [[ICS-43434-dat]] |
|
| 21 | + |
|
| 22 | +- [[SPH0645-dat]] |
|
| 23 | + |
|
| 24 | + |
|
| 25 | + |
|
| 26 | + |
|
| 27 | + |
|
| 28 | +- [[INMP441-dat]] |
|
| 29 | + |
|
| 30 | + |
|
| 31 | + |
|
| 32 | + |
|
| 33 | +- [[MP34DT06JTR-dat]] - [[sensor-microphone-dat]] - [[st-sensor-dat]] - [[I2S-microphone]] |
|
| 34 | + |
|
| 35 | +MEMS audio sensor omnidirectional digital microphone |
|
| 36 | + |
|
| 37 | +https://www.st.com/resource/en/datasheet/mp34dt06j.pdf |
|
| 38 | + |
|
| 39 | + |
|
| 40 | + |
|
| 41 | + |
|
| 42 | + |
|
| 43 | + |
|
| 44 | + |
|
| 45 | +## Common pins |
|
| 46 | + |
|
| 47 | + |
|
| 48 | +| model | L/R | WS | SD | SCK | |
|
| 49 | +| ---------------------- | ---------- | ---------------- | ---- | ----- | |
|
| 50 | +| explain | left/right | data-word select | DATA | clock | |
|
| 51 | +| [[INMP441-dat]] | yes | yes | yes | yes | |
|
| 52 | +| [[ICS-43434-dat]] | yes | yes | yes | yes | |
|
| 53 | +| [[MSM261S4030H0R-dat]] | yes | yes | yes | yes | |
|
| 54 | +| [[SPH0645-dat]] | yes | yes | yes | yes | |
|
| 55 | + |
|
| 56 | + |
|
| 57 | +## wiring reference |
|
| 58 | + |
|
| 59 | +| Signal | Connection | |
|
| 60 | +| ------ | ----------------------------------------------- | |
|
| 61 | +| SEL | unconnected (only one channel, apparently left) | |
|
| 62 | +| LRCL | #15 | |
|
| 63 | +| DOUT | #32 | |
|
| 64 | +| BCKL | #14 | |
|
| 65 | +| GND | GND | |
|
| 66 | +| 3V | 3V | |
|
| 67 | + |
|
| 68 | + |
|
| 69 | +## go advance |
|
| 70 | + |
|
| 71 | +- simultaneous data = microphones with **TDM (Time-Division Multiplexing)** |
|
| 72 | + |
|
| 73 | + |
|
| 74 | + |
|
| 75 | + |
|
| 76 | +## demo code for interleaved data |
|
| 77 | + |
|
| 78 | + #include <driver/i2s.h> |
|
| 79 | + |
|
| 80 | + // I2S configuration |
|
| 81 | + #define I2S_NUM I2S_NUM_0 // I2S port number |
|
| 82 | + #define SAMPLE_RATE 16000 // Sampling rate in Hz |
|
| 83 | + #define I2S_BCK_PIN 26 // Bit clock pin (SCK) |
|
| 84 | + #define I2S_WS_PIN 25 // Word select pin (WS/LRCLK) |
|
| 85 | + #define I2S_DATA_PIN 22 // Serial data pin (SD) |
|
| 86 | + |
|
| 87 | + #define BUFFER_SIZE 1024 // Buffer size for audio data |
|
| 88 | + |
|
| 89 | + void setup() { |
|
| 90 | + Serial.begin(115200); |
|
| 91 | + |
|
| 92 | + // Configure I2S |
|
| 93 | + i2s_config_t i2s_config = { |
|
| 94 | + .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX), // Master receive mode |
|
| 95 | + .sample_rate = SAMPLE_RATE, |
|
| 96 | + .bits_per_sample = I2S_BITS_PER_SAMPLE_32BIT, // 32-bit data |
|
| 97 | + .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, // Stereo format |
|
| 98 | + .communication_format = I2S_COMM_FORMAT_I2S, |
|
| 99 | + .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, // Interrupt level 1 |
|
| 100 | + .dma_buf_count = 4, // Number of DMA buffers |
|
| 101 | + .dma_buf_len = BUFFER_SIZE // DMA buffer size |
|
| 102 | + }; |
|
| 103 | + |
|
| 104 | + // Configure I2S pins |
|
| 105 | + i2s_pin_config_t pin_config = { |
|
| 106 | + .bck_io_num = I2S_BCK_PIN, |
|
| 107 | + .ws_io_num = I2S_WS_PIN, |
|
| 108 | + .data_out_num = I2S_PIN_NO_CHANGE, |
|
| 109 | + .data_in_num = I2S_DATA_PIN |
|
| 110 | + }; |
|
| 111 | + |
|
| 112 | + // Install and start I2S |
|
| 113 | + i2s_driver_install(I2S_NUM, &i2s_config, 0, NULL); |
|
| 114 | + i2s_set_pin(I2S_NUM, &pin_config); |
|
| 115 | + i2s_zero_dma_buffer(I2S_NUM); |
|
| 116 | + |
|
| 117 | + Serial.println("I2S initialized!"); |
|
| 118 | + } |
|
| 119 | + |
|
| 120 | + void loop() { |
|
| 121 | + int32_t i2s_buffer[BUFFER_SIZE]; // Buffer for interleaved audio data |
|
| 122 | + size_t bytes_read; |
|
| 123 | + |
|
| 124 | + // Read data from I2S |
|
| 125 | + i2s_read(I2S_NUM, i2s_buffer, sizeof(i2s_buffer), &bytes_read, portMAX_DELAY); |
|
| 126 | + |
|
| 127 | + // Process interleaved data |
|
| 128 | + size_t samples_read = bytes_read / sizeof(int32_t); |
|
| 129 | + for (size_t i = 0; i < samples_read; i += 2) { |
|
| 130 | + int32_t left_channel = i2s_buffer[i]; // Left channel (Microphone 1) |
|
| 131 | + int32_t right_channel = i2s_buffer[i+1]; // Right channel (Microphone 2) |
|
| 132 | + |
|
| 133 | + // Print the audio data for debugging |
|
| 134 | + Serial.print("Left: "); |
|
| 135 | + Serial.print(left_channel); |
|
| 136 | + Serial.print(" | Right: "); |
|
| 137 | + Serial.println(right_channel); |
|
| 138 | + } |
|
| 139 | + } |
|
| 140 | + |
|
| 141 | + |
|
| 142 | +## Other Pick |
|
| 143 | + |
|
| 144 | +LMD2718T261-OA1 |
|
| 145 | + |
|
| 146 | + |
|
| 147 | +## Types |
|
| 148 | + |
|
| 149 | +5P |
|
| 150 | + |
|
| 151 | +ICS-43434 - 5P |
|
| 152 | + |
|
| 153 | +8P |
|
| 154 | + |
|
| 155 | +WMM7040DTHN0-8/TR = WMM7040DTHN0-8/TR |
|
| 156 | + |
|
| 157 | +LGA8 |
|
| 158 | + |
|
| 159 | + |
|
| 160 | + |
|
| 161 | +## ref |
|
| 162 | + |
|
| 163 | +- [[sensor-microphone-dat]] |
|
| 164 | + |
|
| 165 | +- [[I2S-dat]] - [[I2S-microphone]] - [[I2S]] |
|
| ... | ... | \ No newline at end of file |
Tech-dat/Sensor-dat/sensor-microphone-dat/sensor-microphone-dat.md
| ... | ... | @@ -1,21 +1,18 @@ |
| 1 | 1 | |
| 2 | -# microphone-sensor-dat |
|
| 2 | +# sensor-microphone-dat |
|
| 3 | 3 | |
| 4 | +- [[sensor-microphone-I2S-dat]] - [[microphone-Analog-dat]] |
|
| 4 | 5 | |
| 6 | +- [[microphone-Analog-dat]] - [[Electret-Condenser-Microphone-dat]] |
|
| 5 | 7 | |
| 6 | -## boards |
|
| 7 | - |
|
| 8 | -- [[SSL1032-dat]] |
|
| 9 | - |
|
| 8 | +- [[sensor-microphone-I2S]] |
|
| 10 | 9 | |
| 11 | 10 | |
| 12 | 11 | |
| 12 | +## boards |
|
| 13 | 13 | |
| 14 | -## types |
|
| 15 | - |
|
| 16 | -- [[I2S-microphone-dat]] |
|
| 14 | +- [[SSL1032-dat]] |
|
| 17 | 15 | |
| 18 | -- [[Analog-microphone-dat]] - [[Electret-Condenser-Microphone-dat]] |
|
| 19 | 16 | |
| 20 | 17 | | Feature | Electret Condenser Microphone (ECM) | MAX9812 | ICS-41434 | |
| 21 | 18 | | ----------------- | --------------------------------------------- | ---------------------------------------- | ------------------------------------------- | |
Tech-dat/peripherals-dat/peripherals-dat.md
| ... | ... | @@ -2,6 +2,15 @@ |
| 2 | 2 | # peripherals-dat |
| 3 | 3 | |
| 4 | 4 | |
| 5 | + |
|
| 6 | + |
|
| 7 | +## AI relevant |
|
| 8 | + |
|
| 9 | +- [[camera-dat]] - [[sensor-microphone-dat]] |
|
| 10 | + |
|
| 11 | +## basic |
|
| 12 | + |
|
| 13 | + |
|
| 5 | 14 | - [[protection-dat]] - [[protection-power-dat]] |
| 6 | 15 | |
| 7 | 16 |