How easy is it to build your own Digital to Analog Converter (DAC)? Although you can readily purchase a wide variety of DACs these days, building your own can be very instructive, as the [Sine Lab] on YouTube explores in a recent video with the construction of a discrete 14-bit DAC. First there are the different architectures you can pick for a DAC, which range from R-2R (resistor ladder) to delta-sigma versions, each having its own level of complexity and providing different response times, accuracy and other characteristics.
The architecture that the [Sine Lab] picked was a String DAC with interpolator. The String type DAC has the advantage of having inherently monotonic output voltage and better switching-induced glitch performance than the R-2R DAC. At its core it still uses resistors and switches (transistors), with the latter summing up the input digital value. This makes adding more bits to the DAC as easy as adding more of these same resistors and switches, the only question is how many. In the case of a String DAC that’d be 2N, which implies that you want to use multiple strings, as in the above graphic.
Scaling this up to 16-bit would thus entail 65,536 resistors/switches in the naive approach, or with 2 8-bit strings 513 switches, 512 resistors and 2 buffers. In the actual design in the video both MOSFETs and 74HCT4051 multiplexers were used, which also necessitated creating two buses per string to help with the input decoding. This is the part where things get serious in the video, but the reasoning for each change and addition is explained clearly as the full 6-bit DAC with interpolator is being designed and built.
One big issue with discrete DACs comes when you have to find matching MOSFETs and similar, which is where LSI DACs are generally significantly more precise. Even so, this discrete design came pretty close to a commercial offering, which is pretty impressive.
I’d have loved to hear a side-by-side comparison of DAC8831 vs. the discrete DAC. With its wonky INL and below-commercial-grade DNL, one can imagine that if there is any audible signature associated with the resulting distortion and noise, we ought to be able to witness it here.
(I don’t think I’ll go through the trouble of building one myself just to find out ;))
A simpler way is to build a Kelvin Varley DAC — you don’t need the buffers, and the 2nd string is connected across TWO of the 1st string resistors. When the total resistance of the 2nd string is equal to the resistance of the two 1st string resistors, the 1st string acts like an n-bit DAC.
Monotonicity isn’t guaranteed (e.g. with completely mismatched primary DAC resistors), but it’s easily achieved.
I swear hackaday is tracking my google searches. These articles are tracking me and making great hackaday articles
We actually read your mind! Thanks for attaching those electrodes, BTW. :)