Datasheet

3−25
data that falls in the subaddress range 0x01 through 0xD1 after issuing an I
2
C command to change the volume level
on one of the three monaural channels, the busy bit at subaddress 0xFF must be monitored to determine when the
volume activity has ceased and it is safe to resume I
2
C read activity at subaddresses 0x01 through 0xD1. A value
of 0 in the least-significant bit of the byte output on reading subaddress 0xFF signifies that all volume transition activity
has completed.
3.6.2 Loudness Compensation
Loudness compensation employs a single, coefficient-programmable, biquad filter and a function block
f(volume_setting), whose output is only a function of the volume control setting. The biquad filter input is the channel
processed audio data stream that also feeds the volume gain-control mixer. The biquad output feeds a gain-control
mixer whose other input is the volume-control setting after processing by the function block f(volume setting).
Loudness compensation then allows a given spectral segment of the audio data stream (as determined by the biquad
filter coefficients) to be given a delta adjustment in volume as determined by the programmable function block
f(volume_setting).
The output of the function block f(volume_setting) can be expressed in terms of the programmable I
2
C coefficients
as:
f(volume_setting) = [(volume_setting)
LG
× 2
LO
× G] +O
where:
LG = logarithmic gain = 5.23-format number
LO = logarithmic offset = 25.23-format number
G = gain = 5.23-format number
O = offset = 25.23-format number
If LG = 0.5, LO = 0, G = 1.0, and O = 0, f(volume setting) becomes:
f(volume_setting) = volume_setting
The output of the soft volume/loudness compensation block for the preceding case would be:
audio
Out
= [audio
In
× volume_setting] + [audio
In
× F(s)
Biquad
× volume_setting ]
Figure 3−17 is a block diagram of the loudness logic. If a given monaural channel is set up as in the preceding
example, a true mute is not obtained when a mute command is issued for the monaural channel. The function block
f(volume_setting) approximates logarithmic arithmetic and a consequence of the mathematical approximations used
is that the function block can output a nonzero value for an input volume setting of 0. For f(volume_setting) =
volume_setting
, a volume_setting value of 0.0 results in the function block outputting a gain coefficient that cuts the
output of the biquad filter by approximately 90 dB. If true muting is required, it can be achieved by setting G = 0 after
the volume control setting has softly transitioned to 0.
Biquad
Audio OutAudio In
Loudness
Soft Volume
LG OGLO
Figure 3−17. Loudness Compensation Block Diagram