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.

TAS5715: TAS5715 pop issue during initiation

Part Number: TAS5715

The customer is using TAS5715 (2pcs on a board), PBTL, AD mode.

During the pilot production, some issues have been found.

During the initiation status, pop issue would occur on some boards.

The customer found pop occurred at the time when 0x05 register was written by value 0x00.

The pop varies with different boards.

Attachment are the sch and code.

Please help. Thank you.

Hot spring AMP.pdf

tas5715.txt
 
static  const unsigned char R3C_DATA[8] = {0x00,0x00,0x0c,0x78,0xFF,0xFF,0xFE,0xDB };//42ms
static  const unsigned char R46_DATA[4] = {0x00,0x02,0x06,0x23};
static  const unsigned char R40_DATA[8] = {0x06,0x63,0x00,0x00,0x06,0x62,0xFF,0xFF};
static  const unsigned char R3B_DATA[8] = {0x00,0x01,0x40,0x3F,0x00,0x7E,0xBF,0xC1};
static  const unsigned char R20_DATA[4] = {0x00,0x01,0x77,0x72};
static  const unsigned char R25_DATA[4] = {0x01,0x10,0x32,0x45};
static  const unsigned char R50_DATA[4] = {0x00,0x00,0x00,0x10};//EQ ON
static  const unsigned char R51_DATA[8] = {0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00};
static  const unsigned char R52_DATA[8] = {0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00};
/////////////////////////////////////////////////////////////////////////////////////
static  const unsigned char R70_DATA_L[4] = {0x00,0x80,0x00,0x00};
static  const unsigned char R74_DATA_L[4] = {0x00,0x80,0x00,0x00};
static  const unsigned char R72_DATA_L[4] = {0x00,0x00,0x00,0x00};
static  const unsigned char R73_DATA_L[4] = {0x00,0x80,0x00,0x00};
static  const unsigned char R76_DATA_L[4] = {0x00,0x80,0x00,0x00};
static  const unsigned char R77_DATA_L[4] = {0x00,0x00,0x00,0x00};
//////////////////////////////////////////////////////////////////////////////////////
static  const unsigned char R70_DATA_R[4] = {0x00,0x80,0x00,0x00};
static  const unsigned char R74_DATA_R[4] = {0x00,0x80,0x00,0x00};
static  const unsigned char R72_DATA_R[4] = {0x00,0x80,0x00,0x00};
static  const unsigned char R73_DATA_R[4] = {0x00,0x00,0x00,0x00};
static  const unsigned char R76_DATA_R[4] = {0x00,0x00,0x00,0x00};
static  const unsigned char R77_DATA_R[4] = {0x00,0x80,0x00,0x00};
void init(void)
{
 TAS5715_L_Byte_Write(0x1B,0);    //Enable Factory PLL trim
  DelayMs(80);
  TAS5715_L_Byte_Write(0x06,0x07);  //soft mute
  TAS5715_L_Byte_Write(0x03,0x80);  
  TAS5715_L_Byte_Write(0x04,0x05); 
  TAS5715_L_Byte_Write(0x07,0xFF); 
  TAS5715_L_Byte_Write(0x08,0x1C); 
  TAS5715_L_Byte_Write(0x09,0x1C); 
  TAS5715_L_Byte_Write(0x0C,0xFF); 
  TAS5715_L_Byte_Write(0x11,0xAC); //aD mode
  TAS5715_L_Byte_Write(0x12,0x54); //
  TAS5715_L_Byte_Write(0x13,0xAC); //
  TAS5715_L_Byte_Write(0x14,0x54); //
  TAS5715_L_Byte_Write(0x1a,0x16); //
  TAS5715_L_Byte_Write(0x19,0x3A);//all channel ON
  TAS5715_L_Array_Write(0x20,4,(UINT8 *)R20_DATA); //L->ch1,L->CH2
  TAS5715_L_Array_Write(0x25,4,(UINT8 *)R25_DATA);
  TAS5715_L_Array_Write(0x50,4,(UINT8 *)R50_DATA);
  TAS5715_L_Array_Write(0x51,8,(UINT8 *)R51_DATA);  
  TAS5715_L_Array_Write(0x52,8,(UINT8 *)R52_DATA);
  TAS5715_L_Array_Write(0x46,4,(UINT8 *)R46_DATA);
  TAS5715_L_Array_Write(0x72,4,(UINT8 *)R72_DATA_L);
  TAS5715_L_Array_Write(0x73,4,(UINT8 *)R73_DATA_L);
  TAS5715_L_Array_Write(0x76,4,(UINT8 *)R76_DATA_L);
  TAS5715_L_Array_Write(0x77,4,(UINT8 *)R77_DATA_L);
  TAS5715_L_Array_Write(0x70,4,(UINT8 *)R70_DATA_L);
  TAS5715_L_Array_Write(0x74,4,(UINT8 *)R74_DATA_L);		
  TAS5715_L_Array_Write(0x3B,8,(UINT8 *)R3B_DATA);//SOFT FILTER
  TAS5715_L_Array_Write(0x3C,8,(UINT8 *)R3C_DATA);//ATTK RELEASE	
  TAS5715_L_Array_Write(0x40,8,(UINT8 *)R40_DATA);//threshold	
	
  TAS5715_L_Byte_Write(0x05,0x00); //exit all-channel shutdown (hard unmute)	
}