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.

Linux/TAS5825M: No sound output

Part Number: TAS5825M
Other Parts Discussed in Thread: TAS5805,

Tool/software: Linux

We adapted TI's TAS5805 Linux driver to get to work with the TAS5825. Only moonier changes were needed. We also created a simple prototyping board that enables us to connect our processor to the TAS5825 via I2C and I2S. We provide 3.3V for digital power, and 12VDC for analog power. We can communicate with the chip via I2C, including setting registers and reading register values. We also created a minimal configuration. The driver asserts this configuration when it is loaded. However, no matter what we do, we do not get any switching on the speaker outputs. 

The !mute pin is asserted high. The !shutdown pin is asserted high.

Status Register 0x03 reports a value of 0X03 when music is present on I2S (this indicates the chip is in play mode) and 0X0B when music is absent (this indicates mute-on + play mode).  We are not externally controlling the muting of the chip, so the change from mute-off to mute-on is presumably being done by the chip, not us. Nevertheless, it seems to indicate that the chip is aware of the presence or absence of an I2S stream.

Interestingly, the fault registers report faults but we cannot figure out what the faults are due to:

Fault Register 0x70 reports 0x01, which indicates a right channel over current fault.

Fault Register 0x71 reports 0x04 which indicates a clock fault.

Our configuration is as follows, written to the chip in the order shown:

Register

Value

0x01

0

0x02

0

0x0F

0

0x28

0x39

0x29

0

0x31

0

0x33

0x03

0x34

0

0x50

0

0x03

0x03

You might wonder if we have tried the TAS5825EVM eval kit, and the answer is that we have ordered it but have not yet received it. 

Finally, for the moment, I would like to point out that the data sheet documentation for Table 11 is not correct. It describes bit 3 of register 0x28H as having four bits of information. Clearly four bits cannot fit into one bit! We looked at Table 11 in the data sheet for the TAS5805 and it makes sense. We used the values from the TAS5805 data sheet to set register 0x28 in our TAS5825.

Any help you can provide would be most appreciated.

Respectfully,

Robert Seliger

WHIM LLC

  • Hi Robert,

    Could you share with me your driver code? Thanks.

    Andy
  • We used the driver that TI provided in this link: https://e2e.ti.com/support/audio/f/6/t/722027. The request for the driver source code originated with us, but was posted by a TI application engineer.

    - Rob

  • Hi Rob,

    Actually, that TI application engineer you were talking is probably me. :-)

    I will provide some new driver code tomorrow and let you try again.

    In addition, could you double check whether your system meets the following startup procedures mentioned in the TAS5825M datasheet?

    Andy

  • I just looked at the driver source code, and behold, you are the author! I admire and appreciate the fact that you interact directly with your customers, such as me.

    We are aware of the startup procedures, but it is not clear how to actually achieve #3 and #4. The issue is that Linux loads the driver when the processor boots, and we haven't figured out how to coordinate the loading of the driver while first ensuring that I2S clocks are running. So, we did several experiments, none of which made a difference:

    A. Instead of loading the driver at boot, we installed it as a user-space driver using insmod. We did this after playing an file via aplay.
    B. Same as A, but installed the driver while aplay was also running.
    C. After the driver loaded, and after playing a file via aplay, we explicitly set the various registers (per my original posting) using i2cset commands in a script.

    In all cases, we can read back the expected register values.

    We can conduct other experiments if you would like to tell is what to do.

    We have thought about creating our own I2S clocks via a crystal, which would mean running the chip as the I2S master. That way there would be clocks as long as there is power. We could then put a small delay in the driver to allow the clocks to stabilize upon power-up. We have not pursued this approach yet pending guidance from TI.

    - Rob
  • Hi Rob,

    Try this code below.  I put the minimum configurations in that code.  Let me know if you guys still see the same issue.

    BTW, could you show me the schematic? Thanks.

    tas5825m.c
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    /*
    * Driver for the TAS5825M Audio Amplifier
    *
    * Author: Andy Liu <andy-liu@ti.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * version 2 as published by the Free Software Foundation.
    *
    * This program is distributed in the hope that it will be useful, but
    * WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    * General Public License for more details.
    */
    #include <linux/module.h>
    #include <linux/moduleparam.h>
    #include <linux/slab.h>
    #include <linux/of.h>
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Andy

  • We tried your latest code, but still no sound. I sent you a private message regarding your request for the schematic.

    - Rob

  • Hi Rob,

    I don't think I have ever got the schematic so far.

    Could you send it to me by email directly? You can find my email address in the driver code.

    Andy
  • Hi Rob,

    Is your issue solved yet?

    Andy
  • Although we have the TI eval board working via a Windows PC, we have not yet resolved the issue with the combination of our own board and the Raspberry Pi platform that we use for prototyping.

    We are waiting for more chips from TI (the TAS5825 has been on back order) so that we can build more of our own boards for trouble-shooting.

    We hope to receive more chips next week (week of 10/1).

    - Rob

  • Hi Robert,
    Considering that Andy is communicating with you offline, I'm closing this question. and please feel free to creat a new post in E2E if you have any other question.
    Best regards,
    Shawn Zheng