[time-nuts] uC ADC resolution (was: Poor man's oven)

Magnus Danielson magnus at rubidium.dyndns.org
Sat Jun 10 16:13:37 EDT 2017


On 06/10/2017 09:59 PM, Poul-Henning Kamp wrote:
> --------
> In message <017AC7D5-751B-4084-A3B3-E5132509C180 at n1k.org>, Bob kb8tq writes:
>> You may well use a custom set of control parameters for the warmup phase.
> The easiest way to avoid overshoot is to use a properly damped PI(D),
> which is _exactly_ the same thing you want once you are out of the
> warmup phase, so why bother with two different code paths ?
> But related to this is the question of output/heater resolution[1].
> While it is tempting to use a PWM output, it is a recipe for noise
> injection, and I would not even try it.
> Delta-Sigma strategies for spreading the noise-spectrum are
> interesting, but will not save you if the required heater power
> ends up being a small rational fraction (1/2, 1/3, 1/4 ...) of the
> full scale.
> So a proper DAC is called for.
> I wonder if a "4-20mA" DAC like the AD5421 is a usable programmable heater ?
> [1] It is relevant to point out that, as *always* the 'I' term
> should not be enabled until the P(ID) *output* is no longer clamped.

A proper DAC is clearly called for.

PWM is worst possible waveform, as it puts highest amplitude to the 
lowest frequency etc, thus it has a 6 dB/Oct roll-off. I once decided to 
move the spectrum components around so that the MSB has the highest 
frequency and LSB the lowest. With a simple one-pole filter this creates 
overtones of even amplitude. I used this to cram a few more bits out of 
a DAC, with really good result.

The sigma/delta approach is even better in doing this, even if my 
approach gets similar results, with a fairly crude approach.


More information about the time-nuts mailing list