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

ADAU1446 Flexible TDM Configuration

SigmaDSP & SigmaStudio tompdx May 15, 2013 00:00 3 replies Original on forum ↗
Subscribe
tompdx Question
May 15, 2013 00:00

I am struggling to successfully configure an ADAU1446 for the following scenario

Serial Input 0 - Provide 48kHz master clock to external stereo codec with data format of 24 bit TDM2

Serial Input 1 - Provide 48kHz master clock to external stereo codec with data format of 24 bit TDM2

Serial Input 2 - Provide 48kHz master clock to external stereo codec with data format of 24 bit TDM2

Serial Input 3 - Provide 48kHz master clock to external stereo codec with data format of 24 bit TDM2

Serial Input 4 - Provide 48kHz master clock to external stereo codec with data format of 24 bit TDM2

Serial Input 5 - Slaved to external 8KHz device with a data format of 16 bit TDM5 (5 channels of audio) Linear PCM 8KHz with 8KHz positive pulse frame sync.

The outputs are the same.

I am confused about the TDM5. I am attempting to use Flexible TDM Mode for this.

Can anybody brain dump how they believe I would configure my ADAU1446 to be a master to 5 codecs and a slave to a sixth one with a non-standard TDM5 format?

I assume I handle the clock by setting Serial Input 5 to "Slave to Clock Domain 5". Is this correct?

Does the ADAU1446 consider my first four stereo serial inputs to be using slots 0-1,1-2,3-4, and 5-6, which would mean my TDM5 input would start at slot 7?

The Flex Modes Screens in SigmaStudio are confusing to me. They are defaulting every input and every output to TDM Slot 0. This makes me think I will need to map all of these slots, even the ones going to stereo codecs.

Bottom line, I don't have a good mental model of the relationship of the TDM Flex Modes. I've used the ADAU1446 before, but only with stereo codecs. I've used TDM4 on a ADAU1761, but it seemed straight forward compared to this.

Audio Signal Processors

slot

adau1446

tdm_mode

SigmaDSP Audio Processors

adau1761

tdm

Show More

Natan Reply
May 16, 2013 00:00

You can only assign data to flexible mode to the first 2 input\output ports. There is an example usage on page 76-80 on the datasheet that should help with understanding how to set this up. The GUI is sort of messed up in showing the names of the settings for this routing so you might want to keep an eye on pages 84-86 to make sure you are setting the right registers for the data you need.

I am not sure if the flexible mode will work for you considering a packed stream of 5 channels at 2bytes for data each would use at total of 10 bytes of data per a frame. The flexible mode only operates with 32 bytes per a frame from the information I see.

ADIApproved Reply
May 21, 2013 00:00

Hi Tom,

I'm not sure how the serial ports will behave when you've connected them to a non-standard TDM5 source. It might be easier to try setting the serial port in question to TDM8 mode and using a pulse clock. You could then see if you can correctly input TDM5 to the serial port. In my understanding, when the serial port is in pulse mode, the pulse defines the beginning of the frame and then it begins a counter to clock in data using the bit clock as a reference. It will always look for 32 BCLK periods for each data channel. Does your TDM5 source have any padding bits, or is it simply 5*16=80 BCLK cycles per frame? If there are no padding bits, this probably won't work.

You could probably use flexible TDM mode to handle a 16-bit TDM5 stream, but since I have no way of generating a TDM5 signal in the lab, I'm not sure that I can set this up for you - I can always support you on the forum, though.

You would want to feed the TDM5 stream to serial input SDATA_IN0.

Based on your description of the signal and the register description on page 77, I would set the registers like this:

E180 Flexible TDM to Input Channel 0 0b0000000001000000

E181 Flexible TDM to Input Channel 1 0b0000000001000010

E182 Flexible TDM to Input Channel 2 0b0000000001000100

E183 Flexible TDM to Input Channel 3 0b0000000001000110

E184 Flexible TDM to Input Channel 4 0b0000000001001000

That basically sets up channel 0 to be the first 2 bytes in the stream (slots 0-1), channel 1 to be the second 2 bytes in the stream (slots 2-3), channel 2 to be the third 2 bytes in the stream (slots 4-5), channel 3 to be the fourth 2 bytes in the stream (slots 6-7), and channel 4 to be the fifth 2 bytes in the stream (slots 8-9).

I'm not sure if this will work, since I don't have the ability to generate a TDM5 source.

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin