It was good to persist with this issue. The ref currents were knocked down to 7.1Vref *2 / 4x10k = +-350uA (disregard bias).
The local TC wandering of lt5400 due to self heating is no longer evident above the TC effects of the general board with its higher thermal mass.
With a 5sec integration/100 million count (slow slope disabled) the rundown count final digit std dev is < 1. Previously with higher currents stddev was around 2-3 with identical parameters.
circuit details - ladder opa2277, compound integrator 2x opa140 10k/2k divider, slope amp ad847 1k/5k, lt1016 hystersis 200k/100R.
count_up 5215, count_down 4789 count_rundown 1973 stddev_rundown(5) 0.40
count_up 5215, count_down 4789 count_rundown 1974 stddev_rundown(5) 0.49
count_up 5215, count_down 4789 count_rundown 1975 stddev_rundown(5) 0.75
count_up 5215, count_down 4789 count_rundown 1974 stddev_rundown(5) 0.63
count_up 5215, count_down 4789 count_rundown 1973 stddev_rundown(5) 0.75
count_up 5215, count_down 4789 count_rundown 1974 stddev_rundown(5) 0.63
count_up 5215, count_down 4789 count_rundown 1974 stddev_rundown(5) 0.63
count_up 5215, count_down 4789 count_rundown 1975 stddev_rundown(5) 0.63
count_up 5215, count_down 4789 count_rundown 1975 stddev_rundown(5) 0.75
count_up 5215, count_down 4789 count_rundown 1976 stddev_rundown(5) 0.75
count_up 5215, count_down 4789 count_rundown 1975 stddev_rundown(5) 0.63
count_up 5215, count_down 4789 count_rundown 1975 stddev_rundown(5) 0.40
count_up 5215, count_down 4789 count_rundown 1977 stddev_rundown(5) 0.80
count_up 5215, count_down 4789 count_rundown 1976 stddev_rundown(5) 0.75
count_up 5215, count_down 4789 count_rundown 1976 stddev_rundown(5) 0.75
count_up 5215, count_down 4789 count_rundown 1978 stddev_rundown(5) 1.02
count_up 5215, count_down 4789 count_rundown 1978 stddev_rundown(5) 0.89
count_up 5215, count_down 4789 count_rundown 1976 stddev_rundown(5) 0.98
count_up 5215, count_down 4789 count_rundown 1977 stddev_rundown(5) 0.89
count_up 5215, count_down 4789 count_rundown 1977 stddev_rundown(5) 0.75
count_up 5215, count_down 4789 count_rundown 1978 stddev_rundown(5) 0.75
count_up 5215, count_down 4789 count_rundown 1978 stddev_rundown(5) 0.75
count_up 5215, count_down 4789 count_rundown 1979 stddev_rundown(5) 0.75
To move a bit from baseline tests in favor of a pragmatic design - and decrease the measurement interval from 5s to 1s;
This test addresses 1/f noise, by multi-sampling the uncorrelated output of several shorter integration periods.
Using 200ms/4PLC integration period. Mean of 5 samples, for a 1sec measurement interval. With the slow rundown (30uA) enabled, the stddev of each individual integration goes up. But the aggregated values are good. ( stddev(mean(n=5)) < 1 ).
count_up/down 263 238, clk_count_rundown 54838, stddev_rundown(5) 1.47, mean (5) 54835.80, stddev_means(5) 0.27
count_up/down 263 238, clk_count_rundown 54840, stddev_rundown(5) 2.14, mean (5) 54836.80, stddev_means(5) 0.50
count_up/down 263 238, clk_count_rundown 54836, stddev_rundown(5) 2.15, mean (5) 54836.60, stddev_means(5) 0.56
count_up/down 263 238, clk_count_rundown 54834, stddev_rundown(5) 2.15, mean (5) 54836.60, stddev_means(5) 0.48
count_up/down 263 238, clk_count_rundown 54839, stddev_rundown(5) 2.15, mean (5) 54837.40, stddev_means(5) 0.51
count_up/down 263 238, clk_count_rundown 54835, stddev_rundown(5) 2.32, mean (5) 54836.80, stddev_means(5) 0.29
count_up/down 263 238, clk_count_rundown 54836, stddev_rundown(5) 1.67, mean (5) 54836.00, stddev_means(5) 0.45
count_up/down 263 238, clk_count_rundown 54837, stddev_rundown(5) 1.72, mean (5) 54836.20, stddev_means(5) 0.49
count_up/down 263 238, clk_count_rundown 54834, stddev_rundown(5) 1.72, mean (5) 54836.20, stddev_means(5) 0.52
count_up/down 263 238, clk_count_rundown 54834, stddev_rundown(5) 1.17, mean (5) 54835.20, stddev_means(5) 0.52
count_up/down 263 238, clk_count_rundown 54838, stddev_rundown(5) 1.60, mean (5) 54835.80, stddev_means(5) 0.37
count_up/down 263 238, clk_count_rundown 54832, stddev_rundown(5) 2.19, mean (5) 54835.00, stddev_means(5) 0.50
count_up/down 263 238, clk_count_rundown 54835, stddev_rundown(5) 1.96, mean (5) 54834.60, stddev_means(5) 0.57
count_up/down 263 238, clk_count_rundown 54839, stddev_rundown(5) 2.58, mean (5) 54835.60, stddev_means(5) 0.43
count_up/down 263 238, clk_count_rundown 54833, stddev_rundown(5) 2.73, mean (5) 54835.40, stddev_means(5) 0.43
count_up/down 263 238, clk_count_rundown 54839, stddev_rundown(5) 2.94, mean (5) 54835.60, stddev_means(5) 0.39
count_up/down 263 238, clk_count_rundown 54831, stddev_rundown(5) 3.20, mean (5) 54835.40, stddev_means(5) 0.37
The only problem is the lack of resolution in the runup counts, due to very slow modulation (around 1250Hz/ 10nF cap).
So the next step will be to increase modulation speed (at least) an order of magnitude (12kHz).
I will keep the rundown slope the same (by reducing ladder bias) - since the final digit of the rundown count appears to capture the variance and show where the noise level is.
Now waiting on an order of caps - WIMA FKP3, PP, 1nF and smaller as well as some TDK C0G smd to experiment with.