C-field driver

I’m a big fan of simplicity, and the simplest active constant current driver is just a voltage reference, an opamp and a sense resistor:


The reason people usually use the more complicated “Howland” configuration is because they need one side of the load grounded, but we don’t have that problem.

The switch and the extra R2 is to make it possible to change the C-field in order to carry out the adjustment procedures in the service manual.

Going for the 250 setting on the C-field pot, we want 4 {mA} through the C-field solenoid.

If we use a 10 {V} reference voltage, we can calculate R1:

R1 = 10 {V} / 4 {mA} = 2500 {Ohm}

If the voltage noise is one microvolt, the current noise will be:

1 {µV} / 2500 {Ohm} = 0.4 {nA}

Which causes a frequency offset of:

0.4 {nA} * 5e-7 {s/s*A} = 2e-16 {s/s}

With our error budget of 1e-14 {s/s} that allows a max voltage noise:

1e-14 {s/s} / 2e-16 {s/s} * 1 {µV} = 50 {µV}

We want SW1 to change the current to 4.2368 {mA} for the adjustment procedures:

R1||R2 = 10 {V} / 4.2368 {mA} = 2360 {Ohm}

Which means R2 should be:

R2 = 1 / (1 / 2360 {Ohm} - 1 / 2500 {Ohm}) = 42143 {Ohm}

Here is a table for common reference voltages:

  Vref       R1     R1||R2          R2   Inoise     Fnoise  Vnoise(max)
   {V}    {Ohm}      {Ohm}       {Ohm}     {nA}      {s/s}      {µV}
 1.200    300.0    283.019    5000.000    3.333   1.67e-15      6.00
 2.500    625.0    589.623   10416.667    1.600   8.00e-16     12.50
 4.096   1024.0    966.038   17066.667    0.977   4.88e-16     20.48
 5.000   1250.0   1179.245   20833.333    0.800   4.00e-16     25.00
 6.950   1737.5   1639.151   28958.333    0.576   2.88e-16     34.75
10.000   2500.0   2358.491   41666.667    0.400   2.00e-16     50.00

It is obvious from the last column that a high Vref is preferable, with the footnote that the best voltage references are the 7 Volt buried zeners.

7V Buried Zeners

LM399 is a 7 {V} buried zener, with a max tempco of 2 {ppm/K} for the ‘plain’ version and 1 {ppm/K} for the ‘A’ version.

One ppm at 7 {V} is 7 {µV}, so the 35 {µV} Voltage noise budget would cope with at least 5 {K} temperature changes for the ‘A’ version and 2.5 {K} for the ‘plain’ version.

The typical tempco is 0.3 {ppm/K} for both versions, which means that 16 {K} shouldn’t cause trouble.

Together with a good opamp, this could be a two-chip solution, since the opamp can be powered from the GND and +20V supplies.

If that is not enough, the LTZ1000 promises 0.05 {ppm/K} drift which takes temperature entirely out of the picture … at a list price of €40 and some semi-expensive support circuitry. (I’d buy one of the HP3458A reference boards on ebay in that case.)

In both cases one is faced with procuring a 1639 {Ohm} resistor with good tempco. A 2500 {Ohm} and a 5000 {Ohm} resistor in parallel would get quite close.

To not ruin the good tempco of the voltage reference, those would have to be Vishay Z201 (0.2 {ppm/K}) or similar, and they go for around €20 a piece.

If the Howland configuration were used the sense resistor value could be decoupled from the voltage reference, but only at the cost of four expensive and matched resistors.

10V references

Finding a 2500 {Ohm} stable resistor is much easier, that is a stock value, but 10V references have worse tempco, with a single exception:

AD688BQ and AD588[BK]Q are ±10V references based on a buried zener which can be had in grades with ±1.5 {ppm/K} tempco.

One interesting thing about these is that they have two built in buffer amplifiers which can drive 10 mA, so if it wasn’t for the fact that it needs ±15V supplies, it could be a one chip solution.

If one were to redesign the A15 board it would also be interesting that they can provide both positive and negative reference voltages.

The only down side is the price, starting at $50 for the good grades.

And from there the fields gets busy:

REF102CM 10 {V}  2.5 {ppm/K}
REF5010  10 {V}  3   {ppm/K}
MAX6173  10 {V}  3   {ppm/K}
ADR01    10 {V}  3-9 {ppm/K} (depending on package)
AD581L   10 {V}  5   {ppm/K} (non-flat tempco at 30-50 C)
AD587U   10 {V}  5   {ppm/K}
LT1019   10 {V}  5   {ppm/K}
LT1021B  10 {V}  5   {ppm/K}
LT1236   10 {V}  5   {ppm/K}
REF01    10 {V}  8.5 {ppm/K}

Prices generally reflect performance in this space, but there are other parameters than tempco people care about.

I don’t see any obvious choices, but the LM399 looks like a good compromise.

For now I’ll keep using my Fluke732 at 10V and the 2500 {Ohm} resistor I already bought.


A suitable op-amp is a lot easier to find. The important parameter is again tempco, and it would be convenient if it can be supplied directly from GND and +20V.

The low tempco usually means that it is a chopper based opamp, and that means that the noise-spectrum up to 137 Hz should be scrutinized a bit.

LT1007 looks like a possible candidate, but there are many others.