[sdiy] [repost] DAC selection
Paul Schreiber
synth1 at airmail.net
Wed Oct 6 17:14:06 CEST 2004
There were 3 articles I wrote around 9-15-2002, check archives. Here is part 3,
which may be helpful. Note: I am referencing Maxim parts here: you can get *free
samples* off their website if you ever want to DIY a MIDI-CV. I don't have the
other parts, but this should help.
_______________________________________________________________________________________________
Here is the nitty-gritty: picking the right (translate: cheapest!) DAC for the
application.
What you do is 1 simple, easy calculation. You divide up the overall voltage
output you want the
*DAC* to do by *1/2* of the error voltage. This will tell you how many 'steps'
the DAC needs at
+-1LSB INL. Again, we DON'T CARE how many steps the INPUT is, we only care what
the DAC ACCURACY
is!!
Let's start with the following "design document":
Output Range: 0 - 5V
Error: 1mv
So, the number of DAC steps, at a specified INL (this is on the data sheet) of
+-1LSB is:
5/.0005 = 10,000 steps, and each step is +-1LSB INL (this is a function of laser
die trimming at
the manufacturer).
OK, so what DACs have 10,000 steps? Well, the DACs are *binary weighted*, so:
12 bit: 4096 steps
14 bit: 16,384 steps
16 bit: 65,536 steps
We are immediately hosed with a 12-bit DAC, so the next in line is a 14-bit. I
suggest the Maxim
MAX544BCPA, SPI interfaced 8-pin DIP part with a MAX675CPA +5V voltage
reference.
Now, what if we can get a better laser-trimmed part, say +-1/2LSB? Well, let's
look at the
MAX536ACPE, which is a quad 12-bit DAC at +-1/2 LSB. Instead of our 1mv error,
we have (5/4096)
1.22mv error. So, for a multi-channel MIDI-CV, whose DAC output is ranging 0-5V,
and you live
with a 1.22mv error (1.5%), the MAX536ACPE is your part.
But wait! As you are browsing parts, the MAX5541, LOW COST 16-bit part catches
your eye.
Hmmm...the data sheet says this thing as a whopping 16 LSBs of INL error! Can we
use that??!? The
MAX541 has 4LSBs of INL buts it's twice the price. Let's check them out.
In a 5V span, 1 'ideal' LSB in a 16-bit system is (5/65536) = 76.3uv. Therefore,
16LSBs are
(16)(76.3uv) = 1.22mv! Hey, I've seen THAT number before :)
Yes, it turns out this "16-bit" DAC has the SAME ACCURACY as the "12-bit"
DAC!!!! So why
bother??!?
There are several reasons, and one is the dreaded Marketing :)
But, let's say you wanted a -5V to +5V span, and THEN the 4LSB MAX541C grade
would work great! If
you used it over a 0-5V range, you can go nuts and use the 'A' graded (trimmed)
part and get
errors under 300uv (yummmy, MOTM territory....)
Last point: you may find out that it is "easier" to have the DAC span a PORTION
of the total
output, and have additive DC voltages to span octaves. This technique is use in
some commercial
converters. Let's say you have the extreme case of the DAC spans only 1 octave.
What can we use?
1/.0005 = 2000LSBs. So, a 12-bit, DAC at +-2LSBs is fine. In the 'olden days',
there were very
accurate 8 and 10-bit DACs (say trimmed to +-1/8LSB) that could work. But today,
you would get a
low cost 12-bit one.
There is one more factor, and that is a software issue. If you have 7-bits in,
and 14-bits out,
you need a lookup table for the DAC. Also, this wider spread allows for things
like pitch bend,
aftertouch and software LFOs not to have 'zipper noise'.
Well, hopefully this sheds some light on DAC selection.
Paul S.
More information about the Synth-diy
mailing list