Electronics > Metrology

Low noise chopper and DIY nV meter

<< < (22/23) > >>

macaba:
Hi Curtis, i haven’t had the chance to keep up with this thread & hoping to find some time to read it however I get the impression you might have excess ADC noise? In which case, perhaps change your 2x input R to 4.7 ohm, change 2x CM caps to 100pF and add a differential cap of 10nF. This is a practical tip from my workbench, not theory.

Edit: if you short the inputs of your FDA to 0V (inputs of U36) and measure the NSD (scaling ADC values with reference voltage of 5V) then I would expect OPA+FDA+ADC NSD in the range of 20-30nV/rHz (ADC alone with short directly at inputs is about 18nV/rHz). If more then try the filter modification I suggested above for sure.

CurtisSeizert:

--- Quote from: macaba on March 17, 2024, 08:59:47 am ---Hi Curtis, i haven’t had the chance to keep up with this thread & hoping to find some time to read it however I get the impression you might have excess ADC noise? In which case, perhaps change your 2x input R to 4.7 ohm, change 2x CM caps to 100pF and add a differential cap of 10nF. This is a practical tip from my workbench, not theory.

Edit: if you short the inputs of your FDA to 0V (inputs of U36) and measure the NSD (scaling ADC values with reference voltage of 5V) then I would expect OPA+FDA+ADC NSD in the range of 20-30nV/rHz (ADC alone with short directly at inputs is about 18nV/rHz). If more then try the filter modification I suggested above for sure.

--- End quote ---

I am interested to know if my descent into madness comes through as you read the thread. Also, I appreciate the practical tip. I may try that out because the input filter does not have the bandwidth to support 2 MSPS operation (68R/2.7nF), and it should be beneficial to operate at a higher sampling rate to help with aliasing. Every time I rework this board I hope it will be the last time. The five or ten minutes of actual reworking turns into two hours or so between disassembly, popping off all the shielding covers, preheating, cleaning, baking, and reassembly.

