DIY DC Calibrator (Valhalla 2701C inspired) - Page 1
Forum section: electronics / projects

author: fenugrec
author_rank: Frequent Contributor
timestamp: April 27, 2021, 04:31:35 pm
content: I was going to post this in Test Equipment, but until I actually build something I don't think it deserves to be in there !I'm starting this thread to document my layman's analysis of parts of the Valhalla 2701C DC calibrator that will guide my design for a DIY imitation (with generous amounts of corner cutting); and in the process seek input from the analog designers and enthusiasts here for the many points beyond my skill and experience.In my next post I would submit my speculations and deductions based on the 2701C schematics, for corrections and additions.But first, an outline of where I'm going with this:*********************GoalsMain goal is to not end up in a feature-creep (or voltnut !) spiral before ever building the first proto. Easy enough !Usage scenario would be a kind of transfer standard between my best DMM (5.5digit) and other instruments such as oscilloscopes and inferior DMMs.- USB-TMC or a simple LCD+encoder UI depending how I feel.- Isolated output- max 20-30V range; output polarity switchable via relay. No current mode for the moment. No plugins/expansions/multi-channel etc.- Accuracy/stability : "honest effort with simple BOM"... we'll see far I can get with that.I would try to use any reasonable trick that does not require elaborate tests to characterize, and no hand-selected unobtainium components.Since I barely know what I'm getting into, I would first aim for something that approaches the specs of a cheap voltage reference (e.g. max6250 or similar). For context, the best grade of max6250 has- tempco 1-2 ppm/C- 20ppm / 1000h long-term stabilityUntil I can prove that the max6250 is a limitation, specifying an lm399 or ltz1000 is a complete waste.Initial feeling is that I'm already facing a serious challenge just to get to that point.*********************TempcoThe 2701C is around 1ppm/C on most ranges, for ambient 0 to +35C... impressive.I don't mind doing a bit of thermal management and ovenizing sections of the circuit. Watts and thermistors are cheap, 0.01% 5ppm resistors are not.*********************ResolutionThe 2701C allows 0.5ppm increments, e.g. 1uV on the 2V range. This corresponds to roughly 21 bits (= log2(0.5E-6)). I would aim for the same, but it may turn out to be useless if I fail to manage noise, tempco or non-linearity.*********************AccuracyAccuwhat?I'll take whatever I obtain, essentially... Software calibration against an external standard (calibrated DMM) is the best I can do.*********************Noise2701C: 25uVRMS to 130uVRMS depending on range (120mV to 20V)I'm out of my depth here, both for calculating and measuring. I naively assume I can take care of most (?) noise with low-pass filtering (conditional to loop stability, settling time etc). But lower-frequency "1/f" noise ? no idea yet.*********************Output settling timeThe 2701C typically has : 20ppm within 0.5s, 5ppm within 1s, and 2ppm within 10s.As a comparison, a 1-pole RC response goes like this:"n" time constants ppm error1 367879 (i.e. the recognizable 36.8% value after 1*RC)10 4510.8 2012 613 2.214 0.8Clearly the 2701C doesn't precisely match this. It would roughly compare to a time-constant of the order of 46ms based on the first datapoint { 20ppm @ 0.5s : 10.8 time-constants}*********************"Prior art"I'm not aware of many similar projects ?The only one I can think of would behttps://radiokot.ru/forum/viewtopic.php?f=10&t=162357which I haven't looked at closely beyond a quick peek at the schematics. Also, it's in Russian.In any case, even if I don't go far with this project, I think the analysis is an interesting exercise.

