time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

Re: [time-nuts] Poor man's oven

RI
Riley, Ian C CTR NSWC Philadelphia, 515
Tue, Jun 6, 2017 2:00 PM

Chris,

The trick with using a uP and it's built-in A/D converters is scale.  You
want the limited 10-bits of revolution to fall over the operating range
which is very narrow, like 1C.  Anything outside of that is either 0000 or
1111 and only seen at start-up.,  So at start up the the controller is on
"bang-bang" mode then later you have milli-degree resolution over your 1C
range.  Basically you are measuring noise. but your $2 uP can take 100,000
measurments per second and putt tour a digital filter.

I have seen but not used the AREF pins on Arduino and similar uPs; as you lower AREF, do you lose any sort of accuracy? Is there a practical minimum for what voltage you can feed into AREF?

-Ian R.

Chris, > The trick with using a uP and it's built-in A/D converters is scale. You > want the limited 10-bits of revolution to fall over the operating range > which is very narrow, like 1C. Anything outside of that is either 0000 or > 1111 and only seen at start-up., So at start up the the controller is on > "bang-bang" mode then later you have milli-degree resolution over your 1C > range. Basically you are measuring noise. but your $2 uP can take 100,000 > measurments per second and putt tour a digital filter. I have seen but not used the AREF pins on Arduino and similar uPs; as you lower AREF, do you lose any sort of accuracy? Is there a practical minimum for what voltage you can feed into AREF? -Ian R.
AG
Adrian Godwin
Tue, Jun 6, 2017 4:13 PM

The specs for the ADC are pretty vague : most of the errors are around 2
LSB but all are quoted with vref at 4V. If you reduce vref (there's an
internal option of 1.1V) you'll increase gain but some of those errors are
going to stay physically the same. In general, I'd tend expect to get more
precision but also more noise. Averaging may help a bit.

On Tue, Jun 6, 2017 at 3:00 PM, Riley, Ian C CTR NSWC Philadelphia, 515 <
Ian.Riley.ctr@navy.mil> wrote:

Chris,

The trick with using a uP and it's built-in A/D converters is scale.  You
want the limited 10-bits of revolution to fall over the operating range
which is very narrow, like 1C.  Anything outside of that is either 0000

or

1111 and only seen at start-up.,  So at start up the the controller is on
"bang-bang" mode then later you have milli-degree resolution over your 1C
range.  Basically you are measuring noise. but your $2 uP can take

100,000

measurments per second and putt tour a digital filter.

I have seen but not used the AREF pins on Arduino and similar uPs; as you
lower AREF, do you lose any sort of accuracy? Is there a practical minimum
for what voltage you can feed into AREF?

-Ian R.


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/
mailman/listinfo/time-nuts
and follow the instructions there.

