0
\$\begingroup\$

I'm currently working on a graduation project where I am tasked with building an embedded system using an ESP32-S3 and four MEMS microphones capable of detecting ultrasonic waves. The goal is to understand the sound specifications of an industrial machine. The specific microphone model I am using is the SPH0641LU4H-1. You can find the datasheet here (https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/930/SPH0641LU4H-1.PDF).

In the ESP32 documentation, particularly in the ESP-IDF programming guide, I've learned that the ESP32 has two built-in I2S (Inter-IC Sound) interfaces, namely I2S0 and I2S1. However, I noticed that while I2S0 can support up to 8 multiple sound sources in mono mode, I couldn't find clear information on how the microcontroller distinguishes between these data sources. Unlike I2C, the I2S bus frame doesn't have a specific addressing mechanism.

\$\endgroup\$

1 Answer 1

0
\$\begingroup\$

I2S bus does have an addressing mechanism. Otherwise it could not know the difference which sample is left or right, or even which bits belong to which sample.

That sync signal can have multiple names but it is called WS in ESP32 MCUs.

And there are multiple methods how to transfer 8 PCM channels on I2S. The ESP32 supports 8 channels as four data wires sending 2 I2S channels each, or in TDM mode with up to 16 channels on single data wire.

But the mic sends PDM bits, not multi-bit PCM samples. There can be only two mics per data wire, and the correct clock to use for the mics is WS because also the ESP32 has to be in PDM input mode. So the bit clock is not needed.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ Exactly, that was the missing information I needed. Honestly, I had confused between PCM and PDM modes until I made my coffee and reread the docs. Thanks a lot for your answer. \$\endgroup\$
    – jabel
    Commented Jan 25 at 11:20

Not the answer you're looking for? Browse other questions tagged or ask your own question.