author: fenugrec
author_rank: Frequent Contributor
timestamp: April 27, 2021, 04:33:58 pm
content: Analysis of the Valhalla 2701CHere's their diagram of the "simplified output and sense system".Very interesting. The "HI OUTPUT" (positive voltage) is connected to the center-tap of the floating analog supply. I.e. IC5 is powered from +/- 5V centered around the HI output. I guess this is a clever way to ensure:- IC5 doesn't have to slew more than a few volts to cover the massive 1200 V output range- both inputs of IC5 sit at 0VNow, my favorite part. Getting the output driver stage to perform stably is going to be a challenge, but I think here is the real magic.********** PWM generatorIt would be interesting to see actual PWM drive waveforms from one of these units, but I don't have access to one. The manual states the PWM period is around 40ms, or 25Hz. This is surprisingly low, but :- 6MHz is the limit for the MC68A40 Timer they're using- the 6840 is 3x 16-bit timers- I haven't looked in detail how they wired and configured the 6840, but there seems to be some cleverness afoot to combine the timers for more resolution.They generate two pulsetrains, MS and LS (guessing most significant and least significant), and feed these plus a clock signal over 3 optocouplers to the analog section. The clock then ensures the actual switching signals are synchronized; the propagation time of optocouplers cannot be relied upon.********** PWM switchingA lot to look at here.It starts with a 6.95V reference, "Linear Technology SL40051" . Some binned/pre-aged LM399 ?Now, the 4 switching MOSFETs. The manual says "IC11 buffers any switching transients caused by TR14 and TR16 from the other pair of switches TR13 and TR15".But, TR14+16 are on the LS side, which is only loaded by about 64k, vs 1k for the MS side. So wouldn't the MS side generate larger transients ? My answer would be that the "transients" are actually caused by the cross-conduction of the mosfets, because the complementary drive signals have theoretically 0 deadtime.So, both MS and LS probably generate an equally severe transient on the reference voltage rail on each edge. But MS should be better protected since it has more "weight" in the final filtered output. Also, having the LS side fed via a "cheap" opamp LF356 hurts accuracy proportionally less, according to the LS/MS scaling.Speaking of scaling, I calculate :- MS switches Vref via a 1k impedance to feed the next filter stages- LS has (1M + thevenin equivalent of 4k02+60k4 divider, so 0.0624*Vref via 1.003769 M).Thus, LS is scaled approximately 1/15964 compared to MS. I'm a bit disappointed not to hit a nice number there like 16000 or 16384. Either my logic or math is wrong, or are they also including the Rds_on of the mosfets ?Ok, mosfets now. Why VN66AK ?Basic specs :- NMOS- 60V breakdown- Rds = 3ohms @ Vgs=10V- Vgs_th = 0.8 to 2.5VOk...- Ciss: max 50pF at Vgs=0V, VDS=25V. But we're running at < 7V on drain-source, so Ciss/oss are greater.- Coss: max 40pF- tON / tOFF : 10-15ns.Aah. So, a low-capacitance, fast device ?The gate charge shows about 600pC with a gate voltage of 13V (realistic, the LS/MS drive signals are generated by a 15V CMOS gate). That's very small compared to some other MOSFETs I looked at with same ballpark Rds_on and switching time:- BS170 = 1.7nC already at Vgs=10V !- SN7002: 1.5nC at Vgs=10V- DMN6140 : 1.7nC...- ...Ok, not as easy as I thought to find a comparable part.I'm not looking at MOSFETs with ridiculously low Rds_on because I don't think it's an important spec here; those parts usually have massive gate capacitance , therefore more charge injection from the gate drive signal.Charge injection... I'm not sure why it would matter so much here. What we want for this stage is exceptional linearity between the PWM ratio and output voltage.Since the PWM frequency is fixed, we have the same number of transitions (hence "charge injection events") regardless of dutycycle.But, it's true that the amount of charge in each event varies depending on the average voltage (and thus dutycycle) since Vgs is roughly = {15V - V_avg}. So anywhere between 8 and 15V. I'm not sure what to do with these numbers; any input on this would be appreciated.My naive approach would be "well, that part of the gate charge curve should be ~ linear, can't we calibrate it out ?". No doubt Valhalla engineers would have a laugh reading all this...Another point of interest is the fact these 4 transistors are mounted on beryllium-oxide washers. Why ? Thermal insulation from the PCB ? How much would that help if the parts are mounted high off the PCB anyway ?(ref: that part of the actual PCB can be seen onhttp://sanggaard.com/br/p3.JPG;photo stolen from this thread:https://www.eevblog.com/forum/metrology/tear-down-valhalla-2707a/msg941501/#msg941501)The filter built around IC8 is a cool low-pass filter that I already asked about a while ago,https://www.eevblog.com/forum/projects/active-low-pass-filter-from-valhalla-2701c-dc-standard/Ok, enough writing for today.

