The ADAU1761 analog front end has an ALC (automatic level control) function that sets the gain of the differential input paths dynamically, based on the level of the incoming signals. However, the ALC can be bypassed and the DSP program can directly control the amount of gain applied to the differential inputs.
In order to do this, the differential path for one or both channels needs to be Enabled and Unmuted. The LDBOOST (and/or RDBOOST) should also be set to either 0 dB or 20 dB as needed, in order to enable the differential path.
Then, the ALCSEL bits should be set to DSP Control mode.
Now, in the DSP program schematic, the user can add AIGC Output cells to the project:
Channel 0 maps to the left PGA.
Channel 1 maps to the right PGA.
Now, the 5.23 signal that is fed to each of these cells determines the gain of the corresponding PGAs.
As a simple example, to set the gain of each PGA to 0.5 (or -6 dB), create a DC Input Entry cell from the Sources library and set it to 0.5, then wire it to the AIGC outputs.
In the next example, a Sine Tone at 10 Hz is scaled and shifted using the Multiply and Add cells so that it ranges between 0 and 1, and then it is sent to the AIGC Output cells. This causes the PGA gain to shift rapidly back and forth between 0 dB and muted, which creates a tremolo effect.
In the following example, the peak level of each input is detected by the Peak Envelope cells, and the inverse of this signal is created using the Divide cells and a DC Input Entry cell. The result is sent to the AIGC Output cells. This means that the inverse of the peak level of the input is used to scale the PGA gain. The result is that the gain is high when the input signal is low, but the gain is lowered to avoid clipping when the input level increases.
These are just a few examples of what can be done using DSP Control mode on the ADAU1761's PGAs.