I can actually just interrupt normal acquisition in a serial terminal and switch the measurement to have both ADC input switches connected to Vcm or the output of the chopper stage. I have done some experiments where I do that, and the results are the same regardless of which one I am measuring, but I will need to repeat those with the code fixes I have made. With the inputs of the TMUX4053 shorted (U32 if you have the schematic handy), by my reckoning, I should see about 31 nV/rtHz (28 from the diff amp block at gain of 2, and 13 from the AD4030 (it is a factor of sqrt(2) quieter than the AD4630). I actually see 58 nV/rtHz at 2 MSPS, going an order of magnitude higher at 500 kSPS. Those are provisional values, so I will repeat the experiment before I make any changes to the board.

I hooked up the bench supply to power the board rather than the SMPS daughterboard, and I found that the 8 kHz and harmonics that I saw before were indeed due to the SMPS as they are absent without it. I've included both spectra here. I still see some peaking in the response with the added inductance of the protection circuitry with the integrator and feedback caps changed from 47pF to 68 pF (see the NVM B External short spectrum). I may try to fix this by increasing the value of those caps even more. It isn't really clear to me that this is problematic with respect to ADC aliasing because there isn't really any difference in NSD when I increase the sample rate.

I have done some very preliminary linearity measurements, and while I have found the analog out to be linear to within experimental uncertainty, there are certain points where the ADC readings deviate considerably from expectation, often very near points that read fine. That makes me think it is a data processing issue. For example, there is a 1% decrease in gain going from 815 uV, which reads as expected, to 810 uV, which does not. My source is a 200k/20R divider using some discrete BMF through hole resistors I had lying around attached to various things that I can drive from a battery (or a battery itself), so I am stuck with measuring certain discrete voltages at the moment.

The ADR1399 board is up and at least partly running. The Cuk won't start up with the large initial current demands of the heater (it looks like about 140 mA), so I need to power the negative rail externally for the first ten seconds or so. The current draw at 15 V increases about 50% relative to the LTC6655, from 39 mA to 60 mA, and the noise performance on the high gain setting seems to be worse. I don't think this is solely attributable to heat diffusion, as the increase is visible up to about 10 Hz, which is probably too fast for thermal effects in a closed case with the shields on. The offset voltage is marginally higher than before, which probably is thermal. The increased heat from the reference accentuates the imbalances in dissipation around the input switch that are present in the LTC6655 board.

Kleinstein:
The inductor at the input can pick up magnetic interference. Some of the noise in the 200 kHz range may come from a SMPS or AM radio.
So it may be more than just the added inductance. The added inductance could effect the settling after the modulator switching.

macaba:
Curtis,

I tend to think that with any kind of ultra precision instrumentation project, a descent into madness is inevitable and perhaps even desirable! A certain kind of manic ultra-focus is sometimes needed at this level as a lone developer.


--- Quote from: CurtisSeizert on March 18, 2024, 05:38:19 pm ---With the inputs of the TMUX4053 shorted (U32 if you have the schematic handy), by my reckoning, I should see about 31 nV/rtHz (28 from the diff amp block at gain of 2, and 13 from the AD4030 (it is a factor of sqrt(2) quieter than the AD4630). I actually see 58 nV/rtHz at 2 MSPS, going an order of magnitude higher at 500 kSPS.
--- End quote ---

Your reckoning seems about right to me, and your 58nV/rHz (assuming no calculation error) is further proof - I also saw an approximate doubling/tripling of noise until I fitted the correct charge kickback filter values. It seems the precharge circuitry on these ADCs simply reduce, not eliminate, the issue.

CurtisSeizert:

--- Quote from: macaba on March 19, 2024, 10:57:08 am ---Curtis,

I tend to think that with any kind of ultra precision instrumentation project, a descent into madness is inevitable and perhaps even desirable! A certain kind of manic ultra-focus is sometimes needed at this level as a lone developer.


--- Quote from: CurtisSeizert on March 18, 2024, 05:38:19 pm ---With the inputs of the TMUX4053 shorted (U32 if you have the schematic handy), by my reckoning, I should see about 31 nV/rtHz (28 from the diff amp block at gain of 2, and 13 from the AD4030 (it is a factor of sqrt(2) quieter than the AD4630). I actually see 58 nV/rtHz at 2 MSPS, going an order of magnitude higher at 500 kSPS.
--- End quote ---

Your reckoning seems about right to me, and your 58nV/rHz (assuming no calculation error) is further proof - I also saw an approximate doubling/tripling of noise until I fitted the correct charge kickback filter values. It seems the precharge circuitry on these ADCs simply reduce, not eliminate, the issue.

--- End quote ---

Yeah, I had been putting in 12 hours a day in February, but I have slowed down a bit now. Most of my coding experience, and about 95% of my C coding experience has been writing high performance algorithms in CUDA, and that was about 8 years ago. Incidentally, that subtly gave me an aversion to flow control because branching statements are really bad when you're trying to keep blocks of threads coherent. Anyways, here is the data for ADC noise. For the LTC6655 board I fitted an ADA4805-2 as the ADC driver rather than a 4807 because it's a better fit for 500kSPS, which I had planned on using. As I mentioned, the RC filters are 68R/2.7nF, so at sample rates significantly greater than 500kSPS, the input has not fully settled (the bandwidth is ~850 kHz). According to ADI's tool, we're talking about a handul of ppms at 2MSPS, so presumably we can trust a couple digits of precision for these results.

500k: 381.0 nV/rtHz
1M: 348.4 nV/rtHz
2M: 42.8 nV/rtHz

The measurement conditions were a bit different, and I was relying on memory for the value at 2 MSPS, so both of those might be the reason for the discrepancy. The 2 MSPS value is repeatable to beyond the precision I gave, but the others are not. Interestingly, this does not manifest in an increase in LF noise in the spectrum as the 1MSPS and 500kSPS are both flat. With 2 MSPS, I do start to see some 1/f noise from the driver at LF (I only went down to 1 Hz, which is about the corner). All had an offset of about 33 uV. Note that all values are scaled to be referred to the input of the ADC.

It isn't clear to me why these look the way they do, but I haven't taken an analog spectrum of the inputs. I would assume there is noise at ~500kHz that is aliasing back, but I don't know what the source would be. Everything is under power with the bench supply, so there should be no switching noise. I also know that it does not come from activity on either of the SPI busses from previous work because disabling DAC updates or changing the block averaging of the ADC does not have any impact. I2C is routed nearby, but that was not active for these experiments. The UART is active, of course (that's where I got the data), but it is routed far away from anything. I suppose I'll have to get an analog spectrum at the ADC inputs to make sense of this.

@macaba - one final thing: what inspired that particular choice of values, and what driver were you using? Even if each driver is only seeing ~200 pF to ground, 4.7R seems like it might court instability.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod