I want to implement a volume control in a ADAU1452-project which shall be controlled by an Auxiliary ADC input.
In combination with a SIGMA100 and SIGMA200 DSO this is very easy, as I simply have to connect the ADC input cell to the control input of a "single slew ext vol" cell.
But with the new Sigma300 this does not work. The volume control cell expects a control signal in 8.24 format but it seems that the ADC input delivers values between 0 and 1023 in 32.0 format.
Is it now necessary to convert the ADC input signal before it can be used with the volume control cell? If so,why has this be changed?
Yes, the Sigma300's Aux ADC ranges from 0 to integer 1023 (32.0 format). Also the external control volume blocks expect a 8.24 format, where an input of 1.0 delivers unity gain. In integer terms, this needed input is 2^24. Thus we need to convert integers from 0 to 1023 (nearly 2^10) to the 8.24 format,where the number 1.0 (corresponding to unity gain in a volume control) equals 2^24 in the integer format. Two of the several conversion methods are described here:
Multiplying the Aux ADC value by 2^14 (16384) brings it to the 8.24 format value of 1.0 max. This needs to be split into two multiplies of nearly 2^7 (128), as shown below:
Lookup table method:
This method is more flexible, allowing for a dB-calibrated or "log taper" volume control. The Aux ADC's 0-1023 integer value is multiplied by 1/16 (for example), in this case producing an integer from 0 to 63. This drives a lookup table to provide suitable control values in the 8.24 format:
I tried to do the same (SigmaStudio 4.1, ADAU1452) using a shift register. Unfortunately the volume controlled channel keeps silent. I also tried to feed the volume control with a DC of 1.0 but the result is the same. Any idea what I did wrong?