Why am I doing this?:
I'm waiting for delivery of my Keysight 34461A 6.5-digit digital multimeter (DMM). I got to thinking that this would be the perfect time to build a precision voltage reference to check the DMM for parameter drift. This is a bit daunting. The voltage accuracy of the meter is specified as:
After 1 year the meter should measure a 100mV reference with an error of less than ±8.5µV, 1V±47µV and 10V±1mV. The real question is which is correct -- the meter or the reference?
Wandering through the reference wilderness:
There is a lot of passion about this subject. The absolute best ever reference is a Josephson Voltage Standard, but expect to pay ~$300k for one.
The next best thing is a heated buried zener diode, ala LTZ1000. This voltage output of the diode can hardly be called a reference since it is usually somewhere around 7.1 V. You don’t build one of these for accuracy. Its claim to fame is low temperature drift and incredible stability (i.e. it doesn’t change much with time). But the LTZ1000 is a bit pricey as well — around $60 just for the hermetically sealed metal can that encloses it. And the surrounding circuitry is a nightmare of concern. Not for me with just my lowly 6.5-digit DMM.
After you discard the top two, you’re left with a bazillion choices in a more reasonable price range: $1-$12. The problem is to choose wisely. In order to do that I had to decide what is important for my purposes. Here’s a list of primary specifications:
- Temperature drift. How much is too much? The other factor is how does the drift change when the reference voltage is trimmed, which I intend to to. Really good drift is 1ppm/C, but you pay dearly for it. <10ppm/C is pretty common and cheaper. I figure that the temperature in my shop varies from 50°F (10°C) in winter to not more than 80°F (27°C) in summer, for a total range of 17°C. That’s not a lot, but with 10ppm/C drift the voltages vary 0.017%, or 1.7mV @10V. That’s a bit more than desired.
- Stability (or Aging). This is the biggy. The lower the better. Specifications range from 10ppm/1000hrs to 100ppm/1000hrs. No design tricks to fix this.
- Noise. This is a big deal if you are designing a reference for a data converter (ADC or DAC), but I think this doesn’t matter in this application because the DMM filters the input and averages many readings to obtain a good result. Any noise above 1 Hz should disappear.
- Line regulation. All of the specs are pretty good: usually < 5ppm/V. This translates to an output variation of 5µV of change at the output for every 1V change on the supply.
- Load regulation. Usually in the range of 10-30 ppm/mA. Doesn’t matter. The 34461A has a highZ input that puts a negligible load on the reference output. Even the 10MegΩ input resistance of a lower grade DMM won’t be of any significance.
Other Stuff to Worry About:
- Temperature effects on the other components can destroy the integrity of the reference. Temperature drift of discrete resistors is not guaranteed to match. Discrete resistor tolerances below 0.1% get very expensive, along with tempcos less than 10ppm/C.
- Using an amplifier to generate a separate reference, either higher or lower in value, incurs offset errors and offset drift, resistor matching tolerances and drift. Also possible loading effects on the reference source.
- Thermoelectric noise in electrical connections of dissimilar metals. This is caused by temperature differentials between circuit connections that generate small voltages. The trick is to use metals (like gold) that don't tend to generate much potential, or keep the temperature of the entire circuit the same value.
- Kelvin connection at important junctions to prevent unwanted errors induced into circuit traces.
- I'm sure I'll be adding to this list as the design progresses.
My Bright Idea:
After wading through EEVBlog forums, reading ancient articles about reference design, and reading countless voltage reference component data sheets, I came to one overriding conclusion: It's all about temperature! If the temperature variation went away, there would be very little challenge left: circuit layout effects and stability. This is, of course, the trick that the LTZ1000 uses, but on a component level scale.
I am thinking of applying it to the entire unit. If everything inside the box was the same temperature, it would not matter how good the temperature performance of the component is, or the tempco matching, or the thermoelectric voltages in the connections. If the box never varied more than say 1°C then all of that stuff can be trimmed to nearly zero.
The only remaining important reference characteristic is then Stability: the lower the better.
How am I going to do this? Add a uniform heater under the main PCB to generate around 100°F constant temperature, evenly across the PCB. Then insulate the two PCBs inside the box, preventing temperature differentials inside the box and helping to keep the inside temperature at the design value. So now the electronic design must include the mechanical design in order to succeed.
The Current Design Approach:
There are three separate voltage references -- all of them will be trimmed as close as possible to what the DMM thinks is the correct value. The 100mV and 1V references are derived from these references.I could have used an AD584 or AD588 to generate at least two of the required reference voltages, but I have my reasons: 1) I think that the derived reference voltages will have worse performance than the primary reference (due to amplifier and resistor matching errors), and 2) I kinda wanted to see for myself how these wonder chips would perform in the real world and directly compare them in the same environment.
For the 10V reference I originally chose the ref102. I replaced the ref102 with the LT1021-10 (they are pin compatible) because it has better aging specs and better initial tolerance. The ref102 has a separate NR pin to reduce the noise with an external capacitor (which I claimed above did not matter.) The stability of the LT1021C is better than the ref102c -- 15ppm/1khr vs 20ppm/1khr.
The 5V reference is the LT1021B-5. The trim is a bit wonky due to the addition of the 1N4148 diode to compensate for temperature. And the data sheet states that the tempco will be degraded by a trim, but declines to indicate the degree of degradation. (See my dilemma?) Stability is specified as 15ppm/1khr.
The 2.5V reference is a ref5025A-Q1. There are several flavors of this part, but I chose the version with the best stability. I gave up low noise and tempco for improved long-term stability. Can you believe the TI datasheet? Maybe not.
The 1V reference is a 1:5 resistor divider from the 5V reference. I will probably choose to trim the 5V reference in order to get 1.000 ±0.1mV between 1VP and 1VN. The resistors are 20KΩ 0.1% 25ppm/C tempco. This will be the proper reference voltage for the 34461A DMM when set to the 1V range.
The 0.1V reference is derived from the 2.5V reference by a resistor divider. I came across an eBay vendor selling 20kΩ 0805 resistors with 0.1% tolerance, ±25ppm/C. Digikey wants $1/each. I got them for $0.04/each from eBay. The divider uses 25 resistors in the top stack to make an equivalent 20kΩ resistor. There are 24 resistors in the bottom stack to make an equivalent 833.3kΩ resistor. My fat finger estimation of the overall tolerance of this resistor divider is 0.0143%(max)-- seven times lower than 0.1%. The distribution is Gaussian, so I figure it will be better than that.
The input voltage source is a 15V wall wart that can provide at least 10W of power. This should not be hard to find.
Lastly, the opamps surrounded by some passive R's and C's is a temperature PID controller. The ref5025 IC has a TEMP output to indicate the internal temperature of the component. It is claimed to have a relationship equal to:
Temp = 509 mV + 2.64 x T(°C)
The output of the PID controller drives the gate of a power MOSFET that generates heat from the heater PCB. If all goes as planned the PID controller should maintain the internal temperature of the container at 113°F(45°C) and the effects of temperature drift should diminish.
The PCB layout:
Here's the top layer of the PCB:
The 1:25 resistor divider occupies the entire center of the board. I devoted two logs to just the voltage divider so check them out.
The 5V reference is in the upper left corner. There is a slot cut out of the PCB to relieve stress and the LT1021 sits on its own little PCB that is cantilevered off of the main board. All the connections to GND and VOUT are kelvin to prevent any interaction. The GND connection for the 5V reference is a single via to the ground plane very near the GND pad of the LT1021. The LT1021 will use a socket to avoid errors created by soldering the component into the PCB.
Ditto the above for the 10V reference in the lower left corner.
The 1:5 resistor divider for the 1V reference is in the middle on the left side. The metal traces connecting the top and bottom of the divider have the number of squares in the same ratio as the divider resistance ratio.
The 2.5V reference is placed in the lower right corner with another cutout for stress relief. The 2.5V reference is complicated by the connection to the 0.1V resistor divider. There is a large copper pour to create a large pad for all of the kelvin connections to GND. There is only a single via to the ground plane to connect the reference and all associated 2V5N connections. I think that I got a bit carried away with kelvin connections because even the capacitors are using kelvin connections.
The middle right side is the PID temperature controller. There is nothing special about the way this was laid out, but the connection of R60 to 2V5N is kelvin.
The top right corner contains the input power supply filter. The 10x22mm 1000µF radial capacitor is laid on its side and must not touch the reference IC at the left corner. I expect to use hot glue to keep this monster in place.
There are no large currents on this board so the trace widths are near minimum, except for the large trace widths in the resistor divider.
The bottom side is not very interesting except for the serpentine connection to the resistor divider.
It's pretty easy to generate heat. The purpose of the heater is to provide even heat beneath the reference board and try to maintain a constant temperature across the reference board. The heater is just an array of resistors driven by an array of FETs.
I decided to split the resistors into the source and drain of the FETs to keep the gain to a minimum while still allowing the FETs to drive the full supply voltage across the resistors. Each of the 9 resistor columns will generate a maximum of 341mW for a total of 3W. This should allow the heater to drive the enclosure to 33°C above the surrounding ambient. The 2512 resistors are rated for 1W, and I calculate that the thermal resistance is 80°C/W, so they will not get more than about 5°C warmer than the board itself. Each FET will have a maximum dissipation of 85mW, with a similar thermal resistance of 80-100°C/W, and they will rise a maximum of 8.5°C above the board temperature.
The layout follows the schematic exactly.
The heat will concentrate where the FETs line up on the board, but since the top of the board will be facing away from the reference board I'm hoping there won't be much of a gradient. If there is a gradient it will be near the center of the reference board where no sensitive circuitry resides.
The heater is sort of a crap shoot. I ordered boards and paid for fast delivery because I need to test out the breadboard of the heater PID control loop, and make sure it works, before ordering PCBs for the reference circuitry.
The Current Reference:
The requirements for the current reference are a bit more relaxed than the voltage reference: 0.07%, or thereabouts.
I figured that since I was going to the trouble to make a voltage reference that a current reference wouldn't be that much more difficult. Well...yes and no. It's the same difficulty, but different concerns. I came up with a circuit approach that I think will do the job. There are three current references: 10mA, 1mA, and 100µA. This will cover my most used ranges for the projects that have historically been of interest to me.
In addition to worrying about microvolts there is the additional worry about pA of stray currents. The components are a bit pricier since the design must rely on the absolute error of a component instead of the relative matching error. I went to Digikey to find the 0.01% tolerance resistors. I got the cheaper ones -- only $7/each instead of $25/each for 1ppm/C drift.
The current from each terminal is determined by the accuracy of the voltage reference -- an LT1021C-10 trimmed to 10V ±0.1mV -- as well as the absolute tolerance of the resistor -- 0.01% in this case. If you use opamps with low Vos and Ib, then those errors can be reduced to the point where they're negligible. If all goes well then the accuracy of the current reference should be twice as good as the DMM.
I'm not planning to regulate the temperature of this board. It should meet the less strict requirements over the range of temperatures expected in my shop environment.
The top layers of the PCB show the guard rings placed (on both sides if there are through-holes) around the node that are sensitive to leakage currents. The large holes for the current output terminals are for test pins to make it easier for the meter to attach probes.