Author Topic: LM399 based 10 V reference  (Read 537178 times)

argintviu, Birb and 2 Guests are viewing this topic.

Offline Kleinstein

  • Super Contributor
  • ***
  • Posts: 14080
  • Country: de
Re: LM399 based 10 V reference
« Reply #975 on: April 07, 2019, 07:03:46 pm »
Using Vx to supply the current to the LM399 will only work if the output is a an approximately constant level. If the voltage is adjusted to other levels, it may be better to use a different source (e.g. 15 V supply or maybe another OP for an approximately 9 V).
 
The following users thanked this post: pigrew, serg-el

Offline pigrew

  • Frequent Contributor
  • **
  • Posts: 680
  • Country: us
Re: LM399 based 10 V reference
« Reply #976 on: April 07, 2019, 11:44:42 pm »
Using Vx to supply the current to the LM399 will only work if the output is a an approximately constant level. If the voltage is adjusted to other levels, it may be better to use a different source (e.g. 15 V supply or maybe another OP for an approximately 9 V).

Good point. This design is very much optimized for +10V (plus or minus a volt or so). The circuit's output is limited by 7V (LM399 Vref), the analog switches (+16V max), and the op amp's output headroom, so perhaps 7 to 14 V). The 15V supply should be good enough to use to bias the LM399.

Speaking of which.... I'm currently biasing the heater with the 15V supply, which seems a bit wasteful of power. How sensitive is the Zener voltage to the heater voltage? Should I bias the heater with the board's input voltage?

I don't see using it outside of between 9.5 and 10.5 V.  I'm not even sure how linear it would be (due to the analog switches).



I'm starting to redo the digital board based on the C2000. Are there any features that I should add? (Is there any interest from others in building one if it works out? I'd be happy to share the layout files.)

Schematics are attached. I'm planning to order boards tomorrow, maybe a second set of analog boards (with a few bugs fixed. I'm currently contemplating adding guard tracks around the high impedance nodes, and if I want a solid copper GND plane on the back.)
« Last Edit: April 08, 2019, 02:57:06 am by pigrew »
 

Offline Andreas

  • Super Contributor
  • ***
  • Posts: 3222
  • Country: de
Re: LM399 based 10 V reference
« Reply #977 on: April 08, 2019, 05:08:48 am »

Speaking of which.... I'm currently biasing the heater with the 15V supply, which seems a bit wasteful of power. How sensitive is the Zener voltage to the heater voltage? Should I bias the heater with the board's input voltage?

Hello,

Questions like this are usually already answered earlier in this thread:

e.g. here:
https://www.eevblog.com/forum/metrology/lm399-based-10-v-reference/msg441913/?topicseen#msg441913

and here:
https://www.eevblog.com/forum/metrology/lm399-based-10-v-reference/msg443181/?topicseen#msg443181

with best regards

Andreas
 

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: LM399 based 10 V reference
« Reply #978 on: April 08, 2019, 08:01:33 am »
FYI - there is not such thing like a zener diode wired to the "zener" pins of the LM399 package. The two terminals are wired internally as below (from DS).

@Andreas: as we have PMed re LM399 model - I've run through all your great measurements and graphs in this thread in order to assemble some data. Despite the fact you frequently do interpolate the data in your graphs (ie linear) you do not display the "equation" which could be used in modelling, a pity..  :)
« Last Edit: April 08, 2019, 08:12:35 am by imo »
 

Offline WillTurner

  • Contributor
  • Posts: 39
  • Country: au
Re: LM399 based 10 V reference
« Reply #979 on: April 16, 2019, 04:49:23 am »
May we briefly return to the bootstrap non-inverting operational amplifier circuit of fmaimon in the first post of this thread?



Consider the simplified op amp 7V -> 10V stage :

The transfer function is :

Since the transfer function has both a pole and zero which are very close together, I conclude that the circuit doesn't operate as a low pass filter as intended, and that the capacitor in the feedback leg is redundant. The pdf below (https://www.eevblog.com/forum/metrology/lm399-based-10-v-reference/?action=dlattach;attach=706806 ) further develops this analysis. I appreciate the intention of rolling off noise above, say 10Hz, however I don't believe that it is possible in the non-inverting op amp circuit without incorporating resistance (perhaps a simple RC filter) between the zener and the positive input.

I would appreciate someone more knowledgeable corroborating my thoughts.
« Last Edit: April 16, 2019, 05:03:42 am by WillTurner »
 
