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.

TAS5751M: No audio output

Part Number: TAS5751M

Hi,

I have a problem similar to https://e2e.ti.com/support/audio-group/audio/f/audio-forum/647181/tas5751m-pwm-output-not-changing-between-ad-and-bd-modulation---no-audio-output/2379818#2379818, i.e. all the input signals and configuration seems to be correct, but the output signal does not contain any audio information, just the PWM signal.

Unfortunately, the solution (fix the soldering) does not apply, as all the soldering have been checked and are OK.

What could be the reason for the TAS5751M not to generate any output audio signal?

Thanks in advance for your help,

Kind regards,

  • Hello Damien,

    Is this on an EVM or a custom board. Can you provide your init sequence

    best regards,
    Luis

  • Hi Luis,

    this is indeed a custom board, in a mono configuration.

    Here is the init sequence, as exported by PPC3:

    typedef unsigned char cfg_u8;
    typedef union {
        struct {
            cfg_u8 offset;
            cfg_u8 value;
        };
        struct {
            cfg_u8 command;
            cfg_u8 param;
        };
    } cfg_reg;
    
    #define CFG_META_SWITCH (255)
    #define CFG_META_DELAY  (254)
    #define CFG_META_BURST  (253)
    
    /* Example C code */
    /*
        // Externally implemented function that can write n-bytes to the device
        // PCM51xx and TAS5766 targets require the high bit (0x80) of the I2C register to be set on multiple writes.
        // Refer to the device data sheet for more information.
        extern int i2c_write(unsigned char *data, int n);
        // Externally implemented function that delays execution by n milliseconds
        extern int delay(int n);
        // Example implementation.  Call like:
        //     transmit_registers(registers, sizeof(registers)/sizeof(registers[0]));
        void transmit_registers(cfg_reg *r, int n)
        {
            int i = 0;
            while (i < n) {
                switch (r[i].command) {
                case CFG_META_SWITCH:
                    // Used in legacy applications.  Ignored here.
                    break;
                case CFG_META_DELAY:
                    delay(r[i].param);
                    break;
                case CFG_META_BURST:
                    i2c_write((unsigned char *)&r[i+1], r[i].param);
                    i +=  (r[i].param + 1)/2;
                    break;
                default:
                    i2c_write((unsigned char *)&r[i], 2);
                    break;
                }
                i++;
            }
        }
     */
    
    cfg_reg registers[] = {
    // -----------------------------------------------------------------------------
    // Initialization Sequence
    // -----------------------------------------------------------------------------
        { 0x06, 0x07 },
        { 0x05, 0x40 },
    
    // -----------------------------------------------------------------------------
    // Amplifier Configuration
    // -----------------------------------------------------------------------------
        { 0x03, 0xa0 },
        { 0x04, 0x03 },
        { CFG_META_BURST, 3 },
        { 0x07, 0x01 },
        { 0x10, 0x00 },
        { CFG_META_BURST, 3 },
        { 0x08, 0x00 },
        { 0xc0, 0x00 },
        { CFG_META_BURST, 3 },
        { 0x09, 0x00 },
        { 0xc0, 0x00 },
        { CFG_META_BURST, 3 },
        { 0x0a, 0x00 },
        { 0xc0, 0x00 },
        { 0x0e, 0xf0 },
        { 0x10, 0x01 },
        { 0x11, 0xac },
        { 0x12, 0x54 },
        { 0x13, 0xac },
        { 0x14, 0x54 },
        { 0x19, 0x3a },
        { 0x1a, 0x68 },
        { 0x1b, 0xc0 },
        { 0x1c, 0x57 },
        { CFG_META_BURST, 5 },
        { 0x20, 0x00 },
        { 0x01, 0x77 },
        { 0x72, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x25, 0x01 },
        { 0x00, 0x22 },
        { 0x45, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x26, 0x00 },
        { 0x7f, 0xf0 },
        { 0xd7, 0x03 },
        { 0x00, 0x1e },
        { 0x53, 0x00 },
        { 0x7f, 0xf0 },
        { 0xd7, 0x00 },
        { 0xff, 0xe1 },
        { 0xab, 0x03 },
        { 0x80, 0x1e },
        { 0x51, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x27, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x28, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x29, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x2a, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x2b, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x2c, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x2d, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x2e, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x2f, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x30, 0x00 },
        { 0x7f, 0xf0 },
        { 0xd7, 0x03 },
        { 0x00, 0x1e },
        { 0x53, 0x00 },
        { 0x7f, 0xf0 },
        { 0xd7, 0x00 },
        { 0xff, 0xe1 },
        { 0xab, 0x03 },
        { 0x80, 0x1e },
        { 0x51, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x31, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x32, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x33, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x34, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x35, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x36, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x37, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x38, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x39, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 9 },
        { 0x3b, 0x00 },
        { 0x07, 0x60 },
        { 0x53, 0x00 },
        { 0x78, 0x9f },
        { 0xac, 0x00 },
        { CFG_META_BURST, 9 },
        { 0x3c, 0x00 },
        { 0x00, 0x00 },
        { 0x6d, 0xff },
        { 0xff, 0xff },
        { 0xe5, 0x00 },
        { CFG_META_BURST, 9 },
        { 0x3e, 0x00 },
        { 0x07, 0x60 },
        { 0x53, 0x00 },
        { 0x78, 0x9f },
        { 0xac, 0x00 },
        { CFG_META_BURST, 9 },
        { 0x3f, 0x00 },
        { 0x00, 0x00 },
        { 0x6d, 0xff },
        { 0xff, 0xff },
        { 0xe5, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x40, 0x08 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x41, 0x08 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 9 },
        { 0x42, 0x00 },
        { 0x00, 0x00 },
        { 0x6d, 0xff },
        { 0xff, 0xff },
        { 0xe5, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x43, 0x08 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x44, 0x07 },
        { 0x21, 0x48 },
        { 0x2b, 0x00 },
        { CFG_META_BURST, 9 },
        { 0x45, 0x00 },
        { 0x00, 0x00 },
        { 0x6d, 0xff },
        { 0xff, 0xff },
        { 0xe5, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x46, 0x00 },
        { 0x02, 0x00 },
        { 0x07, 0x00 },
        { CFG_META_BURST, 9 },
        { 0x47, 0x00 },
        { 0x07, 0x60 },
        { 0x53, 0x00 },
        { 0x78, 0x9f },
        { 0xac, 0x00 },
        { CFG_META_BURST, 9 },
        { 0x48, 0x00 },
        { 0x07, 0x60 },
        { 0x53, 0x00 },
        { 0x78, 0x9f },
        { 0xac, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x4f, 0x00 },
        { 0x00, 0x00 },
        { 0x08, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x50, 0x0f },
        { 0x70, 0x80 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 13 },
        { 0x51, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x03 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 13 },
        { 0x52, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x03 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x56, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x57, 0x00 },
        { 0x02, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x58, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x59, 0x00 },
        { 0x00, 0x0c },
        { 0x27, 0x00 },
        { 0x00, 0x18 },
        { 0x4f, 0x00 },
        { 0x00, 0x0c },
        { 0x27, 0x00 },
        { 0xf6, 0x23 },
        { 0xa6, 0x03 },
        { 0x89, 0xab },
        { 0xbc, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x5a, 0x00 },
        { 0x59, 0x0c },
        { 0xdc, 0x03 },
        { 0x4d, 0xe6 },
        { 0x47, 0x00 },
        { 0x59, 0x0c },
        { 0xdc, 0x00 },
        { 0xab, 0x0d },
        { 0xc1, 0x03 },
        { 0xc6, 0xda },
        { 0x4f, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x5b, 0x00 },
        { 0x03, 0x85 },
        { 0xfc, 0x00 },
        { 0x07, 0x0b },
        { 0xf8, 0x00 },
        { 0x03, 0x85 },
        { 0xfc, 0x00 },
        { 0xab, 0x0d },
        { 0xc1, 0x03 },
        { 0xc6, 0xda },
        { 0x4f, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x5c, 0x00 },
        { 0x7b, 0x1d },
        { 0xfa, 0x03 },
        { 0x09, 0xc4 },
        { 0x0b, 0x00 },
        { 0x7b, 0x1d },
        { 0xfa, 0x00 },
        { 0xf6, 0x23 },
        { 0xa6, 0x03 },
        { 0x89, 0xab },
        { 0xbc, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x5d, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x5e, 0x00 },
        { 0x00, 0x0c },
        { 0x27, 0x00 },
        { 0x00, 0x18 },
        { 0x4f, 0x00 },
        { 0x00, 0x0c },
        { 0x27, 0x00 },
        { 0xf6, 0x23 },
        { 0xa6, 0x03 },
        { 0x89, 0xab },
        { 0xbc, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x5f, 0x00 },
        { 0x59, 0x0c },
        { 0xdc, 0x03 },
        { 0x4d, 0xe6 },
        { 0x47, 0x00 },
        { 0x59, 0x0c },
        { 0xdc, 0x00 },
        { 0xab, 0x0d },
        { 0xc1, 0x03 },
        { 0xc6, 0xda },
        { 0x4f, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x60, 0x00 },
        { 0x03, 0x85 },
        { 0xfc, 0x00 },
        { 0x07, 0x0b },
        { 0xf8, 0x00 },
        { 0x03, 0x85 },
        { 0xfc, 0x00 },
        { 0xab, 0x0d },
        { 0xc1, 0x03 },
        { 0xc6, 0xda },
        { 0x4f, 0x00 },
        { CFG_META_BURST, 21 },
        { 0x61, 0x00 },
        { 0x7b, 0x1d },
        { 0xfa, 0x03 },
        { 0x09, 0xc4 },
        { 0x0b, 0x00 },
        { 0x7b, 0x1d },
        { 0xfa, 0x00 },
        { 0xf6, 0x23 },
        { 0xa6, 0x03 },
        { 0x89, 0xab },
        { 0xbc, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x70, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x71, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x72, 0x00 },
        { 0x40, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x73, 0x00 },
        { 0x40, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x74, 0x00 },
        { 0x80, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x75, 0x00 },
        { 0x00, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x76, 0x00 },
        { 0x40, 0x00 },
        { 0x00, 0x00 },
        { CFG_META_BURST, 5 },
        { 0x77, 0x00 },
        { 0x40, 0x00 },
        { 0x00, 0x00 },
    
    // -----------------------------------------------------------------------------
    // Unmute Sequence
    // -----------------------------------------------------------------------------
        { 0x05, 0x00 },
        { 0x06, 0x00 },
    
    
    };

    Kr,

    --

    Damien

  • Hello Damien,

    Can you provide the schematic. I don't see clear issues with the init sequence.

    best regards,

    Luis

  • Hi Luis,

    here you are:

    schematic

    Please note that MCLK is currently not connected, as it was not required. Should it?

    Kr,

    --

    Damien

  • Hi Damien

        Have they checked register 0x02, any error happened? What's the I2S data format and sample rate are they using?

        Please also provide their PPC3 setting files and input signal file, we can test it on our EVM board.

  • Yes, register 0x02 has been checked, and always returns 0x00.

    Standard I2S is used, 16-bits, 48kHz.

    PPC3 config is here (too big to be attached, apparently).

  • Hello Damien,

    Is your MCLK floating or tied to BCLK/SCLK. Can you try connecting it to the SCLK net and try again.

    best regards,

    Luis

  • Hi Luis,

    MCLK is indeed floating.

    We will try connecting it as you suggest.

    Thanks.

    Kr,

    --

    Damien

  • Hello Damien,

    Look forward to seeing the results of this test.

    best regards,

    Luis

  • Hi Luis,

    unfortunately, connecting the MCLK did not change the observed behavior... Confounded

    One thing I noticed: Clock Control Register (0x00) does not seem to support the configuration I want to test: 48kHz 16-bit I2S, means BCLK (hence MCLK now) of 1.536 MHz, but there is no possible register value for the combination of sample rate of 48kHz with MCLK of 1.536 MHz: we would need a sample rate factor of 32, but minimum is 64... Thinking

    Any suggestion of which proper settings to use?

    Kr,

    --

    Damien

  • Hi,

    I finally succeeded in making it work: following the observation mentioned above, I managed to generate a separate 256 x Fs MCLK, and the amplifier is now outputing some audio \o/

    Thanks for your support!