Post Go back to editing

ADAU1467eval board DAC stage volume attenuation

Thread Summary

The user wants to implement global volume control on the ADAU1467eval board using the AD1937 codec to enhance audio quality. The support engineer suggests controlling the volume via the codec's I2C interface, setting S2 to I2C mode and connecting USBi to J7 for runtime control. Alternatively, the user can set fixed gain using an XML file. The user believes feeding full-scale signals directly to the DSP is optimal, but the engineer recommends controlling gain within the DSP for more flexibility and monitoring options.
AI Generated Content
Category: Hardware
Product Number: ADAU1467

hi all,

i've got an ADAU1467eval board,

I've done a couple of apps for it, mainly to drive fullranges, mids and sub speaker thru with a multichannel power amp fed with crossed over and equalized signals from that board.

Currently I use theb board's spdif input, and I control the volume in the digital domain, at the source level, before reaching the eval board.

I'd like to change that : feed the board with full scale (0dB attenuation of  the source) signal, and use some controllable attenuation before the multichannel amplifers input stage.

There is a an 4/8ch codecs AD1937 on the ADAU1467eval boad;

does it make sense to try to implement my global volume control inside that 1939 ? (aiming at enhancing the overall audio quality at any listening level)

would the evalboard hardware and software allow that ?

thanks is advance

regards.

Edit Notes

type fix
[edited by: iravelo at 1:27 PM (GMT -5) on 15 Nov 2025]

Thread Notes

  • Hello iravelo,

    Yes, The AD1937 Codec has 8 DACs and each DAC's volume can be controlled independently via I2C.

    If you want to control it in run-time then there are ways to access the CODEC via USBi.

    Put the switch S2 in I2C mode and connect the USBi to port J7 (peripheral control port).

    The pins MP24 and MP25 must be high-impedance and so set them as inputs. Because the DSP can optionally be an I2C master on MP24 and MP25 which connect to the same pins we are using here. Therefore, it is important to set those pins of the DSP to high impedance by making them inputs. Otherwise, the DSP might interfere with the USBi’s attempt to communicate.

    Look at the Eval board schematics for other hardware related safety measures.

    This way you can control the codec in runtime via USBi.

    And another way is if you want to set the gain only once which is fixed, then we will program the CODEC once using an XML file with respective gain for the respective DAC, no need for real-time control.

    But why are you taking the trouble, why do you want to control the volume in the COEDC?

    You can easily and simply control each channel's gain inside the DSP which gives you more options, like different methods of slewing, you can monitor the before and after level using level detectors etc.

    You control the gain inside the DSP and send the known level to the DAC, which is usual and easy way of doing things.

    Regards,

    Harish

  • hi and thanks for that answer,

    I want to control the volume as close as possible to the external fixed gain externel amplifier I use (https://dls.se/product/cci44/) because I think innocently that feeding the DSP's input stage (in my case; ASRC on the toslink input) with ful scale signal (0dB attenuation) is more opimal than putting a signal attenuation in the digital source (an android tablet connected to an external USB to Toslink adapter)