The specs for the ADC are pretty vague : most of the errors are around 2 LSB but all are quoted with vref at 4V. If you reduce vref (there's an internal option of 1.1V) you'll increase gain but some of those errors are going to stay physically the same. In general, I'd tend expect to get more precision but also more noise. Averaging may help a bit. On Tue, Jun 6, 2017 at 3:00 PM, Riley, Ian C CTR NSWC Philadelphia, 515 < Ian.Riley.ctr@navy.mil> wrote: > Chris, > > > The trick with using a uP and it's built-in A/D converters is scale. You > > want the limited 10-bits of revolution to fall over the operating range > > which is very narrow, like 1C. Anything outside of that is either 0000 > or > > 1111 and only seen at start-up., So at start up the the controller is on > > "bang-bang" mode then later you have milli-degree resolution over your 1C > > range. Basically you are measuring noise. but your $2 uP can take > 100,000 > > measurments per second and putt tour a digital filter. > > I have seen but not used the AREF pins on Arduino and similar uPs; as you > lower AREF, do you lose any sort of accuracy? Is there a practical minimum > for what voltage you can feed into AREF? > > -Ian R. > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/ > mailman/listinfo/time-nuts > and follow the instructions there. >
JH
Jim Harman
Tue, Jun 6, 2017 5:08 PM

On Tue, Jun 6, 2017 at 10:00 AM, Riley, Ian C CTR NSWC Philadelphia, 515 <
Ian.Riley.ctr@navy.mil> wrote:

Is there a practical minimum for what voltage you can feed into AREF?

It is hard to find on the data sheet, but the minimum voltage for an
Arduino's AREF is the internal analog reference voltage - 1.1V for the Uno,
2.56V for the Leonardo or Micro. The 32U4 chip in the Leo and Micro has
options for differential analog input and gains of 10, 40, or 200 but they
are not supported by the Arduino IDE - you have to set the internal
registers directly to use them. Also the input amplifier is pretty slow.

--

--Jim Harman

On Tue, Jun 6, 2017 at 10:00 AM, Riley, Ian C CTR NSWC Philadelphia, 515 < Ian.Riley.ctr@navy.mil> wrote: > Is there a practical minimum for what voltage you can feed into AREF? > It is hard to find on the data sheet, but the minimum voltage for an Arduino's AREF is the internal analog reference voltage - 1.1V for the Uno, 2.56V for the Leonardo or Micro. The 32U4 chip in the Leo and Micro has options for differential analog input and gains of 10, 40, or 200 but they are not supported by the Arduino IDE - you have to set the internal registers directly to use them. Also the input amplifier is pretty slow. -- --Jim Harman
VH
Van Horn, David
Tue, Jun 6, 2017 5:39 PM

You can feed in an external AREF, but look at the data sheet for the particular AVR chip.
One thing which is commonly ignored in Arduino-Land is the I/O pin leakage current and the maximum source impedance specs.
You are well advised to buffer the voltage you are reading, or make sure the source is low enough impedance that those errors won't get you.

All uCs have these issues, I just see this error made a lot in Arduino land.  My 3D printer is Arduino based, and uses a 100k thermistor driving the Arduino directly.
The community makes claims that a degree or two of temperature change is important, and yet the circuit isn't capable of that much accuracy.

-----Original Message-----
From: time-nuts [mailto:time-nuts-bounces@febo.com] On Behalf Of Jim Harman
Sent: Tuesday, June 6, 2017 11:09 AM
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] Poor man's oven

On Tue, Jun 6, 2017 at 10:00 AM, Riley, Ian C CTR NSWC Philadelphia, 515 < Ian.Riley.ctr@navy.mil> wrote:

Is there a practical minimum for what voltage you can feed into AREF?

It is hard to find on the data sheet, but the minimum voltage for an Arduino's AREF is the internal analog reference voltage - 1.1V for the Uno, 2.56V for the Leonardo or Micro. The 32U4 chip in the Leo and Micro has options for differential analog input and gains of 10, 40, or 200 but they are not supported by the Arduino IDE - you have to set the internal registers directly to use them. Also the input amplifier is pretty slow.

--

--Jim Harman


time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

You can feed in an external AREF, but look at the data sheet for the particular AVR chip. One thing which is commonly ignored in Arduino-Land is the I/O pin leakage current and the maximum source impedance specs. You are well advised to buffer the voltage you are reading, or make sure the source is low enough impedance that those errors won't get you. All uCs have these issues, I just see this error made a lot in Arduino land. My 3D printer is Arduino based, and uses a 100k thermistor driving the Arduino directly. The community makes claims that a degree or two of temperature change is important, and yet the circuit isn't capable of that much accuracy. -----Original Message----- From: time-nuts [mailto:time-nuts-bounces@febo.com] On Behalf Of Jim Harman Sent: Tuesday, June 6, 2017 11:09 AM To: Discussion of precise time and frequency measurement Subject: Re: [time-nuts] Poor man's oven On Tue, Jun 6, 2017 at 10:00 AM, Riley, Ian C CTR NSWC Philadelphia, 515 < Ian.Riley.ctr@navy.mil> wrote: > Is there a practical minimum for what voltage you can feed into AREF? > It is hard to find on the data sheet, but the minimum voltage for an Arduino's AREF is the internal analog reference voltage - 1.1V for the Uno, 2.56V for the Leonardo or Micro. The 32U4 chip in the Leo and Micro has options for differential analog input and gains of 10, 40, or 200 but they are not supported by the Arduino IDE - you have to set the internal registers directly to use them. Also the input amplifier is pretty slow. -- --Jim Harman _______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.
BK
Bob kb8tq
Tue, Jun 6, 2017 6:27 PM

Hi

For a variety of reasons, if you go the MCU ADC route, put an op amp in between the
thermistor bridge and the ADC. It takes care of a whole lot of issues.

Bob

On Jun 6, 2017, at 12:13 PM, Adrian Godwin artgodwin@gmail.com wrote:

