Friday, September 4, 2009

Oscilloscope Calibrator: Part 2


We left off having reverse engineered the Heathkit IG-4505's easy parts, the clock and frequency divider, and designing and prototyping functionally equivalent circuits. I think this was easy because I like digital logic circuits about 10 gazillion times better than analog circuits, but that is what is next: the amplitude amplifier. Ok, it's not really an amplifier.

Now that we have a nice pulse train of selectable frequency, it'd be nice to be able to calibrate the oscilloscope to correctly read volts/division. So the amplitude of the pulsetrain needs to be converted from TTL 5V levels to 100V, 10V, 1V, 100mV, 10mV, and 1mV.
Here's how the IG-4505 circuit (above) does this. The pulse signal comes into the bottom transistor (Q3), lower left in the diagram below. It drives the rest of the circuit on or off at the same frequency as the pulsetrain. When this transistor is conducting it shorts out the circuit, disabling output current and voltage.

The top transistor (sources from a 120VDC supply. We'll look at the top transistor later, but in short, it supplies the voltage and current to a series of precision resistors.


So what do the resistors do?So long as Q3 isn't conducting, and current is flowing from Q2 through the resistors, they're used to drop voltage in 10X steps from 100V to 1mV. The resistors are 90k, 9k, 900, 90, 9, and 1 ohm, in order from left to right. We have to ensure 100V is present at the 90K resistor, and that the right amount of current is passing through the resistors. If so, the first resistor will drop 90V leaving 10V. The 9K resistor will drop 9V leaving 1V. The 900 ohm resistor drops .9V leaving 100mV and so on.

Constant Current / Voltage

But how to guarantee the 100V at the 90K resistor? We put a 10k potentiometer to drop just the right amount of voltage to leave 100V left over for the rest of the resistors. That means that more than 100V has to be available to the calibration potentiometer. That's where the Q2 transistor, and zener diode, come into play.
A 10k resistor in series with Q2 and a 110V zener diode guarantees that 110V appears across the collector of Q2 to ground. The set of resistors, then, always see almost 110V (less the voltage drop across the transistor and the D2 diode). As you recall the resistors' total resistance adds up to 100k plus up to 10k for the calibration potentiometer.

The 470 ohm resistor biases the transistor, and base is connected to a voltage that is 0.7V below the emitter voltage, due to the D2 voltage drop. I believe this is a kind of feedback. If too much current is drawn through D2, it's voltage drop would increase, meaning less voltage seen on Q2's base, which would decrease collector/emitter current. I think. Please feel free to provide any information you may have. All I know is that with the D2 diode, the current is much more stable with changes in Rtest than without.

So current is approximately fixed, thus the voltages / amplitudes are approximately constant, even with order of magnitude variations in input impedance for whatever is receiving the pulsetrain. Most 'scopes have around 1Mohm impedance. How do I know voltages and currents are approximately constant?

SPICE Experiments

I played around with this circuit in LTspice to see if I could understand it a little better. I converted the circuit to work on 12V and output 10V thru 1mV amplitudes, since most scopes I've ever encountered max out at 5-20V/div.

It uses a 2n2222 NPN transistor and a 10V zener for the reference voltage. Rtest models the input impedance of an oscilloscope being calibrated (or really any device hooked up to the calibrator.

Operating point results for Rtest=1M are as follows. Just about what we want. Voltage is right around 10V. I could get it there by tweaking Rcal further. Current is about 1mA.

V(vcc): 12 voltage
V(ref0): 9.95418 voltage
V(ref1): 0.994523 voltage
V(ref2): 0.0994523 voltage
V(ref3): 0.00994523 voltage
V(ref4): 0.000994523 voltage
I(Rcal): 0.000995518 device_current

It looks like the D2 diode really helps stabilize the current / voltage drop; I'd left it out early on and found current and voltage varied considerably more.

With the diode, the circuit model works beautifully, holding current and voltage within very tight tolerances regardless of massive swings of input impedance of the oscilloscope (Rtest) as you can see from the logarithmic plot of Rtest vs V(ref0) below.

Even several orders of magnitude change in Rtest won't change the reference voltage by more 1%. As long as Rtest stays within 1K to 1M, the reference voltage changes under 0.1% ... not bad!

Rtest V(ref0) % change
1M 9.95418
100K 9.95342 -0.008%
10K 9.95258 -0.016%
1K 9.94639 -0.078%
100 9.90896 -0.454%
10 9.86791 -0.867%
1 9.85833 -0.963%

Most scopes have similar impedance, but in case I want a reasonably regulated signal generator for a variety of loads, this behavior is quite desirable.

Interface With Pulse Signal

The only thing left is to experiment with Q3, the transistor used to switch the voltage through the resistors on and off. All it's really doing is taking the TTL-level pulse signal from the frequency divider circuit and using that to periodically short the current from Q2 to ground.

In SPICE, we can model the pulsetrain as a PULSE type voltage supply. I arbitrarily chose a supply with a 10us on time and 20us period, 5V peak output. I'm feeding this signal into the base of a 2N2222 through a current limiting base resistor (ideally I need to spend a little time calculating to ensure the transistor is in saturation when it is on). Here's the LTspice circuit diagram.

Using transient analysis, I plotted the 10mV and 1mV nodes to demonstrate. Looks like it should work fine. At least in theory!

Et Voila

I can now prototype this circuit, but I'll need a 12V power supply. Fortunately, that's a cake walk to build by comparison to this circuit and I'll cover it in the next article. I'll revisit the amplitude selector circuit and pulling the remaining circuits together in the final article.

Part 1: Signal Generator

Part 4: coming soon


  1. Hi, looks like a bug in your spice model. The top of R7 should go to the collector of Q1. For the life of me I can't work out what Q2 (in the original circuit) is supposed to do. It looks like it might have been intended to be a VBE multiplier to compensate for temperature-induced drift in the zener, but without a resistor between the base of Q1 (in your model) to the bottom of the diode it has no effect. The circuit in your model works because the BC junction of Q1 is forward biased, so you just have a voltage regulator (Vzener + Vbc) at the top of the resistor chain. The voltage stability you saw is just down to Ohm's law rather than any regulatory effect by the transistor and diode.

  2. the google search of [100µW 100 kHz pulse "amplitude amplifier" circuit -opamp] reveals 6 pages & 10 images (Your HTML cannot be accepted: Tag is not allowed: S 2 /Your HTML cannot be accepted: Tag is not allowed: S 1 of which i find "to the topic")
    + irrelevant ::
    ((should go ofline / do the job)) . . . ? from where you get 1ns edge pulse it's 4.5 in datasheets . . . ? Q1.b D2.c magical function ? otherwise 60Ω1pFln9=132fs and below ? yo - it might work (nope i got 1.2V env. & strict P consumption policy - )