This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TAC5212EVM-K: Strange offset required for DIN to allow CODEC to playback correctly

Part Number: TAC5212EVM-K
Other Parts Discussed in Thread: TAC5212

Tool/software:

Hi

I've been playing with the presets in PP3 with the TAC5212EVM-K development board.

The "Record AC-Couple Single-Ended IN1-IN2" preset allows me to record a stereo signal to my PC via Audacity.

The "Playback Single-Ended Mono LINEOUT OUT1-OUT2" preset allows the recording to be played from my PC out of the CODEC phono sockets.

This is great, but I noticed that the playback I2C settings includes "w a0 26 01", this basically tells the CODEC to expect DIN to be offset by 1 BCLK cycle compared to standard protocol definitions.

This can be seen in the GUI too:

If I remove this offset, the 800 Hz sine wave output distorts horribly:

Interestingly the TAx5x12EVM-K Evaluation Module User Guide (Jan 2024) has the same playback confguration listed on page 34 and it doesn't set register 0x26 meaning it is default and therefore no offset has been applied.

I cannot understand why the TDM interface to the AC-MB board would not be standard protocol.

I then connected my STM32 development board with standard I2S protocol settings and this too would only work if the offset was configured.

Can anyone shed any light on this please?

Many thanks

Graeme

  • Hi Graeme,

    This is an issue that we are aware of, due to the way the XMOS was programmed on the AC-MB board to support USB audio on our audio amplifiers. From my understanding, it isn't usually an issue for end use cases of the TAC5212 (or any other audio converter), and just affects the EVM when used as a USB audio source. Using I2S connected externally to the "External ASI" pins on the AC-MB or on the EVM board itself should not have this issue. I am going to do some testing in the lab this week to confirm specific scenarios where you would see the bit shift.

    Let me know if you need more help with the device, and I will respond here when I have some results to share.

    Best,
    Mir 

  • Thanks for the info Mir, it helped me rule that out of some of the issues I was having.

    I have now got that CODEC working correctly with I2S via the external ASI.

    One thing that did throw me for a while was that that default settings for I2S (and TDM) is Ch1 = left 0 slot and ch2 = left 1 slot. That resulted in no right channel been sent over I2S. Once I realised this and set ch2 to be right 1 on both output and inputs, it worked.

    Thanks

    Graeme