Post Go back to editing

ADAU144x and ADAU1962 TDM8 serial output configuration.

Hello, I'm having troubles setting the serial ports to TDM8, I've previously worked with 2 channel DACs and SigmaDSP but this has me stumped.

ADAU1962 is master in standalone mode, TDM8 pulse.

ADAU1446 is slave. I'm using clock domain 3.

ADAU1446 serial out 3 outputs to DSDATA1 on ADAU1962.

ADAU1446 serial out 0 outputs to DSDATA2 on ADAU1962.

I am able to get a signal from the DSP to DAC outputs by setting TDM type to TDM2(stereo), this is obviously incorrect but at least suggests the hardware is working.

I feel like I've tried every configuration under the sun but as a starting point, here are my current settings. Any help appreciated. Thanks.

  • Hello Alex,

    The serial ports and clocking on this part are very flexible but can be confusing. There are a few things that can easily be missed.

    There are some strange things it does in assigning the serial port numbers in the hardware. Even if it is not assigned, it still takes up two slots. This is detailed on page 51 in the datasheet about the Automatic Output Channel Assignment. Well, it looks like you have read that section because it looks like you are sending data out to the correct channels in SigmaStudio.

    Have you set the clock pad multiplexer properly? That is assigned clock domain 3 to the output ports? I see you have selected clock domain 3 for the serial ports. You might want to try swapping the output pair assignments. You can rearrange the output signals in SigmaStudio. Since some of these channel assignments are sequential, this may be the issue.

    By the way, I usually use an oscillator inside the DSP to send a signal to the serial ports as a test. This way you can send a known full scale signal and make certain the data is being properly transmitted. Then introduce the serial input port complication once the outputs are know good.

    If you cannot find the issue after these few things I just detailed, then attach your project so I can look at more registers. This is a complicated part.

    You will have to zip the file to be able to attach it onto a forum post.

      Dave T

  • Hello Dave,

    Still no luck so file attached, many thanks.

    outputtesting.zip

  • Hello Alex,

    I took a quick look. You have the core start pulse set to serial input domain 8. Is there something on those clock domain pins? It looks like your setup is correct but if there is no clock there then the program will not start executing. I will look further when I get a moment.

    Dave T

  • One of the inputs is on serial input domain 8 and the signal meter confirms input is functioning.

    I don't remember why originally I set the core start pulse that way as opposed to internally generated. Probably couldn't see a difference in result either way and figured that option was there for a reason. Is one way 'better' than the other?

  • With serial ouputs 0 and 3 set to TDM8, with my scope I can see data on output 0 but nothing on output 3. If I change output 0 to TDM2 I am able to see data on output 3 aswell as 0. It seems I can't set 2 ports to TDM8? I can't see anything in the data sheet that disallows this, guidance please?

  • Hello Alex,

    This is where there is confusion that can easily happen.

    There are 12 physical serial port clock domains with 24 pins associated with them. BCLK and LRCLK for each domain.

    Three clock domains are always assigned to the serial input ports, three are always assigned to serial output ports and the remaining 8 can be assigned to either serial inputs or output ports.

    Keep in mind that when I say serial input or output ports I mean the serial data. The clocks pins of each domain can be a master or slave so they are all bi-directional.

    So clock domains 0-3 are always assigned to serial input ports.

    Domains 9-11 are assigned to output ports.

    Domains 3-8 are assignable using the clock pad register.

    The graphics in the SigmaStudio hardware register section is where it causes confusion.

    On the input side they are labeled 0-8 which is fine.

    On the output side they are labeled 0-8 and that is where it is confusing. 3-8 is for clock domains 3-8 but 0-3 are for clock domains 9-11. If you use the pulldown selection for the master or the clock domain you will see that the first three options are 9,10,11. Then it goes to 3,4,...,8

    So you need to look at clock pins for domains 9 and 11. There you will find the clocks for serial output ports 0-3.

    If you can find your way through this then you can probably navigate the streets of Boston.... Well, maybe not. Boston streets defy all logic!

    Dave T 

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.