The specs for the ADC are pretty vague : most of the errors are around 2
LSB but all are quoted with vref at 4V. If you reduce vref (there's an
internal option of 1.1V) you'll increase gain but some of those errors are
going to stay physically the same. In general, I'd tend expect to get more
precision but also more noise. Averaging may help a bit.

On Tue, Jun 6, 2017 at 3:00 PM, Riley, Ian C CTR NSWC Philadelphia, 515 <
Ian.Riley.ctr@navy.mil> wrote:

Chris,

The trick with using a uP and it's built-in A/D converters is scale.  You
want the limited 10-bits of revolution to fall over the operating range
which is very narrow, like 1C.  Anything outside of that is either 0000

or

1111 and only seen at start-up.,  So at start up the the controller is on
"bang-bang" mode then later you have milli-degree resolution over your 1C
range.  Basically you are measuring noise. but your $2 uP can take

100,000

measurments per second and putt tour a digital filter.

I have seen but not used the AREF pins on Arduino and similar uPs; as you
lower AREF, do you lose any sort of accuracy? Is there a practical minimum
for what voltage you can feed into AREF?

-Ian R.


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/
mailman/listinfo/time-nuts
and follow the instructions there.


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Hi For a variety of reasons, if you go the MCU ADC route, put an op amp in between the thermistor bridge and the ADC. It takes care of a whole lot of issues. Bob > On Jun 6, 2017, at 12:13 PM, Adrian Godwin <artgodwin@gmail.com> wrote: > > The specs for the ADC are pretty vague : most of the errors are around 2 > LSB but all are quoted with vref at 4V. If you reduce vref (there's an > internal option of 1.1V) you'll increase gain but some of those errors are > going to stay physically the same. In general, I'd tend expect to get more > precision but also more noise. Averaging may help a bit. > > > On Tue, Jun 6, 2017 at 3:00 PM, Riley, Ian C CTR NSWC Philadelphia, 515 < > Ian.Riley.ctr@navy.mil> wrote: > >> Chris, >> >>> The trick with using a uP and it's built-in A/D converters is scale. You >>> want the limited 10-bits of revolution to fall over the operating range >>> which is very narrow, like 1C. Anything outside of that is either 0000 >> or >>> 1111 and only seen at start-up., So at start up the the controller is on >>> "bang-bang" mode then later you have milli-degree resolution over your 1C >>> range. Basically you are measuring noise. but your $2 uP can take >> 100,000 >>> measurments per second and putt tour a digital filter. >> >> I have seen but not used the AREF pins on Arduino and similar uPs; as you >> lower AREF, do you lose any sort of accuracy? Is there a practical minimum >> for what voltage you can feed into AREF? >> >> -Ian R. >> _______________________________________________ >> time-nuts mailing list -- time-nuts@febo.com >> To unsubscribe, go to https://www.febo.com/cgi-bin/ >> mailman/listinfo/time-nuts >> and follow the instructions there. >> > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there.
CA
Chris Albertson
Tue, Jun 6, 2017 6:47 PM

Yes, as I wrote.  I would not mess with AREF.  At most you can only get a
multiplication about 4.  Use an op-amp.  Signal conditioning really
almost alway is required in the analog domain before any A/D conversion

Also like the uP is not inside the oven and has a cable of some length so
you'd want a buffered analog signal on the cable, the op-amp can do that
to.

Those $2 parts I linked to have the ADC referenced to 3.3 volts but have 12
bits as compared to the arduino which has 10 bits

The next step up the complexity scale would have you place an I2C
interlaced ADC inside your oven.  These don't cost much and have several
ADC channels.  then your oven has full digital interface and a much higher
quality DAC.  But this adds another 2 or 3 dollars to the design.  Maybe
worth it as now all the analog stuff is inside a temperature stable metal
tin can.    But you have to watch this feature-creep as you can drive up
cost with little to show for it.

Also I'd not want the analog stuff designed to work only with ADC built
into one specific development board.  The I2C serial interface is pretty
much universal

I'm thinking something like this:
http://www.ebay.com/itm/12-Bit-I2C-4-CH-ADS1115...
http://www.ebay.com/itm/12-Bit-I2C-4-CH-ADS1115-ADS1015-Module-ADC-Development-Board-for-Arduino-/112192172479?hash=item1a1f2cb1bf:g:kQEAAOSwA3dYGrZp
Notice that the chip has programmable gain, it can scale the input over a
small range before sampling.
For $2 it's still a "poor man's part and you do NOT need to make a PCB to
use it.

On Tue, Jun 6, 2017 at 10:08 AM, Jim Harman j99harman@gmail.com wrote:

On Tue, Jun 6, 2017 at 10:00 AM, Riley, Ian C CTR NSWC Philadelphia, 515 <
Ian.Riley.ctr@navy.mil> wrote:

Is there a practical minimum for what voltage you can feed into AREF?

It is hard to find on the data sheet, but the minimum voltage for an
Arduino's AREF is the internal analog reference voltage - 1.1V for the Uno,
2.56V for the Leonardo or Micro. The 32U4 chip in the Leo and Micro has
options for differential analog input and gains of 10, 40, or 200 but they
are not supported by the Arduino IDE - you have to set the internal
registers directly to use them. Also the input amplifier is pretty slow.

--

--Jim Harman


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/
mailman/listinfo/time-nuts
and follow the instructions there.

--

Chris Albertson
Redondo Beach, California

Yes, as I wrote. I would not mess with AREF. At most you can only get a multiplication about 4. Use an op-amp. Signal conditioning really almost alway is required in the analog domain before any A/D conversion Also like the uP is not inside the oven and has a cable of some length so you'd want a buffered analog signal on the cable, the op-amp can do that to. Those $2 parts I linked to have the ADC referenced to 3.3 volts but have 12 bits as compared to the arduino which has 10 bits The next step up the complexity scale would have you place an I2C interlaced ADC inside your oven. These don't cost much and have several ADC channels. then your oven has full digital interface and a much higher quality DAC. But this adds another 2 or 3 dollars to the design. Maybe worth it as now all the analog stuff is inside a temperature stable metal tin can. But you have to watch this feature-creep as you can drive up cost with little to show for it. Also I'd not want the analog stuff designed to work only with ADC built into one specific development board. The I2C serial interface is pretty much universal I'm thinking something like this: http://www.ebay.com/itm/12-Bit-I2C-4-CH-ADS1115... <http://www.ebay.com/itm/12-Bit-I2C-4-CH-ADS1115-ADS1015-Module-ADC-Development-Board-for-Arduino-/112192172479?hash=item1a1f2cb1bf:g:kQEAAOSwA3dYGrZp> Notice that the chip has programmable gain, it can scale the input over a small range before sampling. For $2 it's still a "poor man's part and you do NOT need to make a PCB to use it. On Tue, Jun 6, 2017 at 10:08 AM, Jim Harman <j99harman@gmail.com> wrote: > On Tue, Jun 6, 2017 at 10:00 AM, Riley, Ian C CTR NSWC Philadelphia, 515 < > Ian.Riley.ctr@navy.mil> wrote: > > > Is there a practical minimum for what voltage you can feed into AREF? > > > > It is hard to find on the data sheet, but the minimum voltage for an > Arduino's AREF is the internal analog reference voltage - 1.1V for the Uno, > 2.56V for the Leonardo or Micro. The 32U4 chip in the Leo and Micro has > options for differential analog input and gains of 10, 40, or 200 but they > are not supported by the Arduino IDE - you have to set the internal > registers directly to use them. Also the input amplifier is pretty slow. > > > -- > > --Jim Harman > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/ > mailman/listinfo/time-nuts > and follow the instructions there. > -- Chris Albertson Redondo Beach, California
PK
Poul-Henning Kamp
Tue, Jun 6, 2017 7:01 PM

The next step up the complexity scale would have you place an I2C
interlaced ADC inside your oven.  These don't cost much and have several
ADC channels.

ISOtemp made a version of their OCXO-107 which a built in DAC, but
I've been told the result was less than stellar.

When you do stuff like that, you need to pay a lot of attention to noise.

Personally I would avoid I2C, in preference for SPI to avoid the
sharp flanks required by I2C.

I would also run the SPI as slow as I possibly could and put low-pass
filter the digital signals at the boundary.

SRS uses an interesting trick in several of their instruments, where
they shut down parts or even all of the digital circuits when not
needed, see for instance their digital "all analog" lock-in amplifier.

--
Poul-Henning Kamp      | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG        | TCP/IP since RFC 956
FreeBSD committer      | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

-------- In message <CABbxVHuzd5riV+SBQA0CnsVFCzVb7Ub-dfLJLTob0TZt-pRrzQ@mail.gmail.com> , Chris Albertson writes: >The next step up the complexity scale would have you place an I2C >interlaced ADC inside your oven. These don't cost much and have several >ADC channels. ISOtemp made a version of their OCXO-107 which a built in DAC, but I've been told the result was less than stellar. When you do stuff like that, you need to pay a lot of attention to noise. Personally I would avoid I2C, in preference for SPI to avoid the sharp flanks required by I2C. I would also run the SPI as slow as I possibly could and put low-pass filter the digital signals at the boundary. SRS uses an interesting trick in several of their instruments, where they shut down parts or even all of the digital circuits when not needed, see for instance their digital "all analog" lock-in amplifier. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.
J
jimlux
Tue, Jun 6, 2017 7:54 PM

On 6/6/17 11:47 AM, Chris Albertson wrote:

Yes, as I wrote.  I would not mess with AREF.  At most you can only get a
multiplication about 4.  Use an op-amp.  Signal conditioning really
almost alway is required in the analog domain before any A/D conversion

Also like the uP is not inside the oven and has a cable of some length so
you'd want a buffered analog signal on the cable, the op-amp can do that
to.

Those $2 parts I linked to have the ADC referenced to 3.3 volts but have 12
bits as compared to the arduino which has 10 bits

or use a Teensy with a 16 bit differential input ADC.  Arduino
compatible, cheaper, yeah, you probably get 13 bits real performance
from the ADC.  Also has a real analog output (not PWM and a LPF) if you
need that.

Programmable gain, sample averaging in hardware, etc.  Not bad for <$20.

On 6/6/17 11:47 AM, Chris Albertson wrote: > Yes, as I wrote. I would not mess with AREF. At most you can only get a > multiplication about 4. Use an op-amp. Signal conditioning really > almost alway is required in the analog domain before any A/D conversion > > Also like the uP is not inside the oven and has a cable of some length so > you'd want a buffered analog signal on the cable, the op-amp can do that > to. > > Those $2 parts I linked to have the ADC referenced to 3.3 volts but have 12 > bits as compared to the arduino which has 10 bits or use a Teensy with a 16 bit differential input ADC. Arduino compatible, cheaper, yeah, you probably get 13 bits real performance from the ADC. Also has a real analog output (not PWM and a LPF) if you need that. Programmable gain, sample averaging in hardware, etc. Not bad for <$20. > >
BK
Bob kb8tq
Tue, Jun 6, 2017 8:37 PM

Hi

Often when you dig into the details of MCU ADC’s they have a little note “optimized for audio” or
“not recommended for control loops”. It can be a bit of a head scratcher to work out what they are
getting at. The big issues in this case seem to be DC leakage and 1/F noise. Yes, they do sort of go hand in hand :)
You need to be willing to check out the ENOB at DC in order to use them effectively in a simple
OCXO setup. That or be willing to flip the bridge ends on demand and try to cancel out the issues.
Unfortunately that adds both complexity and a string of other fun and games.

