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.

TAS5731M: SCLK and LRCLK error

Part Number: TAS5731M


Hello TI service team,

I build an amplifier with the TAS5731M in BTL mode. I am facing issus with the I2S clocks. The clocks are sourced by a DSP and have the following values:

fs = LRCLK = 48 kHz; SCLK = 64 x fs = 3.072 MHz; MCLK = 8 x SCLK = 512 x fs = 24.576 MHz.

As far as I know, this clock configuration should work for the TAS5731M (datasheet). The clocks are all quite well shaped, stable and precise (see oscilloscope screenshot below, observe 50 MHz bandwidth for MCLK). Edges of SCLK and LRCLK fit together and I counted 64 SCLK periodes in 1 LRCLK periode. The clock source is also used with other devices and it works without any problems. That's why I suggest the problem is on the side of the amplifier.

The init routine I do on my system MCU is the following (/PDN is High):

1. Trim OSC: write 0x00 to 0x1b

2. Init system reg 2: write 0x00 to 0x05

3. set master volume: write 0x58 to 0x07 (-20 dB)

That works fine (small amount of noise is audible from the speakers after the init). But if I start to play audio, nothing happens.

While debugging process, I did the following:

1. reset error status register to see if the errors are persistent: write 0x00 to 0x02

2. read error status reg: it says sclk and lrclk error

3. read clock control register to see if the clock rate autodetection works: it says fs=48 kHz and MCLK=512 x fs, which is correct

4. read system control reg 2 to see if the amp is muted: amp is in normal operation (all channel exit shutdown), which is also fine. Moreover, I checked with the oscilloscope if the output stage is switching. It does like it should with about 384 kHz.

The question is, where could be the problem?

Thanks for any suggestions.

Greets, Markus.

  • Hi Markus,
    I'm impressed your great debug work. Is it possibly a signal integrity issue on the I2S stream? You mentioned that the I2S stream is also used by the other devices, there could be signal reflections on the clock transmission lines . Please try to add serial in the clock line in the source and add 75ohm +100pf to GND on the terminal end. Another thing you could try is to lower SLCK and MCLK frequency to see if there is any improvement.
    Best regards,
    Shawn Zheng
  • Hi Shawn,

    the debug work payed off. I found the problem. If you have a closer look on the screenshots of the clocks you probably see it. 

    As for the other devices I tested with the clocks of my DSP everything worked, I started to check the necessary I2S clocks of the TAS5731M again.

    The issue was the inversion of the bit clock. My other devices don't care if the bit clock (bclk) is inverted or not. But the TAS57xx amplifiers need exactly the clock polarity shown in the datasheet.

    I changed the bclk polarity of my DSP output and now everything works fine.

    In the screenshot I attached, you can see how the bclk(=sclk) should behave (when LRCLK goes high, bclk must go low in the same moment and the data is valid on rising edge, in my setup before it was valid on falling edge).

    Thank's for your support. The issue can be closed.

    Greets, Markus.