Forums

internal/external ADC voltage reference info/questions

Started by Mark Skeels October 23, 2002
Hi, List.

[excerpt from a post follows]

> If the group members occasionally volunteered this
type of 
> information, maybe we might get actual TI engineers checking in -- if 
> they are not already -- and make this group THE destination for 
> anyone using this chip family.

[end of excerpt]

I had been using an external voltage reference for the ADC of 1.024V. 
And I was getting system accuracy of less than 1% error for my
application; this is acceptable. 

What I did was send the 1.5V reference voltage out of the Vref+ pin,
then scale it to 1.024V through an op amp, filter it and run it back into the
Veref+ pin. The reason was I was using legacy circuitry from the
previous version of the product.

But I was getting more noise on the ADC output than I liked, so
I started fooling around. I connected to the internal reference and 
got significantly better noise performance, so I decided to re-design
things to use the internal 1.5V or 2.5V reference, instead.

Ok. Here's something I just discovered. On p. 48 of the datasheet 
SLAS272C MSP430x13x, MSP430x14x MIXED SIGNAL MICROCONTROLLER
I just discovered that when using an external reference, the voltage
applied should be a minimum of 1.4V to assure max accuracy of
the ADC. (footnote 35)

I completely missed this.

Because of this, I _must_ redesign the circuitry to use the internal reference.

Probably, the 2.5V reference.

I also have a question: The internal reference is spec'd as follows:

1.5V:        can be as low as 1.44V and as high as 1.56V.
2.5V:        can be as low as 2.4V and as high as 2.6V.

(see p. 48)

Q. Am I understanding this correctly? This means that a
reference intended for use with a 12 bit ADC has an error
of +/- 4%? The resolution of the DAC will be 1 in 4096
or .024%, right? So if I want to preserve the accuracy of my
ADC, I need a reference with at least this accuracy?

Thinking about it, though, I guess this isn't really a problem.

I can adjust for this with my external analog trim circuitry, but
then the issue is really how stable is the reference. Is this fully
a function of temperature? Then, I guess I'm really concerned 
with the drift spec: +/-100ppm/degree C. Is this correct? Are there 
any other accuracy issues I should be aware of as far as the
internal reference goes?

(I've been careful to follow good PCB layout practices, as best I know
how, and I've paid attention to TI's app info concerning layout and 
bypassing of the ADC and the digital/analog power supplies. I've
also got a big ground plane.)

Mark Skeels
Engineer
Competition Electronics
www.CompetitionElectronics.com
meskeels@mesk...
Soli Deo Gloria!


Beginning Microcontrollers with the MSP430

Hi Mark,

If you want a high accuracy ADC, then it depends on whether the result is
ratiometric or absolute.  It sounds like you are int he absolute case as the
ratiometric version is easier.

I would use one of the information memory locations to store scaling error
values for the conversion (cheaper cost of manufacture than a trimpot) and
you will also need to adjust for temperature variation of the on-board
reference if you want a high accuracy low drift result.  Some parts have an
on-board diode reference which you can use to track the current core
temperature.  There are application notes covering this.  I have also used a
thermistor for this but that consumes another port pin.  A piecewise linear
fit is good enough though you may need to have reference points every 10
degrees or so over the temperature range the product will operate under.

1% is not overly difficult to achieve but does require care.  You are right
in assuming the temperature fit needs to not further degrade the ADC
accuracy to keep 1% possible.

Ray


Hi Mark,

Very interesting.  Thanks for sharing your discovery.

Clyde

-----Original Message-----
From: Mark Skeels [mailto:meskeels@mesk...]
Sent: Wednesday, October 23, 2002 9:08 AM
To: Msp430@Msp4...
Subject: [msp430] internal/external ADC voltage reference info/questions

Hi, List.

[excerpt from a post follows]

> If the group members occasionally volunteered this
type of 
> information, maybe we might get actual TI engineers checking in -- if 
> they are not already -- and make this group THE destination for 
> anyone using this chip family.

[end of excerpt]

I had been using an external voltage reference for the ADC of 1.024V. 
And I was getting system accuracy of less than 1% error for my
application; this is acceptable. 

What I did was send the 1.5V reference voltage out of the Vref+ pin,
then scale it to 1.024V through an op amp, filter it and run it back into
the
Veref+ pin. The reason was I was using legacy circuitry from the
previous version of the product.

But I was getting more noise on the ADC output than I liked, so
I started fooling around. I connected to the internal reference and 
got significantly better noise performance, so I decided to re-design
things to use the internal 1.5V or 2.5V reference, instead.

Ok. Here's something I just discovered. On p. 48 of the datasheet 
SLAS272C MSP430x13x, MSP430x14x MIXED SIGNAL MICROCONTROLLER
I just discovered that when using an external reference, the voltage
applied should be a minimum of 1.4V to assure max accuracy of
the ADC. (footnote 35)

I completely missed this.

Because of this, I _must_ redesign the circuitry to use the internal
reference.

Probably, the 2.5V reference.

I also have a question: The internal reference is spec'd as follows:

1.5V:        can be as low as 1.44V and as high as 1.56V.
2.5V:        can be as low as 2.4V and as high as 2.6V.

(see p. 48)

Q. Am I understanding this correctly? This means that a
reference intended for use with a 12 bit ADC has an error
of +/- 4%? The resolution of the DAC will be 1 in 4096
or .024%, right? So if I want to preserve the accuracy of my
ADC, I need a reference with at least this accuracy?

