I2S and Multi channel audio

I think I’ll be needing few experienced help here It is more an intellectual personal challenge than a real project, but I try to fill the gap between evaluation boards like RPi and OrangePi and Full Digital amps like those developped by TI and ST, in the context of multi amplified speakers (with Crossover function in soft DSP).

I2S is the common input for the FDA chips. My understanding is that I2S can only address 2 audio channels, and this is a roadblock on my way.

How to control several I2S inputs from one single board (RPi or other) ?

I have not seen additional modules to add more I2S connections.

I have not seen ways to multiplex more than 2 channels on one I2S...

With USB, it often looks like RPi USB => USB decoder=>SPDIF=>I2S (and only 2 channels...): lot of transformations, risks of time mismatch, lots of cables for 8 channels (ex of 2 x 4 ways speakers)...

I'm surprised as many applications are now 7.1. HDMI has 8 channels...

Do I work with wrong assumptions?

Do I take the problem in the wrong way? Other ways to explore?
 
How to control several I2S inputs from one single board (RPi or other) ?
RPi (the Broadcom SoC) supports only 2 channels over I2S (even in the TDM mode). There are other SBCs with multichannel I2S (both multiple 2ch data lines and 8ch TDMs).
I have not seen additional modules to add more I2S connections.
That's not easy to do. There are at least two projects to split multichannel I2S lines from single multiple-rate stereo I2S of RPi. But it's a workaround.
With USB, it often looks like RPi USB => USB decoder=>SPDIF=>I2S (and only 2 channels...): lot of transformations, risks of time mismatch, lots of cables for 8 channels (ex of 2 x 4 ways speakers)...
Why so complex? A multichannel USB receiver outputs multichannel PCM (again either multiple data lines or TDM). No SPDIF (why?), no extra transformations. Works OK, no workarounds.

I'm surprised as many applications are now 7.1. HDMI has 8 channels...
Most SBCs with other SoCs than RPi support 8 channels. It's all about SW, as always.
 
  • Like
Reactions: 1 user
It is possible to transfer more than 2 channels in I2S bus using TDM (Time Division Multiplexing). This requires that your USB-I2S bridge and your DAC have TDM capability. TDM128 (SCK=128FS) enables 4-channels, TDM256 (SCK=256FS) 8-channels and TDM512 (SCK=512FS) 16-channels.
Bohrok, thank you for the info about the USBStreamer product.

That is exactly what I was looking for. It is unfortunate that the price is that high. It is incredible how things can be at unbelievable low prices when they are massively produced, and how prices can raise fast when it is more specific applications, like in that case.

A chip like the TMS320C5533 can do the job and cost $6 (for one).

However, I recognize that some engineering is required to have a full product easy to use.

I would be happy to find a cheaper design for my architecture, which means using more mainstream bricks.
 
RPi (the Broadcom SoC) supports only 2 channels over I2S (even in the TDM mode). There are other SBCs with multichannel I2S (both multiple 2ch data lines and 8ch TDMs).

That's not easy to do. There are at least two projects to split multichannel I2S lines from single multiple-rate stereo I2S of RPi. But it's a workaround.

Why so complex? A multichannel USB receiver outputs multichannel PCM (again either multiple data lines or TDM). No SPDIF (why?), no extra transformations. Works OK, no workarounds.


Most SBCs with other SoCs than RPi support 8 channels. It's all about SW, as always.
Phofman, The USB Audio Class 2 (UAC2) fills all the Santa Claus list, but there are no cheap products to implement it. So, as you propose, the option is to pull two USB cables and plug two 2706, to get 4 I2S outputs.
 
Are there any in particular you like the look of? In my search a few months back I didn't find any where the feature appeared easily accessible/documented (to my novice eyes).

Basically all Rockchip/AmLogic/i.MX/etc SBCs. But vast majority of them require deeper linux skills as their software support is nowhere close to RPi.

Most of SBCs have some tweaked debian typically with outdated kernel available. But once you hit the first problem not closely related to the hardware specifics (e.g. a USB-function driver issue) and will want to troubleshoot with the upstream kernel community, you will have to use the latest kernel build. That's where you will hit the wall with many vendors, or will have to apply some kernel fu to upgrade with others. Device manufacturers contract embedded-linux consultancies for this, very few DIY projects out there, for a good reason.
 
  • Like
Reactions: 1 user
Recently, I have been testing today the following 2.1 system with 3 usb devices:

HW: RPI2 with 1 PCM2702 based USB T-AMP to main speakers
1 PCM2902 based UCA202 usb card to Subwoofer
( both arranged as 4 channels virtual multi by.asoundrc)
1 CM6206 based 7.1 USB card for line input

SW: Brutefir 2ch->4ch 44100 / 16 with 32.768 taps filters.
 
Almost five years ago, I faced another type of Broadcom SoC's I2S audio interface that had a hardware bug in TDM mode. It was an unstable data start position in the TDM format output. But now I found news of HifiBerry released 8ch DAC hat for RPi-5. Maybe the new chipset has a bug-fixed design... (Not sure)

https://www.hifiberry.com/blog/more-than-just-stereo-the-dac8x/