author: Kleinstein
author_rank: Super Contributor
timestamp: April 27, 2021, 07:57:11 pm
content: There is a similar project here in the forum using PWM to generate a precise DAC. There the starting point is more like the Fluke 5500, but the principle is very similar.I have though about something smilar, but have a different project first.For simplicity one could consider doing the PWM switching with ready made CMOS switches. These are relatively good when it comes to charge injection and this spikes towards the reference source. The problem with charge injection is not so much the ouput side - this is low impedance from the other switch anyway. The voltage is also always going between the 2 fixed levels (GND and reference). The short dead time is hardly effect by the output level through the rather large resistor. The trouble it charge injection effecting the reference side, that will than show some response spike / ringing. The spike alone is not the problem, but it gets tricky when the spike changes, e.g. with ouput level or loading. So it would very likely need an extra buffer between the reference and the PWM part.The switch resistance, and especially the matching for the 2 sides effects the linearity a little. To a certain degree one could adjust with a trimmer. It could howver be a bit tricky to do the adjustment, as there is no magic light that lights up when the linearity is best. It is not so much the resistance that matters, but the difference between the 2 sides. low overall resistance help, but is not the only option. The Fluke calibrators use some extra compensation to reduce the effect. The version from the 5500 is not that complicated.For the PWM generation one could consider a µC - they have timers inside and can work internally with a relatively high clock. One may not need the optocouplers for the PWM part - just good decoupling at the µC and clock should be good enough. The control signal may go through optocoupler, but this can be be rather slow UART signal or similar.Unless one wants really super high resolution, one should get away with less resolution from the fine part and one does not need the highest accuracy from the fine part either. Something like 14-15 bits from the coarse part and 11 bit from the fine part would probably be enough. 1-2 bits may be lost for overlap to do the scale adjustment.For faster settling and less need for filtering, one can consider some sigma delta like modulation. So a slightly higher PWM frequency and modulation of the ouput to get on average the higher resolution. This can cut down on the main ripple amplitude and thus the fitler needs.One could consider using a simple ready made 12 Bit DAC chip for the fine part. One of the troubles with 2 x PWM is that the 2 parts may interact (e.g. with the charge injection effecting the reference, or just via the supplies for the swtiches. This is something I would avoid and a DAC chip is a pretty easy way to do this.Anyway the first part to build would probably be the coarse part. The fine part is more like an easy to add part. One would need some adjustment procedure for the fine scale part.

author: fenugrec
author_rank: Frequent Contributor
timestamp: April 30, 2021, 02:23:01 pm
content: Thanks for your comments @Kleinstein !Quote from: Kleinstein on April 27, 2021, 07:57:11 pmThanks, you made me look harder and I found a few relevant posts. Didn't find many built / almost-built designs though, just some discussions ?https://www.eevblog.com/forum/metrology/ultra-precision-reference-ltz1000/msg272365/#msg272365Being in the metrology subforum, I initially overlooked it as beyond the effort I'm willing to invest : )But there are some very interesting comments and criticism regarding a different architecture,https://www.edn.com/dc-accurate-32-bit-dac-achieves-32-bit-resolution/All this makes me wonder if a crude 2-PWM DAC like I'm planning, would perform any better than some 24-bit audio DAC with competently-measured (i.e. beyond my means) linearity specs... Or, as you suggest, two lower-resolution DACs in coarse/fine arrangement.QuoteHmm, good point. To help with those spikes I thought for a while of forcing a >0 deadtime (easy enough with modern mcu timer peripherals, or a PLD solution), but that caused other issues that seemed more serious...Adding an extra buffer between the reference and the PWM part, on the coarse side, seems problematic for drift and offsets ? And doesn't necessarily make the transient response magically better...QuoteI've tried to reason about that, and I'm not seeing it. I tried writing out the terms for top/bottom switch current as a function of Rds and output voltage, but I didn't make any progress. Everything looked linear, at a first glance... (I'm of course only looking at the steady-state times - any of these designs, mine included, will need to clamp the duty cycle to a narrower range than 0-100%, to have an identical area around each transition, for all conditions).QuoteExactly my intentions. Some mcus have a special high-resolution timer peripheral that have some PLL or delay-line magic to increase resolution beyond the basic {clock_freq / pwm_period} ratio. I'm a bit skeptical of the linearity of those high-resolution steps though...QuoteI had in mind something like:-set coarse and fine dutycycles to arbitrary values-measure the output-increase coarse by X steps-Decrease fine to correct the output to the first measurement, count the steps requiredwhich should be able to correct the ratio of the coarse/fine resistive divider.

