Let’s say you’ve built the Precision DC Voltage Reference described in the May 2009 issue of SILICON CHIP. This provides an accurate 10.000V DC voltage source which is fine for calibrating the higher voltage ranges of a DMM or other meter. But how can you use it for calibrating the lower ranges? That’s where you need to use a voltage divider, to break down the 10.000V to a suitable lower level – like 4.999V, 1.999V or even 199.9mV.
In principle, a voltage divider is very straightforward but in this situation there’s a special requirement: the divider’s division ratio should be programmable with a high degree of accuracy, if the accuracy of its output is not to be degraded significantly from that of the 10.000V reference.
So that’s the idea behind this new Digital Potentiometer; it’s designed to provide a voltage divider with an accurately programmable division ratio over a 10,000:1 range. It will allow you to take the 10.000V reference and derive any lower voltage you wish – from 0.001V (1mV) up to 9.999V – with a resolution of 1mV and an absolute accuracy of ±0.2mV up to 200mV, ±0.5mV up to 1.000V and ±1mV up to 9.999V.
These figures translate to a relative accuracy of ±0.4% at 10mV, ±0.02% at 100mV, ±0.05% at 1V and ±0.01% at 9.9V. This order of accuracy should be quite suitable for calibrating the majority of handheld DMMs and similar instruments.
By the way, because the potentiometer itself uses purely resistive elements, it can be used as an accurate divider for low-frequency AC (eg, below 20kHz) as well as DC.
How it works
In order to achieve this level of accuracy and to make the Digital Potentiometer easily programmable, we have adopted the same “binary switched resistive ladder” configuration used in many linear DACs (digital-to-analog converters). We have used a 16-step ladder because this allows the division ratio to be adjusted in 65,536 discrete steps. That’s because 216 = 65,536, meaning that 16 binary switches have the potential for 65,536 different combinations (0-65,535 inclusive).
Fig.1: the basic form of the 16-step R/2R ladder network (switches S3-S13 omitted for clarity).
The basic form of the 16-step ladder is shown in Fig.1, although only five of the 16 switches are shown, ie, the two lowest switches S1 & S2 and the three uppermost switches S14-S16. The intermediate switches S3-S13 have been omitted for clarity.
This configuration may not look like a conventional voltage divider but it does the same job and has the advantage that the binary “weighting” of each switch increases by a factor of two, as you move up from S1 to S2, S2 to S3 and so on up to S16. So the divider’s output (as a proportion of the input) can be programmed very simply in binary fashion.
S1 has a binary weighting of 1, S2 a weighting of 2, S3 a weighting of 4 and so on all the way up to S16, which has a weighting of 32,768. If we connect this 16-step divider to an input voltage of 10.000V, it is therefore capable of providing an output voltage adjustable in steps of 0.15259mV (10,000/65,535) from 0V to 10.000V, simply by setting switches S1-S16 to the correct binary combination.
So the simple switched resistive ladder arrangement of Fig.1 is quite capable of being used as a precision voltage divider as it stands. But in this simple binary form it would be difficult to program; you’d have to work out the binary number corresponding to the particular output voltage you wanted, in order to set the 16 switches.
Instead, we have used a microcontroller to drive a set of 16 SPDT relays in place of the switches, as shown in the block diagram of Fig.2. This allows you to simply key in the output voltage you want (in decimal) via a keypad, with an LCD readout to show you what you’re doing. The micro calculates the correct binary number to program the divider’s 16 relays to achieve this output voltage – or as close as it can get.