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

ADAU1446 Flexible TDM Conflicting with other inputs

SigmaDSP & SigmaStudio tompdx Oct 11, 2013 00:00 2 replies Original on forum ↗
Subscribe
tompdx Question
Oct 11, 2013 00:00

I am using an ADAU1446.

Summary: I am unable to get inputs simultaneously from a flexible TDM channel and a collection of TDM2 channels. All outputs on both types of channels work, but inputs seem to be mutually exclusive.

My ADAU1446 is set up as follows

Serial Channel 0 - Flexible TDM 5 channels at 16 bits each

Serial Channel 1 - Unused

Serial Channel 2 - TDM2

Serial Channel 3 - TDM2

Serial Channel 4 - TDM2

Serial Channel 5 - TDM2

I have two behaviors I can create, only by changing a single register, Serial Input 0 "Word Length", between "Flexible TDM Mode", and "16 bits", (see attached picture below).

Scenario A - Serial Input 0 is set to Flexible TDM Mode.

My Flexible TDM Inputs Work

TDM2 Inputs do not work

Both Flex Outputs and TDM2 outputs all work

Scenario B - Serial Input 0 is set to 16 bits.

My Flexible TDM Inputs do not Work

Now my TDM2 Inputs Work

Both Flex Outputs and TDM2 outputs all work

I would not expect Scenario B to work, since I need to set my flexible TDM channel to actually use Flexible TDM. However what it does do is prove that my TDM2 CODECs, and Analog Path are all set correctly, since they work just fine if I set it this way.

I am puzzled why Scenario A does not work. Why does anything I do on Serial Input 0, have any effect on the other Serial Inputs?

I have attached the project file to this as well. As you can see, I am mixing every input and sending it to every output, so that we don't get confused by inputs and outputs shuffling around. (download attached project file below)

Do I need to go to an ADAU1445 or ADAU1442? What am I missing?

Audio Signal Processors

adau1446

adau1442

adau1445

SigmaDSP Audio Processors

SimonBroadley Reply
Oct 28, 2013 00:00

Next question is can the ADAU144x use the first 2 serial channels for Flex TDM while using the other channels for other I2S communications? Is this an either/or limitation not called out in the datasheet?

Scenario would be to use two ADAU144x each using Serial Channel 0 & 1 for Flex TDM at 8 channels each to 4 external Flex TDM devices. An additional 8 channels distributed to interconnection between the 2 DSP's and some other I2S codecs. At/Under the 24 max channels. But is this possible?

Seems like there is a bug in the Flex TDM limiting to either Flex or no Flex.

ADIApproved Reply
Nov 4, 2013 00:00

Hello,

Sorry for the late response. I must have missed this question when you originally posted it.

The datasheet is regrettably a bit vague when it comes to the description of the flexible TDM modes, but effectively, using the serial input ports SDATA_IN0 and/or SDATA_IN1 in flexible TDM mode will override all other serial input ports and reserve all 24 input channels for flex TDM use. In other words, by enabling flexible TDM mode, all 24 input channels are utilized, leaving none leftover. The reason for this is that none of the flexible TDM input configuration registers allow you to set a channel as "not used."

This is not true on the output side. The flexible TDM output ports can take data from any of the 24 output channels. However, any of the other serial output ports can also utilize those output channels if desired (using the flexible audio routing matrix and its output routing control registers.

So, tompdx's results match with the expected behavior of the device. I can see that the datasheet could use some improvements in explaining this functionality more clearly.