The captured traces show quite fast settling, though with quite some ringing at 2 frequencies. The faster part (some 20 MHz) looks like it is strongest at the Q5 transistors. The collecors ar tightly coupled tot he rest, so it is a bit tricky to slow it down or dampen it seprately. Chances are less gain for Q5 (larger emiter-resistors R39,R43) could help with this. The frequency is that fast that also inductive coupling and LC resonaces may start to become an issue.
There are also quite some spikes at different times - maybe this is the UART or something else, as it looks much less frequent. At least that part should be avoidable.
The residual offset looks relatively small though still detectable (some 0.2 mV range for the output correcponding to 1 µV or 0.1 µV of offset for the FET amplifier depending on the gain used). This should be good enough and I don't think one would need to improve on this.
The capacitor C42 looks quite small, an I am not so sure that capacitance to ground would be right thing there. The input signal to Q8 is more relative to the +5.4 V supply so capacitance to the + supply may make more sense (could still keep C42 as it is small anyway).
I can't guarantee the faster ringing is not a probing artifact. I was holding two probes against 1 mm diameter test pads at the same time for those, and spring clips for grounding was not an option. Note that the Q5B trace is 5 mV/div but that the same ringing is present on the clock signal, though it looks cleaner because the scale is larger. I will check that out when the current experiment is done.
I am not sure the source of the spikes, but the timing is not right for it to be anything with the MCU because it happens in both phases of the clock cycle. The UART and SPI transactions both happen at the beginning of MOD_CLK being low.
The amplitude of the square wave taken at the SMB jack (J18) is 178 uV (allowing for 500 us settling). From observing the warm-up transients a number of times, I think the residual Vos before parasitic thermocouples come into play is very close to this, but this could also be a product of the settling behavior of the Butterworth filter.
C42 at 10 pF was helpful in simulations for improving settling time, and it was much more effective than increasing the size of C48 to increase the integrator time constant for the Op amp CM servo. It has to be small to keep that loop stable. Tying it to Vcc would have been better, but it should be fine for now.
The same applies to C44 and C45. They could rather be 1 nF to increase the snubber time constant from 1 nsec to 100 nsec. And the input side of MUX U6A and U7A could have snubbers, too - maybe in addition to or instead of the diodes D2 and D3.
Regards, Dieter
C45 doesn't act like a snubber, and after I built this up I re-ran simulations without R25 and found it to be unnecessary. This is in contrast to my LNA, which does require resistance in parallel with the integrator capacitor for stability. Anyways, these definitely need to be small to keep the loop stable, at least with the current values of Cf (33 pF now - modified since uploading the schematics). The integrator capacitor is meant to cancel the the effect of the input capacitance of the op amp. The snubber on the non-inverting input of U5 is to keep the impedances on the output of the diff pair balanced.
Can you measure current into the diodes D2 and D3? They could have 100R resistors to Gnd, like R24 and R25. Certainly the MUXes will inject spikes there and asymmetry may cause DC. Such errors are attenuated by the outer feedback loop, but still you want them to be small.
Regards, Dieter
I have no way of measuring this current directly, but one could infer it from the voltage at those nodes. Putting resistors in series with these could be an option, but I think this would maintly serve to damp any effects of the junction capacitance of the diodes. In simulation, these nodes all stay within 5 mV of ground, but this is with ideal switches to keep simulation times reasonable.
Overall, I have spent a lot of time simulating various iterations of this, and I don't think I left much on the table for improving transient behavior around switching times. That said, I don't really know what I'm doing, so it could be a deficit of imagination on my part. I am not going to say that
every value here is optimal, but they were all chosen on purpose. That said, there may be some room to reduce the gain of the offset correction diff pair. I think one could get more mileage from a deglitching filter, converting in sync with each phase of the clock cycle, or both. Both would be ideal for reducing the tension between frequency rejection and settling time requirements for an antialiasing filter.
Finally, I have some preliminary Vos tempco data, but this is still provisional until I can synchronize my TECsource with reading the serial stream of data that the instrument puts out. If the TMP117 were operational, that would also help. Anyways, it's less than +2 nV/K (from ramp slope), though probably closer to +1 nV/K (from settled values at each end of a 10 C ramp). With a +0.1K/min ramp, the displacement during the ramp is on the order of 30 nV, so under all normal use cases, dT/dt would be more important. I think that's a good sign, because it can be addressed more easily with appropriate thermal isolation slots, etc.