Hi Athul Pavithran,
I’m a Hardware engineer that has been working with the SGTL5000, I may help with the issue you are seeing.
The issue seems to be related to a problem with the initialization or configuration of the PLL, or an incompatibility of the clock ranges between the ones that you are trying to use and the ones that the SGTL5000 can handle.
I would recommend you to take a look at the following initialization/configuration settings steps required to use the internal PLL:
// Power up the PLL
Modify CHIP_ANA_POWER->PLL_POWERUP 0x0001 // bit 10
Modify CHIP_ANA_POWER->VCOAMP_POWERUP 0x0001 // bit 8
// NOTE: This step is required only when the external SYS_MCLK
// is above 17MHz. In this case the external SYS_MCLK clock
// must be divided by 2
Modify CHIP_CLK_TOP_CTRL->INPUT_FREQ_DIV2 0x0001 // bit 3
Sys_MCLK_Input_Freq = Sys_MCLK_Input_Freq/2;
// PLL output frequency is different based on the sample clock rate used.
if (Sys_Fs_Rate == 44.1kHz) PLL_Output_Freq = 180.6336MHz
else
PLL_Output_Freq = 196.608MHz
// Set the PLL dividers
Int_Divisor = floor(PLL_Output_Freq/Sys_MCLK_Input_Freq)
Frac_Divisor = ((PLL_Output_Freq/Sys_MCLK_Input_Freq) - Int_Divisor)*2048
Modify CHIP_PLL_CTRL->INT_DIVISOR Int_Divisor // bits 15:11
Modify CHIP_PLL_CTRL->FRAC_DIVISOR Frac_Divisor // bits 10:0
I hope this can help.
Have a great day,
Jose
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------