Thinking about it, though, I guess this isn't really a problem.

I can adjust for this with my external analog trim circuitry, but
then the issue is really how stable is the reference. Is this fully
a function of temperature? Then, I guess I'm really concerned 
with the drift spec: +/-100ppm/degree C. Is this correct? Are there 
any other accuracy issues I should be aware of as far as the
internal reference goes?

(I've been careful to follow good PCB layout practices, as best I know
how, and I've paid attention to TI's app info concerning layout and 
bypassing of the ADC and the digital/analog power supplies. I've
also got a big ground plane.)

Mark Skeels
Engineer
Competition Electronics
www.CompetitionElectronics.com
meskeels@mesk...
Soli Deo Gloria!



.

 

">http://docs.yahoo.com/info/terms/ 


----- Original Message -----
From: "Ray Keefe" <ray@ray@...>
To: <msp430@msp4...>
Sent: Wednesday, October 23, 2002 4:34 PM
Subject: RE: [msp430] internal/external ADC voltage reference info/questions


> Hi Mark,
>
> If you want a high accuracy ADC, then it depends on whether the result is
> ratiometric or absolute.  It sounds like you are int he absolute case as
the
> ratiometric version is easier.

...yes, I am using absolute.

>
> I would use one of the information memory locations to store scaling error
> values for the conversion (cheaper cost of manufacture than a trimpot) and

I had envisioned this for the next iteration. During manufacture, a method will
have
to be worked out to determine this value. I was thinking supplying known input
values
and then having the '430 calculate and store the offset and gain info in FLASH.

Is this what you mean?

> you will also need to adjust for temperature
variation of the on-board
> reference if you want a high accuracy low drift result.  Some parts have an
> on-board diode reference which you can use to track the current core
> temperature.  There are application notes covering this.  I have also used
a
> thermistor for this but that consumes another port pin.

I've got the '149; it has this diode. I'll look for the app note, thanks.

> A piecewise linear
> fit is good enough though you may need to have reference points every 10
> degrees or so over the temperature range the product will operate under.
>

By this, you mean a series of short line segments approximating the curve?
Then you're saying I may need a different series every 10 degrees. Yes?

Doesn't this vary with each unit, or could I expect to use the same cal info
for all of them?

> 1% is not overly difficult to achieve but does
require care.  You are right
> in assuming the temperature fit needs to not further degrade the ADC
> accuracy to keep 1% possible.

I don't quite understand this statement. Wouldn't the very object be to
improve the accuracy by means of the temperature compensation?
Then, of course one would assume the whole reason for doing it in the first
place would be to improve accuracy. If it degrades the accuracy, then
why do it?

And thanks for taking the time to respond! I appreciate it.

>
> Ray
>
>
>
> .
>
>
>
> ">http://docs.yahoo.com/info/terms/
>
>


----- Original Message ----- 
From: "Eisenbeis, Clyde [FRCO/MTN]" <clyde.eisenbeis@clyd...>
To: <msp430@msp4...>
Sent: Thursday, October 24, 2002 6:23 AM
Subject: RE: [msp430] internal/external ADC voltage reference info/questions


> Hi Mark,
> 
> Very interesting.  Thanks for sharing your discovery.
> 
> Clyde

You're welcome.  :-)


Hi Mark,

>> I would use one of the information memory
locations to store scaling
error
>> values for the conversion (cheaper cost of
manufacture than a trimpot)
and

>I had envisioned this for the next iteration.
During manufacture, a method
will
>have to be worked out to determine this value. I
was thinking supplying
known input
>values and then having the '430 calculate and store
the offset and gain
info in FLASH.
>Is this what you mean?

This sort of correction is what I was thinking of.

>> A piecewise linear
>> fit is good enough though you may need to have reference points every
10
>> degrees or so over the temperature range the product will operate
under.
>>

>By this, you mean a series of short line segments
approximating the curve?
>Then you're saying I may need a different series every 10 degrees. Yes?
>Doesn't this vary with each unit, or could I expect to use the same cal
info
>for all of them?

The shape of the curve should be the same but the offset and gain may vary
from batch to batch.  You only need one series.  The 10 degrees reference
was to the interval between points on the curve.

>> 1% is not overly difficult to achieve but does
require care.  You are
right
>> in assuming the temperature fit needs to not
further degrade the ADC
>> accuracy to keep 1% possible.

>I don't quite understand this statement. Wouldn't
the very object be to
>improve the accuracy by means of the temperature compensation?
>Then, of course one would assume the whole reason for doing it in the first
>place would be to improve accuracy. If it degrades the accuracy, then
>why do it?

My statement was referring to your comment on the ADC LSB being 0.25%, all
things being perfect.  This gives you another 0.75% in your error budget
before you can no longer meet your 1% accuracy specification.  SO all forms
of external and internal errors must fit within this range when summed
together.  Ways to improve basic accuracy are things like temperature
compensation to reduce drift, manufacturing setups to remove unit to unit
variation and careful design.

The way to reduce noise and statistical variation is filtering.  I usually
do this is software (it is cheaper) but anti-aliasing filtering must be done
outside the chip.

I have had a lot of analog design experience and guaranteed 1% accuracy is
harder to achieve in practice that most people appreciate.  You can get
better than this but the level of effort goes up enormously once you want
0.1%.  Look at the price of a 6 digit multimeter.

>And thanks for taking the time to respond! I
appreciate it.

No problem.

Ray