EmbeddedRelated.com
Forums

Problem with external voltage references with MSP430F1232 10-bit ADC

Started by Banjo Edmondson July 13, 2004
Any thoughts on this problem are greatly appreciated.

Background:

I am using a MSP430F1232 with a 2-axis +-2g Analog Devices MEMS 
accelerometer (ADXL311).  The accelerometer outputs voltage with 0 g 
equal to Vcc/2 and changes ~.2V per g when Vcc=3V.

When using the 10-bit ADC and references set to Vcc and Vss, 0 g is 
converted to ~500 and a 1 g change causes about 70 units change in 
the digital value, as one would expect.

In an effort to use more of the 10-bit dynamic range of the ADC, I 
added a voltage divider consisting of 3 100Kohm metal resistors of 
1% accuracy.  VeREF- and VeREF+ are then tied to 1/3 Vcc (nominally 
1.0V) and 2/3 Vcc (nominally 2.0V).  The accelerometer's Vcc and Vss 
are tied to the Vcc and Vss points on the voltage divider.

Problem:

When using the external references, the swing for a 1 g change has 
increased to about 200 digital units as expected.  However, the 0 g 
has shifted significanty upward to about 800 on the 10 bit scale.  
The 0 g should still be nominally 1.5V from the accelerometer which 
is halfway between the 1.0 and 2.0 volt references.

Changing back to Vcc and Vss in software results in 0 g conversions 
to values ~500 again.

Does anyone have an idea of what could cause this offset?  

Is there something special to do in software for the external 
references to operate properly besides enabing those input pins in 
the ADC AE register?

Again, thanks in advance for any help.

best regards,
EBW







Beginning Microcontrollers with the MSP430

The source driving VeREF- and VeREF+ should be low
impedence.

-Sumukh

--- Banjo Edmondson <edwardbrianwelch@edwa...>
wrote:
> Any thoughts on this problem are greatly
> appreciated.
> 
> Background:
> 
> I am using a MSP430F1232 with a 2-axis +-2g Analog
> Devices MEMS 
> accelerometer (ADXL311).  The accelerometer outputs
> voltage with 0 g 
> equal to Vcc/2 and changes ~.2V per g when Vcc=3V.
> 
> When using the 10-bit ADC and references set to Vcc
> and Vss, 0 g is 
> converted to ~500 and a 1 g change causes about 70
> units change in 
> the digital value, as one would expect.
> 
> In an effort to use more of the 10-bit dynamic range
> of the ADC, I 
> added a voltage divider consisting of 3 100Kohm
> metal resistors of 
> 1% accuracy.  VeREF- and VeREF+ are then tied to 1/3
> Vcc (nominally 
> 1.0V) and 2/3 Vcc (nominally 2.0V).  The
> accelerometer's Vcc and Vss 
> are tied to the Vcc and Vss points on the voltage
> divider.
> 
> Problem:
> 
> When using the external references, the swing for a
> 1 g change has 
> increased to about 200 digital units as expected. 
> However, the 0 g 
> has shifted significanty upward to about 800 on the
> 10 bit scale.  
> The 0 g should still be nominally 1.5V from the
> accelerometer which 
> is halfway between the 1.0 and 2.0 volt references.
> 
> Changing back to Vcc and Vss in software results in
> 0 g conversions 
> to values ~500 again.
> 
> Does anyone have an idea of what could cause this
> offset?  
> 
> Is there something special to do in software for the
> external 
> references to operate properly besides enabing those
> input pins in 
> the ADC AE register?
> 
> Again, thanks in advance for any help.
> 
> best regards,
> EBW
> 
> 
> 
> 
> 
> 
> 


====********************************
Sumukh Pathare
Email: sumukh@sumu...
Phone: 781-856-2054
********************************

I always use the digital versions of the accelerometers. It gives you 
better dynamic range with faster clocks

Banjo Edmondson wrote:

> Any thoughts on this problem are greatly
appreciated.
> 
> Background:
> 
> I am using a MSP430F1232 with a 2-axis +-2g Analog Devices MEMS 
> accelerometer (ADXL311).  The accelerometer outputs voltage with 0 g 
> equal to Vcc/2 and changes ~.2V per g when Vcc=3V.
> 
> When using the 10-bit ADC and references set to Vcc and Vss, 0 g is 
> converted to ~500 and a 1 g change causes about 70 units change in 
> the digital value, as one would expect.
> 
> In an effort to use more of the 10-bit dynamic range of the ADC, I 
> added a voltage divider consisting of 3 100Kohm metal resistors of 
> 1% accuracy.  VeREF- and VeREF+ are then tied to 1/3 Vcc (nominally 
> 1.0V) and 2/3 Vcc (nominally 2.0V).  The accelerometer's Vcc and Vss 
> are tied to the Vcc and Vss points on the voltage divider.
> 
> Problem:
> 
> When using the external references, the swing for a 1 g change has 
> increased to about 200 digital units as expected.  However, the 0 g 
> has shifted significanty upward to about 800 on the 10 bit scale.  
> The 0 g should still be nominally 1.5V from the accelerometer which 
> is halfway between the 1.0 and 2.0 volt references.
> 
> Changing back to Vcc and Vss in software results in 0 g conversions 
> to values ~500 again.
> 
> Does anyone have an idea of what could cause this offset?  
> 
> Is there something special to do in software for the external 
> references to operate properly besides enabing those input pins in 
> the ADC AE register?
> 
> Again, thanks in advance for any help.
> 
> best regards,
> EBW

IVref+ is shown as 1mA. You can't simply provide a reference voltage 
using a divider chain for this reason. You will need to use buffered 
voltage sources. ie an op amp to set up each level.