What is the sample rate of your circuit? What kind of flatness in the passband do you want to achieve? I assume that you want to achieve 18 bit. It requires enormous flatness.
Which CPU/FPGA is used to digest sampling data?
Yes, this is probably why the 3458a uses an independent wide-band amplifier that is optimized for the task of digitzing (for AC).
Also, as Kleinstein notes, it is not particularly compatible with heavy input protection, and the various capacitances to the enclosure, and guards, input muxes etc. (fast DC probably tends to the same problems as AC)
For a brief moment, it looked like all that was needed was to take an off-the-shelf part and put it on the pcb, but I have stopped looking at it now.
It is still educational to discuss it, and identify the issues.
Jitter is a noise source at the ADC. Besides jitter there is also the switch capacitance that is connected / discoonected from the integrator to add some noise, that behaves similar to jitter (though it does not scale with the reference voltage).
So a little more noise with faster modulation is normal. It is only a question of how much.
With the rather low DA capacitors there is no longer the need to go as high in the frequency as the 3458 or 34401 (more for resolution reasons, not DA) do. I currently get away with some 57 kHz modulation and still have an DA related INL of less than 0.1 ppm FS (without dithering).
There are quite some modern cheap oscillators with jitter specs of around 1 ps_RMS, which should be good enough and comparable to the jitter from 74AC or the LV4053 switches.
Faster modulation reduces the INL from DA, but it makes switching related INL (e.g. integrator settling, supply transisents) more important.
From memory, I had to go down to around 20kHz to get reasonable (3458a comparable) noise.
INL was OK, but I didn't do too many tests, since I wanted to wait until it could be fully automated.
I never looked at jitter specs when selecting a cmos oscillator, and just assumed any part was likely good enough.
Subsequently I purchased some better parts with a jitter spec to test.
The pcb footprint can now accommodate basically any standard pinout part in different sizes.
If needed, one could consider a 2nd order integrator for the run-up and this way hopefully reduce the error from DA addionally. The run-up would used the 2nd order path, while the run-down would still use the 1st. order only. This way a slower modulation frequency would get viable.
Thanks for explaining this.
A 2nd order integrator, is a cascaded integrator.
So one steers the RU based on the output of the second/following integrator - in order to keep the average charge on the capacitor of the first integrator closer to zero (which reduces DA)?.
while RD works the same.
My preference is to follow traditional practice/design - at least before getting things working end-to-end.
But if if the second integrator only needs a low-spec op-amp/ resistor/ cap and comparator, and can be made optional, it becomes more interesting,
pcb space may be a limitation.
With the switch supply voltage modulation (to compensate for nonlinear R_on) I would only modulation the switch voltage, not the FF voltage. The change in the voltage is anyway small ( 20 ohm * 0.3 mA = 6 mV) and there should be no issue with the FF voltage staying constant.
With the ADC it is not a good idea to share the same dul OP-amp for the precision OP in the integrator (U908A) with the ground buffer. The Precsion part should be a single OP-amp with separate decoupling as it is the critical part.
It would be good to have the fast part of the integrator (U909A) share a dual with the ground buffer. The ref. current is switched between these 2 opamp outputs.
OK. that makes sense.
The Zjump part (as coppied from the 3458) would not need a super faster comparator. The latch function that slow comparators usually miss could be part of the FPGA. This way the control would also know the setting.
That was my initial thinking that I discussed - just use a lm311 or lm1871 (ie. with gnd-referenced/level-shift output), and have the fpga manage the logic.
A nice advantage is that the function can be turned on/off without adding/removing parts.
But without hysteresis, a pathological input voltage could cause the comparator to self-oscillate
This does not matter for the logical function of the sample/latch - any value will do, it just needs to be held constant across the duration of the readings.
But it could produce EMI that propagates on the output - and power supplies.
By contrast - for a comparator with an integrated latch, the oscillation would be limited inside the part.
And in the best-case the latch function would disable the internal current-sources to the comparator front-end and avoid internal oscillation.
So copying the 3458a circuit looked like a simple way, but using a part with lower power consumption (lt1671 instead of lt1016/to3016).
An alterantive approach would add positive hysteresis, but this would carry hardware state across readings.
But perhaps a fet switch to short a small bias in the gnd input would work better.
For the reference amplification it can really help to have some low pass filtering at the ref. input. This would a resistor in the ref-hi path and a capacitor to ground or to ref-n14V (gives addtional gain to the capacitor). I have some 6.8 µF there and removing this capacitor nearly doubled the ADC noise (though with a more noisy LM399 ref.).
Did you use a PP film cap?
I carried a MLCC cap through multiple schematic revisions, but removed it because I felt a non C0G type would not be good enough.
With the reference factored out into a daughter board - there is more space to mount a large film cap.
But then the filter would apply to all uses of the reference (ie. acal) - not just to create the adc ref-currents.
But perhaps that is OK - all uses of ref-hi are buffered.
There is no need to short out the current input for ACAL. If it all one may want a shortening realy for the current input, so that the current could still flow when isolated from the measurement path.
OK. this makes sense.
Probably it would be good to introduce the short, when ranging and relay contacts are momentarily open.
I don't think it is a good idea to have the relay to disconnection the overcurrent protection. It would be more suitable to inject the ACAL test current to a later stage instead. The 1 K shunt would not want a very high voltage anyway.
For amps, I moved the ACAL test current injection point to before K701.
This allows the large protection lifting relay to be removed - which is 1000% better.
And the first relay is now a simple shorting relay.
Also added a higher-val shunt for acal.