Op amps are cheap ….

Bob

On Jun 6, 2017, at 3:54 PM, jimlux jimlux@earthlink.net wrote:

On 6/6/17 11:47 AM, Chris Albertson wrote:

Yes, as I wrote.  I would not mess with AREF.  At most you can only get a
multiplication about 4.  Use an op-amp.  Signal conditioning really
almost alway is required in the analog domain before any A/D conversion

Also like the uP is not inside the oven and has a cable of some length so
you'd want a buffered analog signal on the cable, the op-amp can do that
to.

Those $2 parts I linked to have the ADC referenced to 3.3 volts but have 12
bits as compared to the arduino which has 10 bits

or use a Teensy with a 16 bit differential input ADC.  Arduino compatible, cheaper, yeah, you probably get 13 bits real performance from the ADC.  Also has a real analog output (not PWM and a LPF) if you need that.

Programmable gain, sample averaging in hardware, etc.  Not bad for <$20.


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Hi Often when you dig into the details of MCU ADC’s they have a little note “optimized for audio” or “not recommended for control loops”. It can be a bit of a head scratcher to work out what they are getting at. The big issues in this case seem to be DC leakage and 1/F noise. Yes, they do sort of go hand in hand :) You need to be willing to check out the ENOB at DC in order to use them effectively in a simple OCXO setup. That or be willing to flip the bridge ends on demand and try to cancel out the issues. Unfortunately that adds both complexity and a string of other fun and games. Op amps are cheap …. Bob > On Jun 6, 2017, at 3:54 PM, jimlux <jimlux@earthlink.net> wrote: > > On 6/6/17 11:47 AM, Chris Albertson wrote: >> Yes, as I wrote. I would not mess with AREF. At most you can only get a >> multiplication about 4. Use an op-amp. Signal conditioning really >> almost alway is required in the analog domain before any A/D conversion >> >> Also like the uP is not inside the oven and has a cable of some length so >> you'd want a buffered analog signal on the cable, the op-amp can do that >> to. >> >> Those $2 parts I linked to have the ADC referenced to 3.3 volts but have 12 >> bits as compared to the arduino which has 10 bits > > > or use a Teensy with a 16 bit differential input ADC. Arduino compatible, cheaper, yeah, you probably get 13 bits real performance from the ADC. Also has a real analog output (not PWM and a LPF) if you need that. > > Programmable gain, sample averaging in hardware, etc. Not bad for <$20. > > >> >> > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there.
AK
Attila Kinali
Tue, Jun 6, 2017 9:17 PM