The following users thanked this post: Hermann W

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: LM399 based 10 V reference
« Reply #980 on: April 16, 2019, 06:03:45 am »
FYI
UPDATE - OPA177 and R values as in above schematics.
« Last Edit: April 16, 2019, 06:42:36 am by imo »
 

Offline WillTurner

  • Contributor
  • Posts: 39
  • Country: au
Re: LM399 based 10 V reference
« Reply #981 on: April 16, 2019, 06:21:13 am »
So your simulation uses a split (+15V/-5V) supply (op amp not grounded), with a 1k load, and you roll off only 3dB, and then your response flattens out (0dB)? Not the 20dB per decade that you would want from a LPF? Doesn't that support the case I made?
 

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: LM399 based 10 V reference
« Reply #982 on: April 16, 2019, 06:32:08 am »
I updated above with the OPA177 schematics you have mentioned in your post..
« Last Edit: April 16, 2019, 06:34:29 am by imo »
 

Offline Kleinstein

  • Super Contributor
  • ***
  • Posts: 14080
  • Country: de
Re: LM399 based 10 V reference
« Reply #983 on: April 16, 2019, 06:58:03 am »
The filtering action only applies to the added voltage from the amplifiers gain. In the PWM version this is mainly filtering the PWM part.  Filtering of the reference noise itself is only done by the extra filter stage at the output and possibly by some filtering between the LM399 and the 1 st. OP. AS the input to the OP is high impedance, one could add some RC filtering (e.g. 1 K +  100 nF) here with little extra effort.  However this would be more something for a non PWM version.
 

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: LM399 based 10 V reference
« Reply #984 on: April 16, 2019, 07:03:27 am »
For example
 

Offline WillTurner

  • Contributor
  • Posts: 39
  • Country: au
Re: LM399 based 10 V reference
« Reply #985 on: April 16, 2019, 07:10:31 am »
@imo : please look carefully at your first and second simulations. I believe that they both show you are achieving -3dB gain. I suggest you try a single pole RC filter, and look at the difference  :) . Your third circuit is a completely different kettle of fish.

@kleinstein : Sorry, I haven't been following the recent PWM design. To be clear, I have gone back to the first post of the thread, and am considering the most basic LM399 circuit with a 7V -> 10V gain stage. Probably not that good without very good low TC matched resistors. Nevertheless, my conjecture is that the feedback capacitor in that circuit doesn't do much.

@everyone : I realize that what I have posted may look like heresy. Please think carefully before jumping in  :-[.

Edits:
  1. Corrected 3dB to -3dB.
  2. Clarified "precise resistors" to "good low TC matched resistors"
« Last Edit: April 16, 2019, 07:15:58 am by WillTurner »
 

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: LM399 based 10 V reference
« Reply #986 on: April 16, 2019, 11:58:54 am »
I've been messing with an "LM399" LTspice model for a while, trying to simulate the behavior of a real LM399.
So far I've added TCs, dependency on Iz, and white and pink noises.
The params are "derived" from various sources in this thread.
Not useful for metrology purposes, imho, but rather a tool for optimizing the circuits around the 399.
The white and especially the pink noise p-p values are my rough estimates, such I get nice pictures :)
Long term drifts and heater power effects not included so far.
Would be great to have some more real data on the pink noise from field.
« Last Edit: April 16, 2019, 12:39:49 pm by imo »
 

Offline Andreas

  • Super Contributor
  • ***
  • Posts: 3222
  • Country: de
Re: LM399 based 10 V reference
« Reply #987 on: April 16, 2019, 07:40:50 pm »
Would be great to have some more real data on the pink noise from field.

Hello,

there are relative large differences in 1/f noise for the LM399 from sample to sample.
Good devices have around 2-4 uVpp @7V
others i have measured > 6uVpp @ 7V

So if you need low noise you have to sort out the bad ones.

with best regards

Andreas
 

Offline Magnificent Bastard

  • Regular Contributor
  • *
  • Posts: 139
  • Country: aq
Re: LM399 based 10 V reference
« Reply #988 on: April 16, 2019, 08:59:42 pm »
Would be great to have some more real data on the pink noise from field.

Hello,

there are relative large differences in 1/f noise for the LM399 from sample to sample.
Good devices have around 2-4 uVpp @7V
others i have measured > 6uVpp @ 7V

So if you need low noise you have to sort out the bad ones.

with best regards

Andreas

Hi Andreas,

