Hello,
I am using the SGTL5000 in following setting:
It is an I2S slave, configured for 8KHz sampling. I have tried both synchronous and asynchronous mode. I am using the Teensy Audio board (PJRC Store ) for the setup. It takes 3.3V and has external 1.8V VDDD.
My configuration is given at end of my query. The observation is
There is a constant background noise being heard, even when we do a SGTL Internal Loopback. After too much hair-pulling, setting the BIAS_CTRL to -50%, the noise went away but so did the audio. At -37.5% BIAS_CTRL the noise is less but still present and unacceptable.
What is the solution to get rid of this noise?
---Configuration-----
/ Value which is used in Bitbucket code with PLL
uint32_t delay;
SgtlRegWrite(SGTL5000_CHIP_ANA_POWER, 0x4060); // Power down everything but ADC, DAC and Ref Currents Power Up
SgtlRegWrite(SGTL5000_CHIP_LINREG_CTRL, 0x006C); // Manually assign charge pump source to VDDIO
SgtlRegWrite(SGTL5000_CHIP_REF_CTRL, 0x001F2); // Set VAG = 1.575
SgtlRegWrite(SGTL5000_CHIP_LINE_OUT_CTRL, 0x0000);// No-op
SgtlRegWrite(SGTL5000_CHIP_SHORT_CTRL, 0x4446); // Disable short control
SgtlRegWrite(SGTL5000_CHIP_ANA_CTRL, 0x0122); // Unmute DAC/ADC and select proper sources for mic/headphone
SgtlRegWrite(SGTL5000_CHIP_PLL_CTRL,0x8312);
#ifdef USE_MONO_CHANNEL
SgtlRegWrite(SGTL5000_CHIP_ANA_POWER, 0x53A); // Power down everything but mic, dac, HP,
SgtlRegWrite(SGTL5000_CHIP_ANA_POWER, 0x5BA); // Enable VAG
#else@
SgtlRegWrite(SGTL5000_CHIP_ANA_POWER, 0x457A); // Power down everything but mic, dac, HP,
SgtlRegWrite(SGTL5000_CHIP_ANA_POWER, 0x45FA); // Enable VAG
#endif
SgtlRegWrite(SGTL5000_CHIP_DIG_POWER, 0x0063); // ADC, DAC, I2S_IN, I2S_OUT
delay = 1000000u;
while(--delay);
SgtlRegWrite(SGTL5000_CHIP_LINE_OUT_VOL, 0x0F0F); // Max out the attenuation for line out
SgtlRegWrite(SGTL5000_CHIP_CLK_CTRL, 0x003B); // Fs = 48/6 KHz, MCLK=256*Fs
SgtlRegWrite(SGTL5000_CHIP_I2S_CTRL, 0x01B0); // 16-bit, Master, SCLK = 32Fs,
SgtlRegWrite(SGTL5000_CHIP_SSS_CTRL, 0x0010); // I2S_IN->DAC, ADC->I2S_OUT

SgtlRegWrite(SGTL5000_CHIP_ADCDAC_CTRL, 0x0000);
SgtlRegWrite(SGTL5000_CHIP_DAC_VOL, 0x3C3C); // 0dB for both channels
SgtlRegWrite(SGTL5000_CHIP_ANA_HP_CTRL, 0x0C0C); // 0dB volume in both HP channels
SgtlRegWrite(SGTL5000_CHIP_ANA_ADC_CTRL, 0x0000); // No loss in ADC volume
SgtlRegWrite(SGTL5000_CHIP_MIC_CTRL, 0x0170); // MIC BIAS output impedance 2kOhm, BiasV = 3V, ampli gain = +0dB
SgtlRegWrite(SGTL5000_CHIP_CLK_TOP_CTRL, 0x0000); // Disable the internal osc
SgtlRegWrite(SGTL5000_DAP_CTRL, 0x0000); // Disable DAP