[time-nuts] uC ADC resolution (was: Poor man's oven)
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:
> 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.
> On 06/07/2017 08:32 PM, Bob kb8tq wrote:
>> 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
>> eight solid bits to get things to work properly.
Redondo Beach, California
More information about the time-nuts