ZHCSIM2D June 2010 – August 2021 PCM9211
PRODUCTION DATA
The onboard ADC has some additional functions. Control of these functions is done using several registers (Register 40h through Register 49h).
Each ADC channel has a digital attenuator function. The level of attenuation can be set from 20 dB to –100 dB in 0.5-dB steps, and also set to infinite attenuation (mute). By default, the digital gain/attenuation is moved 0.5-dB steps closer from its current level to its new setting only when the sampled output crosses zero (zero crossing). Changing gain or attenuation at zero crossing points in the audio minimizes zipper noise.
If zero crossing is disabled, then the gain steps ±0.5 dB towards its target every 8/fS. Zero crossing detection is modified using the ADZCDD register. If zero crossing is not detected for 512/fS (for example, if there is a significant dc bias on the signal), then the level change is done on every samples (1/fS) until zero crossing is detected again.
If updated volume change instructions are received during a volume change, they will be ignored until the current change is complete.
The attenuation level for each channel can be set individually using the following formula:
Attenuation Level (dB) = 0.5 ● (AT1x[7:0]DEC – 215), where AT1x[7:0]DEC = 0 through 255
For ADATTL[7:0]DEC = 0 through 14, attenuation is set to infinite attenuation (mute).
For ADATTR[7:0]DEC = 0 through 14, attenuation is set to infinite attenuation (mute).