Have you noticed anything special about the devices with low 1/f noise  (Such as lower TempCo, or lower time drift, etc.) ?

-MB
 

Offline branadic

  • Super Contributor
  • ***
  • Posts: 2379
  • Country: de
  • Sounds like noise
Re: LM399 based 10 V reference
« Reply #989 on: April 16, 2019, 09:13:16 pm »
Quote
Hi Andreas,

Have you noticed anything special about the devices with low 1/f noise  (Such as lower TempCo, or lower time drift, etc.) ?

-MB

I'm not Andreas, but can share a table measuring on 16x LMx99. Maybe you can see something obvious?

-branadic-
Computers exist to solve problems that we wouldn't have without them. AI exists to answer questions, we wouldn't ask without it.
 
The following users thanked this post: Andreas, splin

Offline IconicPCB

  • Super Contributor
  • ***
  • Posts: 1527
  • Country: au
Re: LM399 based 10 V reference
« Reply #990 on: April 16, 2019, 10:54:07 pm »
At first blush it seems devices which show a change in voltage between heated and unheated greater than a few milivolts  should be carefully scrutinised.
 

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: LM399 based 10 V reference
« Reply #991 on: April 17, 2019, 08:07:52 am »
For example the white and the 1/f model.
Scale on right in 1uV/div.
100Hz 1/f corner.
The amplitude of the FFT spectra seems to be in "V_rms".
« Last Edit: April 17, 2019, 05:31:15 pm by imo »
 

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: LM399 based 10 V reference
« Reply #992 on: April 17, 2019, 09:54:13 am »
And the model v2 source, for people who want to play with it :)
 
The following users thanked this post: Andreas

Offline pigrew

  • Frequent Contributor
  • **
  • Posts: 680
  • Country: us
Re: LM399 based 10 V reference
« Reply #993 on: April 28, 2019, 04:03:18 pm »
In the last week or two, I've tried out the C2000 HRPWM, and while it is slightly better that previous attempts, its strategy for generating the high resolution isn't consistent enough that I want to use it for this project.

The C2000 adds a variable delay element (using a string of inverters) on each PWM output. Thankfully, the C2000 has an extra register to configure delay allowing ~23bit resolution, unlike the STM32F334 and MSP430 which reuse the compare bits, limiting the PWM counter to 16-bit. The datasheet specifies the delay very loosely, but my board has a step size (MEP) of about 150 ps. A MEP count of up to 255 can be added to a falling or a rising edge. Incrementing my dual PWM board by one MEP on one channel increased the scaled output voltage by 0.7 uV. (0.07-ppm resolution). Because the MEP delay changes with temperature, one much continually run a calibration routine (using a separate delay loop) to keep track of the scaling factor. With a 60 MHz clock, I have about 140 MEPs per timer tick. The TI provided calibration routine outputs a bunch of noise (on the order of 5 MEP p-p). At this point I should have given up, but instead I learned C2000 assembly and rewrote the routine to add averaging.

The averaging code helps, but there is still a non-linearity at the high-end of the MEP count. I'm realizing that inverter-based delays have relatively bad jitter performance. Another wisdom I've learned in to run the PLL as fast as possible in order to reduce their output jitter. The C2000 with a 60 MHz sysclk using a 20 MHz XTAL, outputting 1 kHz, creates a jitter of about sigma=330ps. (I've realized that I can make fairly accurate jitter measurements with a TDS784D oscilloscope in histogram mode using a delayed timebase. Great!)

So, what next?

I want about 25 bits of resolution, a 1 kHz PWM frequency, and a delta-sigma loop running at 10 Hz or faster. This implies I want a >167 MHz timer clock (10 Hz * 2^(25-1)). The STM32G01 can nearly achieve that, but I'm predicting its jitter performance isn't so great.

I'm concluding that a FPGA may be the proper solution. The hard-IP PWM/counters I've seen do not have the speed or resolution I want. Restricting my search to non-BGA packages also wipes out much of the competition. The popular ICE40 specifies bad jitter and isn't that fast (I've not tried it). The Lattice MachXO2 seems suitable. Using a "DDR" output, I expect it to be able to achieve an up to 750 MHz equivalent timer clock (twice the internal frequency due to DDR) with the timer logic running at (f/4 = ~90 MHz) (which it can according to static timing analysis). With a slower model in the same line (LCMXO2-7000HE-6 dev board) and an external 80 MHz oscillator, a 500 MHz equivalent timer used to generate a 1 kHz PWM had a jitter of sigma=28 ps, and I suspect this is approaching the noise floor of the oscilloscope (which samples at 4 GSa/s).

