if I had this problem I would do one of the following:
- zero adjustment (output the DAC value which is most nearest to zero and convert with a sensitive ADC as null voltmeter)
- use a LTC1043 for the inversion of the 7V
or a combination of both.
At calibration the "zero" is adjusted. But after a few power cycles it will shift (within 1 LSB of the DAC).
Before I made this design I was thinking about the LTC1043, but I couldn't find the right informations in the datasheet. The absolute value of -1.000000 isn't needed. I build a quick test setup (divide by 2) a while ago and the ratio wasn't exactly 0.5. Therefore, I thought I have done anything wrong or the +/- 1ppm in the datasheet will mean other things, than I expected. Furthermore, I had to create additional power rails. (+/- 15V is too much and even +/-8V is very close to the LTZ1000 output and also very close to the absolute maximum rating of the LTC1043). That led me to the decision with the temperature stabilized VHD200 with 0.1ppm/K tracking (I know it is only typical). The resistance tracking is nearly perfect. On a 6.5 digit meter only the sign changes if I measure before and after the LTC2057.
Is the LTC1043 really better?
I think your formulae is incorrect. It should be
(Vref_pos + |Vref_neg|) * DAC - (Vref_pos + |Vref_neg|)/2 = output .
This depends on the DAC configuration. In my configuration DAC value 0 will output ~vref_neg and DAC value 2^20-1 will output ~vref_pos. Therefore, my calculation should fit.
At the midscale point both Vref_pos and Vref_neg change would influence the output in the same way. One possible way to improve the accuracy near a bipolar zero I can think of, would be to use two DACs - one for the positive side and one for the negative side. It would introduce additional problems of gain matching and adding two outputs together but would gain an additional bit of resolution.
My thoughts are more in a way of using a multilplexer after the DAC to switch between the DAC output directly (0 - 7V), the inverted DAC output (0 - -7V) and GND. The extra bit of resolution isn't that interesting, but twice the linearity is. In a configuration like this the inverting stage will be scaled again and should be fine. Switching the output to "real GND" would be nice, too.
But what kind of multiplexer should one use to not ruin the whole circuit? Is it enough to search one, which introduced less voltage drop than accepted by loading the mutliplexer with the LTC2057 (on resistance) or are there other important parameter for such sensitive circuits?
Thanks for your answers!
Philipp