The host processor I'm planning to use has only two I2S interfaces, however I need to connect 6 devices to it. Is it possible? If so, how?



Sorry, folks, I indeed should have provided more information. The devices in question are microphones - which normally have I2S and/or PDM interfaces. For the sake of this discussion, lets say ICS-43432 (https://invensense.tdk.com/wp-content/uploads/2015/02/ICS-43432_DS.pdf) which needs to be connected to say QCOM CSR8675.

The problem is that CSR8675 has only two I2S interfaces, but I need to connect four mics.

Thanks for the patience!

  • \$\begingroup\$ Why don't you describe which way would data flow, what processor it is and what devices you must connect to it? Preferably put links to the datasheets so you'll have better chance of someone actually opening the datasheets and reading it. \$\endgroup\$ – Justme May 3 '20 at 15:07
  • 2
    \$\begingroup\$ There is indeed a lot missing here. Assuming you do mean I2S and not I2C, you'd need to specify if the devices are sources or sinks and who will provide the clocks. And then if you want to operate them all at once (in which case you'd need some scheme to interleave data or more commonly distinct data pins) or have some sort of selection scheme to operate them at different times. \$\endgroup\$ – Chris Stratton May 3 '20 at 15:09
  • \$\begingroup\$ You are right! I tried to elaborate. And yes, it is I2S, not I2C. \$\endgroup\$ – Demiurg May 4 '20 at 11:10
  • \$\begingroup\$ You said 6 devices but that got later reduced to four mics. I did not see that before I wrote my answer how to connect four mics. What the other two devices are? \$\endgroup\$ – Justme May 4 '20 at 11:26
  • \$\begingroup\$ At this stage it really doesn't matter - 4,6, or 128. I'm really only trying to figure out if there is a way to connect to a chip similar to QCOM CSR8675 which has only two I2S interfaces more than two mics. \$\endgroup\$ – Demiurg May 4 '20 at 11:28

As the microphones are clock slaves and can be configured to be either left or right channel on a standard stereo I2S bus, you can connect two microphones to one I2S input peripheral that is the clock master.

Which means four mics can be connected to two I2S interfaces, as long as both have I2S data inputs. Both I2S peripherals can be clock masters, but if you want clocks to be in sync, one of them can be clock master and other can be clock slave.

  • \$\begingroup\$ Thank you, this is VERY helpful! Just one follow up question - if I need to connect more mics, what are my options? None :)? \$\endgroup\$ – Demiurg May 4 '20 at 11:36
  • \$\begingroup\$ If simultaneously, and same mics, then you need another device with more I2S interfaces, because only two mics can be connected to a standard I2S interface with one data input pin, and you have two I2S interfaces. \$\endgroup\$ – Justme May 4 '20 at 11:49

Yes, more than one device can be connected to I2S.

However I also question if you mean I2C. I2S is a digital audio protocol. Using 6 devices implies you're doing a professional audio design, which would imply you also know what I2S is.

I2C is the much more common 'generic' protocol.

  • \$\begingroup\$ I would not be so sure that you can connect more than one device per I2S peripheral, because it obviously depends on which devices they are, to which direction they should transfer data, what host processor it is and who is the clock master. \$\endgroup\$ – Justme May 3 '20 at 18:56
  • \$\begingroup\$ Thanks! I updated the question - the devices in question are mics and it is I2S, not I2C. \$\endgroup\$ – Demiurg May 4 '20 at 11:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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