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

Chris Albertson albertson.chris at gmail.com
Sat Jun 10 15:24:28 EDT 2017

On Sat, Jun 10, 2017 at 11:33 AM, Magnus Danielson <
magnus at rubidium.dyndns.org> wrote:

> Hi,
> I was about to make this very point myself. The resolution of the ADC
> needs to be higher than the limit you try to achieve. There is several ways
> to reason about it, but one is that the system is a bit slugish you want to
> have higher resolution in order to react of changes before they overshot
> the limits you want to keep. Another benefit is that you get away from the
> bang-bang behavior you get when having too few bits.
> For an oven you can however cheat some by not requiring linearity in the
> "too cold" region of temperature. You do want some linearity as you start
> to come into the right range in order to slow down the heating in order not
> to do a big overshot.
> I have seen a little too much cases where there been too few bits both on
> ADC and DAC sides. Some of it you can overcome, but it runs into trouble.
> Get good dynamics, it makes the rest of the design easier.

OK, following the advice both above and below.  Let's try some real-world

 Lets say my goal is regulation within 0.1C.  After filtering I have 10
"good" bits in my ADC.  That is 1024 counts.   My set point is S.

I scale the ADC so that 0 == (S - 0.5) and 1023 == (S + 0.5)    This means
that each ADC count is 0.001 degree C and within the 0.1C range there are
100 ADC counts.

But what if there are only 8 good bits after filtering   The each count is
 0.004 degree C and there are 25 counts within the 0.1C range.

The uP's ADC is nominally 12 bits.   Getting 10 "good" noise free bits
might be asking to much but 8-bits is pretty reasonable.

> Cheers,
> Magnus
> On 06/07/2017 08:32 PM, Bob kb8tq wrote:
>> Hi
>> There is a gotcha with the initial assumption: You want the loop to be
>> *quiet* at a level well below 0.1C. If it is bouncing around that much,
>> the second order (rate defendant) tempco of a normal crystal will
>> become a pretty major issue.
>> Simple rule of thumb - add at least two bits past whatever the target is.
>> More or less, if you *are* after 0.1C and that comes out to 6 bits, you
>> need
>> eight solid bits to get things to work properly.

Chris Albertson
Redondo Beach, California

More information about the time-nuts mailing list