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.

AIC3107 AGC Settings For Electret Mic



I am building a speakerphone product with the AIC3107.  My electret mic is on MIC3L -- routed to L-BUF, L-PGA, and L-ADC.  I need effective AGC because my product is for speakers 2 - 6 feet away from the mic.  My Mic has a sensitivity of -44dB.  Mic Bias = 2.5-v.  Sample rate is 48-KHz.

Current settings:

L-BUF = 0-dB

L-PGA = 48-dB

Target Gain = -24-dB (not much difference between -12-dB to -24-dB, lower distortion at -24-dB)

Max Gain = 54-dB

Attack Time = 7-ms, Decay Time = 150-ms

No high-pass filters on L-ADC.

All works fine and sounds good, but in tuning the AGC parameters I am not understanding the relationship between L-PGA gain (Reg 15), target gain (Reg 26), and max gain (Reg 27).  SLAA260 (for other codecs) is not helping me understand the interaction between L-PGA gain, target gain, and max gain. 

Is the AGC function starting with the nominal fixed L-PGA gain I set, then boosting to max gain or cutting down to L-PGA to enforce target gain?  Is L-PGA gain effectively the floor on AGC gain variation?

Is my fast attack time and fairly fast decay time causing problems for speech?

I will appreciate guidance.

Terry

  • Hi Terry,

    If you enable the AGC, the PGA gain setting will be ignored. Target gain is what the system will try to maintain to provide headroom. Max gain is the maximum gain the AGC will use.  You can also use the noise gate to keep the system from going to max gain when there is no signal. You can read back the actual gain from register 32, 33. Attack is how fast the gain is reduced in the presence of a large signal and decay is how fast gain will be increased. It will really depend on you system where you want these.

  • PGA gain is not being ignored, but the AGC settings seem to have effect -- I thought I was hearing differences when I change them.  I will re-check all the code and see if I can find why AGC is not overriding the PGA setting.

    Thanks for this feedback.

    Terry