Hello,

Our application has 8 steps x 4dB ( =32dB) volume control in FW. It ranges so that max volume gives +12dB gain from input to output and min volume attenuates -20dB. 18k ADC resistor is used giving 2VRMS full range.

See the attached pic for noise levels for 9 volume positions. First steps increase noise 0.5-1dB and gradually moves to +4dB more noise per step. This was measured the ADC input grounded. Measuring with mini board gave similar results so the problem seems not to be in our HW.

Is it even feasible to have this kind of volume control in FW? Or what is wrong?

Thanks,

Timo

Hi Timo,

From looking at your plots, I believe I know what is going on.

I think you will get a similar result with any DSP + codec combination. Any gain above unity (0 dB) in the DSP will increase both the signal and noise coming from the ADC. So, in your case, even with the ADC input grounded, you can expect to see a 12 dB difference in the noise floor from your minimum level at 0 dB. Decreasing the gain after the ADC output (in the DSP), will theoretically decrease the noise floor down to the theoretical minimum of the DSP itself, which is -144 dBFS for a 24-bit data path.

However, the DAC's own noise floor will limit the performance the measured analog output. The lowest measured noise you will reach, even with an absolute zero input to the DAC, is -104 dB relative to the full scale level of the ADAU1701 DAC.

The absolute minimum ADC input noise = -100 dB r2VRMS -> -100 dBFS in digital core

The maximum DSP gain is +12 dB, minimum is -20 dB, so the noise level in the DSP ranges from -120 dBFS to -88 dBFS, depending on the setting of the gain control. However, the DAC cannot output anything less than -104 dBFS, so the real range becomes -104 dBFS to -88 dBFS.

This means that as you vary your volume control, you should see a range of about +/- 16 dB on the noise floor of the DAC output.

Keep in mind that individual ICs might have slightly worse performing ADCs, which would increase this range. For example, an ADC with an SNR of 95 dB instead of 100 dB would yield a noise floor on the DAC ranging +/- 21 dB.

The calculations for that case are as follows:

The absolute minimum ADC input noise = -95 dB r2VRMS -> -95 dBFS in digital core.

Maximum DSP gain is +12 dB, minimum is -20 dB, so the noise level in the DSP ranges from -115 dBFS to -83 dBFS, depending on the setting of the gain control. However, the DAC cannot output anything less than -104 dBFS, so the real range becomes -104 dBFS to -83 dBFS, giving a total range of +/- 21 dB.

Sorry for the long explanation. I hope that makes sense! In any case, I would expect that on high-performing parts you would see at minimum a +/- 16 dB range in the DAC noise floor as you alter the volume control, and in some cases that number would be more like +/- 20 dB or greater.