author: Kleinstein
author_rank: Super Contributor
timestamp: April 30, 2021, 06:11:27 pm
content: The difference in the switch reistance can cause nonlinear response:The current through the switches depends on the output voltage and this gives a variable drop for the 2 swtiches. The nonlinearity is not huge but can still easy reach more than a few ppm.The EDN article does not really care much about linearity. The filtering is also a bit dubious with charge injection from the switch that depends on the votlage. So the filter / sampling part can also add some nonlinearity.The problem with audio DACs is that the DC specs are generally not that great. They are good for audio, but the offset and gain can drift. In addition there can be idle tones for a constant input signal.The point with the PWM DAC is that one has a chance to get good linearity without much testing, just a careful build circuit.It depends on the reference how sensitive they are to pulse loading. A LM399 may ring quite a bit. Someting like LTC6655 may be OK driving the switches directly. A good buffer is still not easy - it usually takes 2 amplifiers for the precision and fast part. There are not many reference than even a cheap OP07 when it comes to drift and noise.With the max6250 reference chances are the 20 ppm - 1000h drift spec is for the cerdip case version and may not apply for the normal plastic versions.The interpolated PWM from some µCs is usually not that bad. The main part is still from a clock that should be reasonable stable, if there is nothing else going one (e.g. other signal with a (partially) synconous clock. It is only the extra 2 or 3 bits from interpolation that may be a little nonlinear. A second clock at the µC can interfere with the coarse PWM - if possible I would avoid it. With an AVR I already see an effect allready from UART or ADC clock. So it takes care with the decoupling and clock (e.g. extra canned oscillator).The adjustment procedure sounds reasonable. It may help to have a little more than just 1 coarse step and thus a little more overlap / measurement range for an auxiliary ADC.

author: intabits
author_rank: Frequent Contributor
timestamp: May 01, 2021, 03:16:26 am
content: From your 2701C schematics above, it seems to operate in a similar fashion to the Systron-Donner M107:-* 2 PWM signals, one for Most Significant Digits of voltage setting, and one for LSD (3 digits each for M107)* PWMs pass from digital to analog sections via isolation to a pair of flip-flops. (isolation is via pulse transformers on the M107)* Outputs of FFs toggle FETs to gate 0V & the 6.95V reference to form a signal with an average voltage corresponding to the PWM duty cycle for the 3 digit input.* The MSD & LSD voltages are summed with 1000:1 weightings and filtered to get a smooth DC level corresponding to all 6 input digits. This level controls the output amplifier.So I think the M107 operation may be of interest to you.For the M107:-PWM frequency is 1.15KHzFETs are 2N4091My experiences:-https://www.eevblog.com/forum/repair/seeking-help-in-troubleshooting-a-systron-donner-m107-precision-dc-voltage-sourc/msg1363041/#msg1363041(excellent) Service manual:-http://ftb.ko4bb.com/manuals/49.177.58.170/Systron-Donner_M107_precision_DC_Voltage_source_Service_Manual.pdfIn the second schematic of my referenced post above, the asymmetric values of the FET gate pullup resistors R13 & R26 for MSD & LSD, and the fact they are supplied from the (buffered by U7) reference voltage may be relevent to your gate charge discussion above.