I had hopes to use a QFN32 FPGA package, but it doesn't seem to support high-speed DDR outputs, so it looks like I have to use a 100-pin TQFP. I only need about ten pins, what do I do with the other 80?
 
The following users thanked this post: Andreas, iMo

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: LM399 based 10 V reference
« Reply #994 on: April 29, 2019, 07:33:35 am »
Quote
I only need about ten pins, what do I do with the other 80?
With the LM399 and the PWM calibrator on your board, you may add 2 opamps (A creating -10V, B integrator), 1 comparator and 3 ADG switches (-10V, 10V, integr cap discharge) and create a 6.5+ digits ADC with all the FPGA's LUTs and IOs available :)
A complete multislope 6.5d ADC (sending ADC results via serial) fits in ~400LUTs, afaik.
« Last Edit: April 29, 2019, 07:50:44 am by imo »
 

Offline guenthert

  • Frequent Contributor
  • **
  • Posts: 706
  • Country: de
Re: LM399 based 10 V reference
« Reply #995 on: April 30, 2019, 04:04:00 pm »
[..]
I want about 25 bits of resolution, a 1 kHz PWM frequency, and a delta-sigma loop running at 10 Hz or faster. This implies I want a >167 MHz timer clock (10 Hz * 2^(25-1)). The STM32G01 can nearly achieve that, but I'm predicting its jitter performance isn't so great.

I'm concluding that a FPGA may be the proper solution. The hard-IP PWM/counters I've seen do not have the speed or resolution I want. Restricting my search to non-BGA packages also wipes out much of the competition. The popular ICE40 specifies bad jitter and isn't that fast (I've not tried it). The Lattice MachXO2 seems suitable. Using a "DDR" output, I expect it to be able to achieve an up to 750 MHz equivalent timer clock (twice the internal frequency due to DDR) with the timer logic running at (f/4 = ~90 MHz) (which it can according to static timing analysis). With a slower model in the same line (LCMXO2-7000HE-6 dev board) and an external 80 MHz oscillator, a 500 MHz equivalent timer used to generate a 1 kHz PWM had a jitter of sigma=28 ps, and I suspect this is approaching the noise floor of the oscilloscope (which samples at 4 GSa/s).
[..]
25bits at 1kHz will be a bit of a challenge, but if you could ease the requirements a bit, Parallax' Propeller might be an alternative.  That MCU has a quite odd and by now fairly old design, requires support chips (external I2C connected EEPROM), draws quite a bit of power and has other drawbacks.  It does however allow for arbitrary length PWM via bit banging (since it has eight 'cogs' -- think of them as cores -- and no interrupts, bit banging can be done jitter-free easily).   It's routinely clocked up to 100MHz, some reported success with slightly higher clock rates.  Sadly, despite its age, the MCU is notoriously under-specified.  It derives its clock from an external crystal via an internal PLL circuit.  It's unclear to me how much jitter that introduces (on small time scales -- within a second, I measured the error to be less than 2 parts in 80e6 using a 10MHz reference signal from a GPSDO).

FPGA seems to be the more promising choice, the Propeller might just be easier to program.

I meant to try this for a long time now.  You could beat me to it.  ;)
 

Offline Kleinstein

  • Super Contributor
  • ***
  • Posts: 14080
  • Country: de
Re: LM399 based 10 V reference
« Reply #996 on: April 30, 2019, 04:20:57 pm »
I don't think there is any need to get 25 bits with 1 kHz speed. The LM399 has a much higher noise. So there would be much more noise from the LM399 than any SD modulation amplitude from using "only" some 20 Bit true PWM and than SD modulation on top.
 

Offline pigrew

  • Frequent Contributor
  • **
  • Posts: 680
  • Country: us
Re: LM399 based 10 V reference
« Reply #997 on: April 30, 2019, 07:09:30 pm »

I don't think there is any need to get 25 bits with 1 kHz speed. The LM399 has a much higher noise. So there would be much more noise from the LM399 than any SD modulation amplitude from using "only" some 20 Bit true PWM and than SD modulation on top.

