Attenuating DI/O output level
Ultimately I will probably modify the DI/O output stage to operate at 0dBU, but until I get round to that I needed to build some sort of attenuator. This article describes the design process I went through to design a suitable attenuator circuit.
The most straight forward form of attenuator is a simple voltage divider:
The output voltage is calualted using the following equation (1):
If a fixed attenuation is required than R1 and R2 are simply fixed value resistors chosen to give the desired voltage ratio.
If the level of attenuation required is either not known or must be adjustable then R1 and R2 can be replaced by a single variable resistor or potentiometer, with the output taken from the central connection or wiper as follows:
This arrangement allows the output voltage and therefore the output level to be adjusted between 0 and 100% of the input voltage.
In my case, I wanted to adjust the output level of the DI/O to match the output from other audio equipment so I could perform A/B testing (the levels need to be the same so switching between the different sources is not obvious). So, I just bought an 2OK audio-grade potentiometer and a few phone sockets and wired them as shown above. Whilst this worked OK, I found that the simple potentiometer approach did not give me a sufficiently fine control of the output level to be able match levels easily. What I really need to do is adjust the level within a fairly small range either side of a nominal level.
As I mentioned earlier, domestic Hifi operates at a nominal output level of 0dBu. This is defined as being the level corresponding to an output voltage of 0.775V; all other levels are referenced to this voltage using the following equation:
- L is the level in dBu
- V is the voltage
- Vref is the reference voltage, i.e. 0.775V
From this equation it is easy to work out that an output level of 20dBu corresponds to an output voltage of 7.75V.
So, my attenuator should reduce the voltage by a factor of 10. But remember I want to be able to adjust the level around the nominal desired level, say ± 1dBu. How can I achieve this? Here's the circuit I came up with:
So, how does it work? Well, when the pot is adjusted fully to the "bottom", the minimum output voltage is given by the following equation (2):
Conversely, when the pot is adjusted to the opposite extreme, the output voltage is given by the following equation (3):
- RB is the value of the bottom resistor
- R is the resistance of the potentiometer
- RT is the value of the top resistor
- VIN is the nominal input voltage
- VOUT(min) is the desired minimum output voltage
- VOUT(max) is the desired maximum output voltage
Solving these equations for RT gives the following equation (4):
For my specific case:
- R = 20KB
- VIN = 20V
- VOUT(min) = 0.691V (-1dBu)
- VOUT(max) = 0.870V (+1dBU)
Using these values in (4) gives me a value for RT of 769KB. Plugging this value back into (2) gives a value for RB of 77KB
So, all I need to do is get hold of a couple of resistors with values close to these figures and incorporate them into my attenutator, right? Wrong. I've got to consider impedance as well.
The basic princple is that output impedance should be low and input impedance should be high. As a general rule of thumb, the signal source should have an output impedance at most 10% of that of the attenuator input impedance, and the load (i.e. the amplifier) should have an input impedance at least 10x that of the attenuator output impedance.
For this circuit, input impedance is given by (5):
Output impedance is given by (6):
or (7): [gallery/5127]
depending on how the pot is adjusted.
The resistance values calculated above give an input impedance of 866KB (great!)and an output impedance of between 70KB and 86KB (not so great!)
The obvious way to fix this is to use a lower value pot. For example, using a 1KB pot gives:
- RT = 38.4KB
- RB = 3.9KB
- ZIN = 43.3KB
- ZOUT = 3.5KB to 4.3KB
One way to make a resistance appear lower is to put another resistance in parallel with it. For example, connecting a 1KB resistor in parallel with the pot reduces its effective resistance to 0.95K.
The circuit looks like this:
If I repeat the previous calculations using R = 0.95 I get the following values:
- RT = 36.6KB
- RB = 3.7KB
- ZIN = 41.2KB
- ZOUT = 3.4KB to 4.1KB
The nearest standard resistor values to these are 33KB and 3.3KB and using these values to calculate the actual performance of the circuit gives the following values:
- VOUT(min) = 0.687V
- VOUT(max) = 0.885V
- ZIN = 37.25KB
- ZOUT = 3.01KB to 3.77KB
The Squeezebox has a much lower output level than domestic Hifi; I measured it as 0.44V max (-4.9dBu); the ±. The 1dBu points for this are 0.392Vand 0.494V. Repeating the calculations with these values gives me the following circuit values:
- RT = 67.75KB
- RB = 3.66KB
Notice that RB is practically the same as in the previous example so I can use the same standard resistor value of 3.3KB. If I then create a 66KB resistance by connecting two 33KB resistors in series and add a switch to bypass one of them, I can use the same circuit for both purposes!
Using RT = 66KB and RB = 3.3KB, the circuit characteristics are as follows:
- VOUT(min) = 0.364V
- VOUT(max) = 0.469V
- ZIN = 70.25KB
- ZOUT = 3.14KB to 3.99KB
Here's the final circuit:
I used a spreadsheet to do all the calculations. Email me if you want a copy.