Hello,
I have been trying the increase the level of my signal that coming out of LINEOUT of the AIC3106 codec via implementing various configurations of AGC. At present with following register settings (Register :
Codec_RSET( LEFT_AGC_A, 0 ); // AGC off
Codec_RSET( RIGHT_AGC_A, 0 ); // AGC off
Codec_RSET( LEFT_AGC_B, 0x00 ); // AGC max gain=0
Codec_RSET( RIGHT_AGC_B, 0x00 ); // AGC max gain=0
Codec_RSET(LEFT_AGC_C, 0x00); // Hysteresis disabled, noise/silence disabled and AGC clip stepping disabled
Codec_RSET(RIGHT_AGC_C, 0x00);
Codec_RSET(LEFT_AGC_Gain, 0x00); // 0dB gain
Codec_RSET(RIGHT_AGC_Gain, 0x00); // 0dB gain
Codec_RSET(LEFT_AGC_Noise_Gate_Debounce, 0x00); // Noise detection debounce control = 0msec, Signal detection debounce control = 0msec
Codec_RSET(RIGHT_AGC_Noise_Gate_Debounce, 0x00);
with these configuration, my signal's amplitude comes out to be 121mV. I am trying to increase it to 600mV. But even if I change the above configurations to,
Codec_RSET( LEFT_AGC_A, 0x80 ); // AGC enable, AGC target level = -5.5dB, AGC attack time = 8msec, AGC decay time = 100msec
Codec_RSET( RIGHT_AGC_A, 0x80); // AGC enable, AGC target level = -5.5dB, AGC attack time = 8msec, AGC decay time = 100msec
Codec_RSET( LEFT_AGC_B, 0xFE); // AGC max gain=59.5dB
Codec_RSET( RIGHT_AGC_B, 0xFE ); // AGC max gain=59.5dB
Codec_RSET(LEFT_AGC_C, 0x7F); // Hysteresis = 2dB, Noise Threshold Control = -90dB, AGC clip stepping control = enabled
Codec_RSET(RIGHT_AGC_C, 0x7F);
Codec_RSET(LEFT_AGC_Gain, 0x77); // 59.5dB gain
Codec_RSET(RIGHT_AGC_Gain, 0x77); // 59.5dB gain
Codec_RSET(LEFT_AGC_Noise_Gate_Debounce, 0x00); // Noise detection debounce control = 0msec, Signal detection debounce control = 0msec
Codec_RSET(RIGHT_AGC_Noise_Gate_Debounce, 0x00);
My signal level isn't increasing from 121mV. I have trouble understanding why? Kindly, help me understand how can I observe AGC in the codec and why despite changing the configuration, the AGC isn't increasing the level. Thank you.