On Tue, 6 Jun 2017 16:37:27 -0400
Bob kb8tq kb8tq@n1k.org wrote:

Often when you dig into the details of MCU ADC’s they have a little note “optimized for audio” or
“not recommended for control loops”. It can be a bit of a head scratcher to work out what they are
getting at. The big issues in this case seem to be DC leakage and 1/F noise. Yes, they do sort of go hand in hand :)
You need to be willing to check out the ENOB at DC in order to use them effectively in a simple
OCXO setup. That or be willing to flip the bridge ends on demand and try to cancel out the issues.
Unfortunately that adds both complexity and a string of other fun and games.

uC ADCs are only good for low resolution, slow signals. For anything else
you need an external ADC. Even if your uC datasheet claims that you have
a 12bit ADC, the reality is quite different. For one, these ADCs are not
well specified, the surounding digital logic has a profound effect that
changes dramatically depending on what other periphery you use or not.

You can always just subtract two bits of the ADCs resolution and you
wouldn't be wrong. Losing 3 bits to internal noise isn't unehard of
either. Heck, the STM32F4xx have so much internal noise that the ENOB
of their ADC is below 6bit... so low that they even had to write an
appnote on how to do averaging to get back to the 12 bits the ADC is
spec'ed for. (but don't mention that to an ST sales person, they will
hate your guts afterwards).

Rule of thumb: If you need your ADC DC stable, more than 8bit resolution,
or more than 10-1000 samples per second: use an external ADC.

		Attila Kinali

--
You know, the very powerful and the very stupid have one thing in common.
They don't alters their views to fit the facts, they alter the facts to
fit the views, which can be uncomfortable if you happen to be one of the
facts that needs altering.  -- The Doctor

On Tue, 6 Jun 2017 16:37:27 -0400 Bob kb8tq <kb8tq@n1k.org> wrote: > Often when you dig into the details of MCU ADC’s they have a little note “optimized for audio” or > “not recommended for control loops”. It can be a bit of a head scratcher to work out what they are > getting at. The big issues in this case seem to be DC leakage and 1/F noise. Yes, they do sort of go hand in hand :) > You need to be willing to check out the ENOB at DC in order to use them effectively in a simple > OCXO setup. That or be willing to flip the bridge ends on demand and try to cancel out the issues. > Unfortunately that adds both complexity and a string of other fun and games. uC ADCs are only good for low resolution, slow signals. For anything else you need an external ADC. Even if your uC datasheet claims that you have a 12bit ADC, the reality is quite different. For one, these ADCs are not well specified, the surounding digital logic has a profound effect that changes dramatically depending on what other periphery you use or not. You can always just subtract two bits of the ADCs resolution and you wouldn't be wrong. Losing 3 bits to internal noise isn't unehard of either. Heck, the STM32F4xx have so much internal noise that the ENOB of their ADC is below 6bit... so low that they even had to write an appnote on how to do averaging to get back to the 12 bits the ADC is spec'ed for. (but don't mention that to an ST sales person, they will hate your guts afterwards). Rule of thumb: If you need your ADC DC stable, more than 8bit resolution, or more than 10-1000 samples per second: use an external ADC. Attila Kinali -- You know, the very powerful and the very stupid have one thing in common. They don't alters their views to fit the facts, they alter the facts to fit the views, which can be uncomfortable if you happen to be one of the facts that needs altering. -- The Doctor