DAC Calibration - Page 1
Forum section: electronics / projects

author: ECEdesign
author_rank: Regular Contributor
timestamp: October 09, 2016, 08:15:29 pm
content: I am using a precision DAC, but as with any DAC, there are some errors in the gain and offset. I would like to correct for these errors in the analog domain and was thinking of sending the output through a simple voltage divider using potentiometers but I'm not sure if that is a good design practice. Does anyone have some good example circuits that will help to calibrate the output of a DAC to correct for their inherent gain and offset errors?

author: Kleinstein
author_rank: Super Contributor
timestamp: October 09, 2016, 08:38:44 pm
content: If possible I would correct or at least adjust an offset in the digital domain.For the gain adjustment I would prefer adjusting the reference voltage instead. So have the adjustment just before the DAC instead of behind it. If cause this also depends on the type of DAC or circuit and the needed speed.Generally pots have a rather poor stability and large TC. The ratio is generally more stable than the absolute resistor values. So it is best to avoid them or at least use them in a way they have only a limited influence. One way is to have the trimmer across the full voltage and than combine the main signal from a low resistor with the small adjustment part through a large resistor from the trimmer. This way one can often use more common trimmer resistance in the 10-100K range.

author: ECEdesign
author_rank: Regular Contributor
timestamp: October 09, 2016, 09:50:23 pm
content: Yes, I have read about adjusting the voltage reference. That might be a good idea. For my application, the DAC will be controlling a current source so it would be good to have the zero command be as close as possible to 0V. You can't calibrate for zero-scale error in the digital domain so maybe the Vref adjust is a good solution.

author: rstofer
author_rank: Super Contributor
timestamp: October 09, 2016, 09:53:44 pm
content: I would certainly want to make the corrections in the digital domain. However...If the calibration can be as simple as a straight line function (y=mx+b) you can fix it with an op amp and 4 resistors. See Section 4.3 of "Op Amps For Everyone"http://www.cypress.com/file/65366/downloadIf the calibration isn't a straight line function, I would think you would have to solve it in the digital domain by way of a lookup table and interpolation.

author: AndyC_772
author_rank: Super Contributor
timestamp: October 10, 2016, 06:49:51 am
content: If it's the current which needs to be precise, then personally I'd be aiming to measure the current accurately, then compensate in the digital domain. That way you're compensating for both the errors in the DAC output voltage and in the relationship between voltage and current for your current source.Can you measure the current as part of a one-off calibration process using an external meter? Or would it require something built in to the design?

author: Alex Nikitin
author_rank: Super Contributor
timestamp: October 10, 2016, 08:40:50 am
content: Quote from: ECEdesign on October 09, 2016, 08:15:29 pmHmm, my first question would be - how accurate do you need your DAC to be? There are someveryaccurate DACs available, like the AD5791 for example.CheersAlex

author: Buriedcode
author_rank: Super Contributor
timestamp: October 10, 2016, 03:42:15 pm
content: For 8-12 bit DACs with sample rates <1Khz, I've used half the Vref voltage I need (often 2.048V) and a non-inverting opamp buffer with low offset voltage, and a low value pot in series with precision resistors - to give a gain centered around 2.Offset was done in the digital domain, gain in analogue. As one often needs an opamp buffer after a DAC anyway you're only really adding two precision resistors of the same value, and a multiturn trimmer that can adjust the gain by +/-4 LSB. Self calibrating with an ADC of the same resolution, whilst doable, seems a bit silly as now you're coping with two sources of error.Trimmers have their own issues but for the most part the changes due to drift and temp will be ~1LSB. Its not ideal, but saves having lookup tables or having to do digital processing for every sample to make the adjustments - aside from adding/subtracting the offset. I've been quite impressed with the MCP4921 even though some seem to think they're awful DAC's, its cheap and cheerful and just dandy for setting DC offsets.As for higher sample rates, or higher resolution? It all depends on the application. For setting the current of an LED, no real point in going >12-bit. But if its going to be part of something very expensive, or something with 'consequences' then the above probably isn't wise.