1

Does I2S support sending multiple mic (around 20) channel data? If no, what is the limiting factor in supporting multiple mics?

Also, is there any way to send multiple channel data from different MICs in any other format other than TDM, if TDM on I2S doesn't allow more than certain number of channels?

It is a generic question and any hardware can be sited as an example. All I am after is that given any hardware what limits the maximum mic supported?

Mic stands for microphone.

user3053970
  • 21
  • 1
  • 4

3 Answers3

1

I2S as such is limited to two channels, but there are various extensions.

For example there are variations on the theme of TDM, often used with DSP parts and usually good for 16 channels or so on an interface that electrically looks like I2S, support for these formats is common on DSP chips and the better sorts of ADC and DAC parts, but somewhat rare in the microprocessor world.

It is of course possible to share LRClk and BClk and just run multiple parallel data lines, and this is very common.

Usually these links are within a board or at most within a chassis, the clue being in the 'Inter IC Sound' name, for larger scale links, something self clocking is usually better, MADI/AES67/Custom SERDES, there are a whole world of choices.

Dan Mills
  • 17,266
  • 1
  • 20
  • 38
0

I2S is defined for two channels, the word select line (oft called LRCLK) is used to determine which channel the current data belongs to.

The best way to achieve it would depend on the hardware you have, so this isn't really answerable.

Colin
  • 4,499
  • 2
  • 19
  • 33
  • I think i was not clear, so modified the question. – user3053970 Jul 04 '18 at 08:09
  • 1
    Where are you sending the mic data from and to? Say you have an array of ADCs each connected via I2S to an FPGA a SERDES to another FPGA and an array of DACs connected via I2S, with large enough FPGAs your channel limit is defined by the bandwith available in the SERDES. You could probably manage a few thousand without too much trouble. – Colin Jul 04 '18 at 08:18
  • DSP connected with multiple MICs and this DSP connected over I2S to arm SoC. In this case can we do TDM over I2S for 30 channels? – user3053970 Jul 04 '18 at 10:15
0

I2S is sometimes used to carry multiple channels, particularly between ADC/DAC and CODEC devices. The standard is for two channels, as mentioned by colin in his answer, however you can send multiple datastreams with extra lines.

For example the Cirrus Logic CS42448 (datasheet) CODEC uses a single bit clock (SCLK) and LR select (LRCLK), and multiple data lines (SDIN/SDOUT). Each data line carries 2 channels, and their assignment (left, right, front, back etc) is entirely arbitrary. So yes, I2S can carry multiple channels (sort of abuse of the standard though).

However, would you want to use I2S to carry 30 channels? If its between audio processing ICs on the same board, maybe. More depends on what the devices expect (I2S, TDM, PCM etc).

If you are carry these audio signals along cables, then almost certainly I2S would be a mistake. It isn't designed for distances, and you'll have issues with signal integrity and phasing between clock and data lines.

Oliver
  • 1,663
  • 1
  • 13
  • 23
  • Can you clarify if TDM is used then can we do TDM for 30 channel from different mics on a I2S bus? – user3053970 Jul 04 '18 at 10:13
  • @user3053970 It depends what its used for. What is at each end, and what are you sending it over (PCB, cables etc)? – Oliver Jul 04 '18 at 10:35
  • Basically ARM SoC connected over I2S with the DSP. – user3053970 Jul 05 '18 at 22:48
  • @user3053970 Then yes. Yes you can. Though I imagine the difficulty will be the fact you almost certainly wont have enough I2S or SPI ports on the ARM SoC. – Oliver Jul 06 '18 at 07:21