ΣSigmaStudio Ask AI Русский Log in

ADAU1442 I/O channel truncation

SigmaDSP & SigmaStudio pwatts Mar 9, 2015 00:00 1 replies Original on forum ↗
Subscribe
pwatts Question
Mar 9, 2015 00:00

Hi, we have an application where we need to interface 11x I2S lines and 1x TDM8 to the DSP (in and out). However, the TDM8 stream only contains two channels in its first 2 slots. Its other 6 slots are empty; it's just an external requirement that the framing and clocking of that interface be TDM8.

In other words, we still use 24ch in and out inside the DSP, but the physical hardware interface is 30ch.

We did some experiments, and it seems the channels >24 just appear to get truncated/ignored (which is what we want), but some confirmation that it is a safe procedure without risk would be appreciated.

Best Regards,

Pierre

Audio Signal Processors

adau1442

SigmaDSP Audio Processors

JohnTo Reply
Mar 9, 2015 00:00

Hello Pierre,

Your assumption is correct, all external channels after 24 are ignored by the ADAU1442, and it will only send up to 24 channels out even if all serial ports are enabled.

However, on the the ADAU1442 we have 9 input ports and 9 output ports, up to 24 channels, even though any of the serial ports can do up to 16 channels. The channel numbers are automatically assigned sequentially starting with serial port 0 on the input and output sides separately. It is based on how many channels you configure each serial port to have, in order.

In your case you have the following:

Serial I/O Ports # channels SigmaDSP/SigmaStudio Core Channels

0 2 0,1

1 2 2,3

2 2 4,5

3 2 6,7

4 2 8,9

5 2 10,11

6 2 12, 13

7 2 14, 15

8 8 16, 17 (unused active channels > 18, 19, 20, 21, 22, 23)

But I think you can only have up to 8 I2S inputs/outputs in addition to the TDM8 on the last channel. Your requirement for 11 x I2S lines and 30 total channels with TDM8 included will require multiple ADAU1442s?

For example, let's consider another example:

Serial I/O Ports # channels SigmaDSP/SigmaStudio Core Channels

0 TDM2 0,1

1 TDM4 2,3,4,5

2 TDM16 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21

3 TDM4 22, 23 (24, 25.. do not exist and are ignored)

4 8 (ignored)

5 4 (ignored)

6 2 (ignored)

7 2 (ignored)

8 2 (ignored)

Say you wanted TDM4 on serial port 3, well the upper 2 channels on that serial port would never make it to the core. The end of the line is up to 24 inputs. So even if you put data on the top channels, nothing will ever get to the core. Anything above serial port 3, is not accessible, even if you have those serial ports available for use in your system. It is first come first serve, sequentially.

And you are unable to set any of the lower serial port channels to "zero" channels if they are not used, they will consume at least 2 channels even if they are disabled.

For example, say we wanted to use TDM16 on serial port 5 we can't. We only have 14 channels left since serial ports 0 to 4 have consumed 10 channels in the assignment mapping.

Confusing, but hope this helps!

-JT