Hmm, Maybe I need to rethink things. Looking at the LM399 datasheet again, it shows ~10 uV (~1.5ppm) of p-p <1Hz noise (Low Frequency Noise Voltage). Looking at the other plot, "Zener Noise Voltage (stabilized)", shows all the noise. I also need to figure out what I'm trying to achieve (My thought has been a 10 V transfer-standard with long-ish term stability, but not necessarily low noise.).

I was intending to get the resolution down to be similar to what I see as the S.D. of voltmeter readings when measuring my source (about 0.5 uV of 10V), so 0.05 ppm, even though this is wasted due to the accuracy of the reference.....

Do you have any suggestions? Is there something you'd like to see done with the LM399?

Connecting a few LM399 in parallel would reduce the noise, but burn a lot of power.

Disciplining a lower-noise source (like LTC6655) with a LM399 (Stack two LTC6655-5 to get 10V, use a 8 to 12 bit DAC to tweak the output to be 10V, divide down to ~7.1V with PWM and compare to the LM399 to use as a feedback loop to control the DAC, using a micro for temperature compensation?)? I guess this is just another name for auto-cal. The disciplining can be disabled, and the PWM divider can be used as a fairly linear high-resolution calibrator output.

25bits at 1kHz will be a bit of a challenge, but if you could ease the requirements a bit, Parallax' Propeller might be an alternative.  That MCU has a quite odd and by now fairly old design, requires support chips (external I2C connected EEPROM), draws quite a bit of power and has other drawbacks.  It does however allow for arbitrary length PWM via bit banging (since it has eight 'cogs' -- think of them as cores -- and no interrupts, bit banging can be done jitter-free easily).   It's routinely clocked up to 100MHz, some reported success with slightly higher clock rates.  Sadly, despite its age, the MCU is notoriously under-specified.  It derives its clock from an external crystal via an internal PLL circuit.  It's unclear to me how much jitter that introduces (on small time scales -- within a second, I measured the error to be less than 2 parts in 80e6 using a 10MHz reference signal from a GPSDO).

FPGA seems to be the more promising choice, the Propeller might just be easier to program.

I meant to try this for a long time now.  You could beat me to it.  ;)

The Propeller looks interesting, but probably can't do what I want because of its "only" 80 MHz clock speed (without using an external serializer IC). I'm also worried the low-ish PLL frequency of 128 MHz implies significant clock jitter. Another similar (but more modern?) design are the processors by XMOS. They quite likely could do the wizardry I'm trying to get, with "tile" clock frequencies of 500 MHz on their lower-end hardware (XS1-L6A-64-TQ48-C5).

I already have a proof-of-concept PWM generator running on a FPGA dev board, so my plan is to further explore it.

So, the question is if I should finish up this 10V LM399-based source. I'm leaning towards yes, just to see how good of a PWM generator I can make. But, I won't make a dedicated PCB this time. I'll just use the machXO2 breakout board, as-is, with a small external MCU to do temperature readings, and package it in a box to avoid drafts. I need to get my design into an oven soon for doing tempco checks.
 

Offline branadic

  • Super Contributor
  • ***
  • Posts: 2379
  • Country: de
  • Sounds like noise
Re: LM399 based 10 V reference
« Reply #998 on: April 30, 2019, 07:40:48 pm »
Even though RMS noise (10Hz - 10kHz) is specified to be typ. 7µV and max. 50µV for LM399 it does make sense to use higher DAC resolution, as you can average values to get more of an idea of the real value, as long as you don't have a jumper (popcorn noise). On the other hand you find specimen with low noise, but you have to select them (same is true for drift...).
Don't trust a single picture on noise given in the datasheet, measure the device you have at hand to get a picture of what you are dealing with.

As far as I remember noone found a low noise LTC6655 by now. The datasheet values given are misleading as the LNA used to specify noise on them doesn't match the defacto standard bandwidth?
However, the approach of building a disciplined ADC or DAC by using a low noise reference combined with a reference of good long-term stability is nice but not new. But it puts you in the rabbit hole to find a very low noise reference.

-branadic-
Computers exist to solve problems that we wouldn't have without them. AI exists to answer questions, we wouldn't ask without it.
 

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: LM399 based 10 V reference
« Reply #999 on: April 30, 2019, 08:26:23 pm »
I think you have gained pretty good momentum in the "High Resolution PWM Divider" direction (the name for a new topic?).
The actual zener (399 or LTZ, etc) is a different topic, imho. And not extremely important in the situation where you have been spending a lot of effort with the PWM divider.
Forget the 399 for a while and do create a 25bit 10kHz PWM divider  :-+
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf