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.
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.
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
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.
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.
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
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.
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.
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.
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