Lennard Electronics Ltd
Weighted R | R-2R | Resistor Divider
How it works:
The Op Amp is simply a summing amplifier.
However, the difference here, is that the value of the resistor depends on it's bit position, and increases by 2^n from the MSB down. So, if the first Resistor is 10k, the next must be 20k, then 40k, 80k, 160k, etc. If the resistor values are not accurate, the DAC's output will miss represent the Digital input. My circuit uses 1% metal film resistors purchased from Jaycar, to try to make the output as accurate as possible. The LM358 is supplied with +/-10Vdc.
- Low component count
- Accuracy dependent on closely matched resistors, and gain.
- Resistor ratios increase vastly as more bits added.
- Impedance of each input is different, and therefore loading of the digital gates will affect voltage in and accuracy. However, this can be overcome using the circuit below:
Here's a graph of the results showing theoretical output and actual output. Fairly linear results.
How it works:
The LM336-5 and the other Op Amp in the LM358 package create a buffered +5V reference.
The Digital Input does not suffer any impedance problems with this design, as the digital inputs are driving high impedance control lines for the 4066 Quad Bilateral Switch, rather than the resistors themselves. The resistors are connected to the Buffered 5V reference when a logic 1 is applied to the 4066 control line for the switch the resistor is connected to. As the Reference voltage is buffered as well, then there are no errors introduced due to loading when a resistor is connected to the reference via the 4066 switches.
Theoretical voltage: There are 4 bits of data, therefore a maximum of 16 states. As the maximum voltage we want is 5V, then the resolution of each digital value is 5/16 or 0.3125V.
NOTE: The circuit doesn't show it very well, but a logic 0 should be a connection to ground. As this is a current summing circuit, an open circuit input will not appear as a logic 0.
- Impedance not a problem
- Direct voltage output
- The more bits you have, the higher the number of resistors needed
- eg - 4 bit = 16 resistors, 8 bit - 256 resistors, 10 bit = 1024 resistors