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.

TAS6424M-Q1: PBTL in I2S only MONO output.. How to get Stereo?

Part Number: TAS6424M-Q1
Other Parts Discussed in Thread: TAS6424

Hello,

Working on a customer project, using TAS6424 in PBTL mode, everything works fine more or less.. except because CH1 and 2 and CH3 and 4 are the same, cannot get L and R separately.

I've been reading all the posts regarding this on this forum, regarding SDIN1 and SDIN2 separately, or together, or SDIN2 grounded... Nothing clear. And nothing works for me.

We only have one I2S data signal, so needs to go to both SDIN1 and SDIN2 paths. How can we get left an right channels separately on I2S and PBTL mode? Could anybody please help?

Thanks!

Oriol.

  • Oriol,

    Thank you for using our TAS6524M-Q1 amplifier.  Let me see if I can clarify some things.

    Per the datasheet, the device must be in Standby mode (/STANDBY pin low) to program it for PBTL.  Only SDIN1 is needed as the Left channel is mapped to the PBTL channel made up of channel 1 and 2, and the right chanell is mapped to channel 3 and 4. 

  • Hello Gregg,

    Thanks for your response.

    Actually datasheet is not so clear. I am currently entering the device in stby mode before sending commands, this is not a problem. 

    Initial design has the SDIN1 and SDIN2 together, so only getting Left Channel on 1/2 and 3/4. If only using SDIN1, and not connecting SDIN2, I got the same, Left channel on 1/2 and 3/4. If I tie SDIN2 to ground, then no sound.

    I have seen on this forum people saying is not possible to get Stereo mode in PBTL, so please, clarify me this and I really hope it's possible, because if not, lot of time and money wasted..

    Thanks!

    Oriol.

  • Oriol,

    Thanks for getting back so quickly and providing  a detailed response.  I performed a search and spoke with the engineer that replied to the posts. 

    I was incorrect in my earlier response.  You are correct in what your measuring.

    Do you have a DSP in your design?  If so, we recommend using TDM mode or reformatting your I2S.

  • Hello Gregg,

    So then there is no Stereo mode in PBTL? Unfortunately I do not have any DSP to run in TDM mode, I can only use I2S. There is no way to get it working then? Because then.. I am really shocked! Or any other pin compatible solution?

    This is my init code, does it looks correct?

    void tas6424_init(void) 
    {
    
    	ioport_set_pin_level(GPIO27, IOPORT_PIN_LEVEL_LOW);  //CHIP enter standby mode by MCU
    	delay_ms(10);
    	
    	write_byte_data(TAS6424_ADDR, 0x00, 0x80); // Chip reset
    
    	write_byte_data(TAS6424_ADDR, 0x00, 0x30); // PBTL MODE
    
    	write_byte_data(TAS6424_ADDR, 0x04, 0x55); // Mute Output
    
    	write_byte_data(TAS6424_ADDR, 0x21, 0x80); // Clear all faults
    	
    	write_byte_data(TAS6424_ADDR, 0xff, 0x64); // Clear all faults
    	
    	write_byte_data(TAS6424_ADDR, 0x01, 0x31); // Set Gain to Level 2 (15V)
    	
    	write_byte_data(TAS6424_ADDR, 0x02, 0x62); // Set PWM for 44x FS 
    	
    	write_byte_data(TAS6424_ADDR, 0x03, 0x04); // 44100 I2S
    	
            delay_cycles(100000);
    
    	write_byte_data(TAS6424_ADDR, 0x05, 0x00); // CH1 Volume 0xCF 0dB 0.5dB/Step
    	write_byte_data(TAS6424_ADDR, 0x06, 0x00); // CH2 Volume 0xCF 0dB 0.5dB/Step
    	write_byte_data(TAS6424_ADDR, 0x07, 0x00); // CH3 Volume 0xCF 0dB 0.5dB/Step
    	write_byte_data(TAS6424_ADDR, 0x08, 0x00); // CH4 Volume 0xCF 0dB 0.5dB/Step
    	
            write_byte_data(TAS6424_ADDR, 0x04, 0x00); // Un-mute outputs 
    
    	write_byte_data(TAS6424_ADDR, 0x05, 0xB0); // CH1 Volume 0xCF 0dB 0.5dB/Step
    	write_byte_data(TAS6424_ADDR, 0x06, 0xB0); // CH2 Volume 0xCF 0dB 0.5dB/Step
    	write_byte_data(TAS6424_ADDR, 0x07, 0xB0); // CH3 Volume 0xCF 0dB 0.5dB/Step
    	write_byte_data(TAS6424_ADDR, 0x08, 0xB0); // CH4 Volume 0xCF 0dB 0.5dB/Step
    
    
    	ioport_set_pin_level(GPIO27, IOPORT_PIN_LEVEL_HIGH);  //CHIP exists standby mode by MCU
    	delay_ms(10);
    
    	
    	
    }

  • Hi Oriol,

    See my notes in your code

    void tas6424_init(void)
    {
        ioport_set_pin_level(GPIO27, IOPORT_PIN_LEVEL_LOW);  //CHIP enter standby mode by MCU
        delay_ms(10);
        
        write_byte_data(TAS6424_ADDR, 0x00, 0x80); // Chip reset
        write_byte_data(TAS6424_ADDR, 0x00, 0x30); // PBTL MODE
        write_byte_data(TAS6424_ADDR, 0x04, 0x55); // Mute Output  Actually Hi-Z mode
        write_byte_data(TAS6424_ADDR, 0x21, 0x80); // Clear all faults
        
        write_byte_data(TAS6424_ADDR, 0xff, 0x64); // Clear all faults  This is not a register in the 6424, remove
        
        write_byte_data(TAS6424_ADDR, 0x01, 0x31); // Set Gain to Level 2 (15V)
        
        write_byte_data(TAS6424_ADDR, 0x02, 0x62); // Set PWM for 44x FS
        
        write_byte_data(TAS6424_ADDR, 0x03, 0x04); // 44100 I2S
        
            delay_cycles(100000);
    //  Easier would be to set your gain to 0x80 here.
        write_byte_data(TAS6424_ADDR, 0x05, 0x00); // CH1 Volume 0xCF 0dB 0.5dB/Step
        write_byte_data(TAS6424_ADDR, 0x06, 0x00); // CH2 Volume 0xCF 0dB 0.5dB/Step
        write_byte_data(TAS6424_ADDR, 0x07, 0x00); // CH3 Volume 0xCF 0dB 0.5dB/Step
        write_byte_data(TAS6424_ADDR, 0x08, 0x00); // CH4 Volume 0xCF 0dB 0.5dB/Step
    //Since the gain is set to 0x80, it will ramp from low gain to your setting of 0x80 int he next step
            write_byte_data(TAS6424_ADDR, 0x04, 0x00); // Un-mute outputs
    //delete the next four steps as you do not need them.
        write_byte_data(TAS6424_ADDR, 0x05, 0xB0); // CH1 Volume 0xCF 0dB 0.5dB/Step
        write_byte_data(TAS6424_ADDR, 0x06, 0xB0); // CH2 Volume 0xCF 0dB 0.5dB/Step
        write_byte_data(TAS6424_ADDR, 0x07, 0xB0); // CH3 Volume 0xCF 0dB 0.5dB/Step
        write_byte_data(TAS6424_ADDR, 0x08, 0xB0); // CH4 Volume 0xCF 0dB 0.5dB/Step
        ioport_set_pin_level(GPIO27, IOPORT_PIN_LEVEL_HIGH);  //CHIP exists standby mode by MCU
        delay_ms(10);
    Now we just need to get the I2S formed for your PBTL mode.
  • Thank you for your corrections Gregg, I will make those changes.

    Please keep me posted about the Stereo mode in PBTL, I hope there is a solution.. Let meknow as soon as you get some information.

    Thanks!

    Oriol.