As some my other posts show, I have been spending a significant amount of my spare time over the past few months on audio measurements related stuff. This included a low distortion oscillator, a notch filter to go with it, as well as modifying the EMU 0404 USB to extend its performance. One other item that has been in the works for quite a long time, is a measurement pre-amplifier. The motivation for this work is quite straight forward, I needed to find some way of turning the sound-card I’m using into a versatile measurement tool. The biggest limitation with sound-cards is having a high voltage measurement capability, as most audio amplifiers put out voltages that are significantly higher than what you can feed into a sound-card. Indeed, this is what most people use such instruments for. However, this is actually just a portion of what could be achieved with such a pre-amplifier.
This post will the first part of a series of posts that will describe my take on a measurement pre-amplifier. I will describe that motivation (requirements), the circuit design and implementation, measurement results, and more. I will try to make this as informative as I can, and share some of the reasoning behind design decision. I think this can be of value for both people who would like to understand the circuit better, and people who would like to modify the circuit to better suit their needs.
Now that the introduction is over, we can dive into a bit more details about the actual reasoning behind building a “pre-amplifier”, as opposed to a simple voltage divider. In theory, a simple voltage divider is all you need to get the voltage levels down to a safe operating level for the sound-card. This is actually fairly straight forward, and is a widely used technique. However, there are some trade-offs in such a case. On the one hand, you want to have something with as little loading on the DUT as possible, so you want to use high value resistors. On the other hand, having high resistance will both increase noise, and more importantly, limit the loading of what comes after it. In our example the load would be the input of the sound-card, and perhaps some cable along the way. This trade-off could limit BW if you want to have high input impedance, which is not much of a problem for most amplifiers, but could be more problematic with high output impedance sources (perhaps measuring between stages of an amplifier).
More alarmingly, a simple voltage divider could be quite a risky tool. If you accidentally use the wrong division ratio, you could still put too high of a voltage on the sound-card input. This in turns calls for some over-voltage protection, or voltage limiting with non-linear components. These again call for lower impedance resistors to be used to have lower distortion due to the non-linear limiting components.
To offer an additional degree of freedom in the design, and decouple the resistor value from some of these limitations, an active pre-amplifier is preferred. This can have minimal loading of the resistive divider, yet safely drive heavier loads (resistive or capacitive). Once you go to an active circuit you will obviously need some power-supply (PS) for it. Actually, these two parts will make up a very simple (and quite versatile) measurement pre-amplifier, and there are instruments that do this.
However, if you are going to have an active pre-amplifier, and a PS, and you are going to put it all in a nice case, why not go a bit further? Why not add additional functions such as amplification to extend measurement to lower voltages, line drives/receivers to work with both SE and BAL loads/sources, and even RMS voltmeter? The last one might seem a little strange at first, but it can be very handy. Sound-cards typically don’t have absolute value measurements, and the amplitude can change significantly with the setting on the software/driver/panel of the sound-card. To know the exact amplitude of the input signal you could use an external voltmeter obviously, but it makes a lot of sense to have one integrated into your pre-amplifier. One excellent example is Pete Millett’s Sound Card Interface project. I was looking for something like this for my own measurement needs, and this is how I came across Pete’s project. However, some of the things I wanted to be able to measure weren’t supported by this circuit, so I’ve decided to make one myself, despite this option being significantly more time consuming.
I was looking for something that would be as versatile and as easy to use as possible. This meant it must support both SE and BAL sources and loads, including high voltage BAL amplifiers. For instance, the B22 amplifier I’ve posted about has a BAL output for the loudspeakers port. Additionally, since I was already building an amplifier with several ranges, why not have extremely low voltage ranges and use low noise components to extend its ability to measure PS ripple/noise? This means that a low noise internal PS is needed, or else it might dominate the noise performance of the pre-amplifier on these more sensitive ranges.
Now that the motivation and requirements are done, lets start going over the circuit schematic. First is the PS section:
The PS starts with a DC jack for input voltage (5VDC-9VDC). I’m using a simple USB->DC jack cable to power it from a USB power brick which I use for most of my projects. This is followed by a resettable fuse and power switch, along with some bulk capacitance, an LED to light up when the device is active, and a zener diode for voltage limiting/reverse polarity protection. An isolated DC-DC module is used to generate a +/-15V rail at the output to power the instrument. I have included an option for a shielding cage around the DC-DC module in case it will inject too much noise into the circuit and limit performance on the sensitive ranges. The +/-15V rail is then filtered by a CRC filter which has a few 100’s of mV drop over it. This is followed by low noise regulators to generate a +/-12V supply to power the components for the signal path. An additional optional regulator U11 is included to drop the voltage to 5V for the panel voltmeter I am going to use. If needed, this regulator could be replaced with a different voltage variant, or bypassed completely via R70.
We can consider the parts used and circuit topology in a bit more detail. The DC-DC module used is capable of supplying 100mA on each of its output rails, which is more than sufficient for this circuit. I has a switching frequency that is significantly higher than the audio frequency band, which is desired in this application. It must obviously be isolated so that we limit noise from the power source (USB brick/laptop/etc) from coupling into the measurement. The CRC filter following the switcher is very efficient at removing ripple and noise. The first capacitor will limit ripple and noise from the switcher, and the RC filter after it will add a pole at 20Hz. The few 100’s of mV dropped on this resistor aren’t significant for this application, yet they allow significant reduction of switching noise before feeding into the regulators. This is useful as the ripple rejection of the regulators will drop with frequency, so the RC filter will compensate for this to have negligible ripple at the input of the regulators. The capacitors used here must not be too large, as the switcher used can only drive 1000uF on each output.
The additional 5V regulator used for the voltmeter isn’t mandatory, and can be bypassed. However, I planned on using a panel voltmeter that has a very small internal regulator, and I was worried it might get too hot when operating from a 15V rail. Therefore I’ve included this 5V regulator to bring it closer to the 3.3V rail of the voltmeter’s internal LDO.
Input Signal Path:
Now lets move to the heart of the pre-amplifier, the signal path for the external signal being measured. As with the PS section, I will first describe briefly the flow of signal through the circuit, and then I will go into more detail about each portion.
The signal enters through BNC connector J2, where it first meets a couple of switches. These switches are used to ground/float the negative input terminal (can be very useful, for example for eliminating noise on a floating DUT), and choosing the input signal source (external, or short to the output signal path which will be shown later). This then passes through coupling capacitor to strip down any DC component that might be present. This follows by a resistive divider with a X1/X0.1/X0.01 (0dB/-20dB/-40dB) ranges, followed by some input protection, and only then enters the first active stage. The first stage can be set for a gain of X1 or X10 (0dB/20dB), feeding an additional differential gain stage with a gain of X0.5/X5/X50 (-6dB/14dB/34dB). Finally, this enters the line driver IC with a gain of X2 (6dB) which drives a combo connector (1/4″ TRS and 3pin XLR), in parallel with a voltage limiting circuit. Overall, the gain can be set to 6 different values of X0.01/X0.1/X1/X10/X100/x1000 (-40dB/-20dB/0dB/20dB/40dB/60dB).
Now lets go into a bit more detail about the components selection and topology used. The coupling capacitors at the input should be rated for the maximum DC voltage expected. I went with 400VDC as this meets everything I have done to date with valve amplifiers, but you might want to go higher if your needs call for it. This is followed by a resistive divider with a 100K input resistance. This means that the output resistance of the divider is ~9K at its peak. I have used multiple resistors in series for the high voltage portion of the divider to limit the voltage and power over each resistor. The power is kept much lower than the safe limit to minimize distortion at low frequencies due to self heating of the resistors which is modulated by the input signal amplitude. This will be a good place to mention that I’m a fan of SMD (Surface Mount Device) parts, and prefer to use them over TH (Through Hole) parts. They take up less room, and don’t cause holes in copper floods on other layers. Therefore almost all parts I use are SMD, with a few exceptions, such as connectors when the added mechanical strength is desired. The range selection is achieved with relays as can be seen in the schematic. This has a few potential advantages in my view, albeit at a somewhat higher BOM cost. By placing each relay where it is needed, there’s no need to route potentially sensitive signals to the range selection switch. Additionally, by using relays, which will de-energize when the unit is powered off, the pre-amplifier is designed to default to the highest voltage range in this case. This means there is minimal chance of damage if something is connected while the unit isn’t powered on.
Lets move the the input protection circuit that is located after this resistive divider. This is comprised of a 470R resistor in series with a 50mA resettable fuse (~30R nominal resistance) and then connects to the input of the first stage amplifier, in parallel with the voltage limiting circuit. A significant part extending the BW is minimizing the capacitance at this node of the input to the first stage amplifier. The resistive voltage divider has an output resistance of 9K at the 20V range (this is the worst case), lets sum it with the 470R resistor, and round up to 10K. Therefore we must make sure we use a voltage limiting circuit with minimal loading (capacitive and resistive) and minimal non-linearity for the voltage range of interest. R71/D8/R72 create a DC voltage of +/-5V above/below D8 accordingly. Therefore, as long as the signal at the inputs to the first stage amplifiers is within +/-5V diodes D3/D4/D9/D10 aren’t conducting, and have minimal capacitive loading. D8 and D5 offer protection for both differential and common voltage stress (accordingly). If a differential voltage of >10V is present, depending on the polarity, D3+D10 or D4+D9 will conduct, and limit the differential voltage at the input to the first stage amplifiers. If a significant common voltage is present at the input to the amplifiers, either D3+D4 or D9+D10 will conduct, and current will flow through D5 to GNDA node. In case of extremely high voltage that will cause significant current flow in the protection circuit, the resettable fuses will heat up and increase their resistance to limit the current. This will return to normal after the fault has been removed the these fuses can cool down back to ambient temperature.
Now we enter to the first stage of amplification. This amplifier must have high input impedance with low input bias current and noise, otherwise it will cause significant noise and offset is certain operating ranges. However, this amplifier sets a lower limit on the overall input noise density of the pre-amplifier, and must therefore be low voltage noise variant. Unfortunately, there is a clear trade-off between these two requirements. One relatively new part that seems to have a reasonably low input voltage noise while having negligible input bias current is the ADA4625-1, which I’ve opted for. Using a relay, this stage can be set to either a gain of 0dB, or 20dB. Since we wish to limit noise in the most sensitive voltage ranges, I chose low value resistances around this first stage in both the feedback loop, and the input protection circuit. These values offer a good compromise between protection and noise contribution, so that noise contribution from the amplifier and resistors is well balanced. The input referred noise density on the 2mV/20mV ranges is calculated to be ~7nV/rt(Hz) which is sufficiently low for measurement of most low noise regulators (but not all). The first stage feeds another stage that uses the OPA1632 (diff-in to diff-out), and can be set in 3 different setting for a gain of -6dB, 14dB, 34dB. Small bypass capacitor (C16/C17) are included in the feedback network to help with stability in the higher gain settings (200mV range or lower). These capacitors will limit the 3dB BW for these ranges to ~100KHz, which is sufficient for audio applications and the standard BW for noise measurements of regulators. If you feel this isn’t enough, you can use lower capacitance (down to ~33pF could potentially still work well), but be sure to check for stability issues on the lowest range if you do so. Finally, we enter the last stage which is the line driver IC. I’ve opted for the THAT 1606, which has a 6dB gain, which is why I’ve used -6dB for the stage before it, to have a total gain of 0dB in the input signal path. This line driver IC is actually the dominant noise source for the 2V/20V/200V ranges, which is why I’ve considered replacing it with a stage built around low noise OpAmps. However, I’ve eventually decided to go with a dedicated line driver due to its advantages. Additionally, since the overall noise in the 20KHz band is still sufficiently lower than 0.001% of the 2V range, this should be sufficiently quite for practical applications.
Finally is the output voltage limiting. This is obviously optional, and could be omitted if desired. I’ve decided to implement it as an optional addition on-board, and use it in my own build. The topology is actually quite similar to the input protection circuit, with 2 modifications. First, it uses an integrated bridge rectifier instead of discrete diodes. This results in less components to solder, and higher power handling of the diodes, but higher capacitance than the diodes used for the input protection. Since the output is driven by a low impedance line driver, this is acceptable which is the reason it was used. The second change has to do with the way the voltage limiting zener diodes are connected. In this part each of them is connected independently with relation to ground, to have an absolute limit relative to GNDA. At the input protection this was implemented somewhat differently so that hard clipping won’t turn on even if a few volts of CM voltage are present there. The output voltage limit will start clipping above 2Vrms(SE) or 4Vrms(BAL), as the zener diodes used are of a high power low voltage type and therefore don’t have a sharp knee in their transfer function. Hard clipping will kick in slightly above that at ~2.5Vrms(SE) or 5V(BAL). Different value zener diodes can be used to set limits to different value.
You have probably noticed there are a few “OPEN” resistors in the schematic such as R36, and R8-R15. These aren’t meant to be populated, and are only there as an option for other input circuit topology (intended for SE operation only) in case it is desired. Additionally, R50 is of relatively high value, and is therefore of minimal affect on actual performance. It is included in the schematic to have as balanced of a load on U5 as possible, but in reality it can safely be omitted.
As I’ve mentioned earlier, it is very useful to have a voltmeter included in the pre-amplifier. While for most tests people typically use a single tone signal, it isn’t always the case. Therefore, it is highly desired to have a True-RMS (TRMS) meter. I’ve opted for a TRMS->DC converter on board, with a panel mounter DC voltmeter. The exact voltmeter used isn’t too important, as long as it can accept the voltage expected at its input (2V max typically). I have opted for one of these 33V meters that can be found on eBay/AliExpress/etc. They are cheap, and have a bright display. However, since the interface to it is a simple 3 pin header with power/ground and a DC voltage to be measured, almost every other meter could be used.
The TRMS meter portion of the circuit is shown below. It is fed from one of the outputs of the second amplification stage (OPA1632).
The TRMS conversion is built around an AD737, with gain adjustment possible by RV1. The DC signal is then amplified to be in scale with the input, and inverted for appropriate polarity for the meter by U10. RV2 offers offset trimming, although it could probably safely be omitted unless you are looking for an absolute 0V offset voltage.
Output Signal Path:
Since we are already going to have a pre-amplifier for the input signal, why not re-use the same infrastructure (case + PS) and have the output signal from the generator (sound-card or something else) pass through it as well? This will make it more user friendly as all the signals will pass through the same instrument, which will both make it easier to organize and control, and allow some additional functionality.
Again, a combo TRS/XLR connector is used, this time for the input to make it easier to connect to other equipment and different sound-cards. An OPA1612 is used as the input buffer which is meant for nothing more than increasing the input impedance. This stage could be modified in two different ways which the PCB will support. The first option is to add gain around this OpAmp, with the default value being X1 (0dB), but it could be set to higher values if desired. The second modification option is to omit the OPA1612 and use R52/R53 to bypass it and connect the input jack directly to the line driver IC. This will result in an input impedance of ~5K instead of 100K in the default state of the circuit. The output is driven by another THAT 1606 which has again a X2 (6dB) internal gain (so the overall gain of this path is 6dB). It drives the output in a similar way to the schematic seen earlier with a combo TRS/XLR connector as well as a BNC jack. SW5 can be used to ground the negative output terminal to signal ground (GNDA) if needed. The TRS/XLR provides a signal ground in addition to the differential output, which could be desired with some DUT’s. An optional voltage limiting is supported just as in the schematic of the Fig. 2 to reduce the change of damage to devices connected down the chain in case of a failure. The voltage will start clipping at 2Vrms(SE) or 4Vrms(BAL), just as in the previous schematic.
Using this “source buffer” part of the pre-amplifier (output signal path), while not strictly needed, can be beneficial. For instance, SW3 located at the input of Fig. 2 can be used to switch between the BNC input signal and the output signal of this portion of the circuit. This offers an easy way to monitor the signal generated by the source by a simple push of a button without connecting/disconnecting cables.
Last but not least, we need some way to switch ranges. The relays obviously have their own coils that must be driven, with a reverse diode to provide a path for the current to flow when the relay is being de-energized. We also need a switch that will be used to select the input voltage range. Due to the way I chose to implement the board and the case I’m using, this rotary switch is placed on its own board connected by an 8 pin cable.
In Fig. 6 we can see the control coils for all the relays, the header to connect to the daughter board, and a few mechanical holes and test points. J16/J17 are solder jumpers to choose what node is shorted to the case (and the optional shield of the DC-DC module). The two options are either the ground of the signal (default) or the ground of the PS.
The daughter board has a matching header to connect to the main board, a 2P6T rotary switch to select the range, and 6 LED’s to have a visual representation of the range being used. Diodes D18-D26 are simply used to implement a basic logic (OR) function to enable every relay in the ranges it is needed. You will note that the relay’s control is taken from GNDA to the (filtered) -15V supply (actually closer to 14V under full load). This is done to have a more balanced current draw from the two rails of the DC-DC module, as the panel voltmeter is powered from its positive rail and draws ~30mA.
The complete schematics of the circuit in PDF format with some annotations can be downloaded using the link below.
As stated early in this post, this is just the first in a series of posts that I will share about this project. I hope the amount of detail I go into will be of interest/value to readers who will be able to both understand the reasoning behind the design decisions, and easily adapt it to their needs if needed. In the next posts in this series I will cover the board layout considerations, as well as measurement results of the different performance metrics such as THD and input referred noise density.