Hi Alejandro,

Sorry, I completely missed your email!

> Why you consider Vref = Vbat if the Vref = 1.5 and the Vbat = 3.0 V?
> because: REFVOLT_LEVEL_1_5
> 
> Please would you tell me what is my error?

Vref here is "whatever you choose to use as your reference voltage", and in the 
config I suggested, you're using the battery voltage (REFERENCE_AVcc_AVss) as 
your reference.
REFVOLT_LEVEL_1_5 does nothing if you're not using the internal reference; it 
may be clearer to use REFVOLT_LEVEL_NONE in that case.

> To:
> 
> const msp430adc12_channel_config_t Adc1 = {
>             INPUT_CHANNEL_A0,
>           REFERENCE_AVcc_AVss,
>             SAMPLE_HOLD_4_CYCLES,
>             SHT_SOURCE_SMCLK,
>           SHT_CLOCK_DIV_1,
>             SAMPCON_SOURCE_SMCLK,
>             SAMPCON_CLOCK_DIV_1,
>             REFVOLT_LEVEL_1_5
>         };

If that's the exact config you're using, that's not correct: you have to 
specify the fields in the correct order, so REFVOLT_LEVEL_1_5 should be after 
REFERENCE_AVcc_AVss. Unless you're using fieldname: value notation, which is 
not a bad idea in this case. Then you can name the fields in whatever order you 
like:

const msp430adc12_channel_config_t Adc1 = {
    inch: INPUT_CHANNEL_A0,
    sref: REFERENCE_AVcc_AVss,
    ref2_5v: REFVOLT_LEVEL_NONE,
    // etc
};

Best,
Michiel

> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> Sent: vrijdag 20 april 2012 21:20
> To: Michiel Konstapel
> Cc: [email protected]
> Subject: RE: [Tinyos-help] Error marging using REFVOLT_LEVEL_2_5 to
> read a portADC
> 
> Dear Michiel.
> 
> I've changed the configuration from:
> 
> const msp430adc12_channel_config_t Adc1 = {
> 
>       INPUT_CHANNEL_A0,
>       REFERENCE_VREFplus_AVss,
>       REFVOLT_LEVEL_2_5,
>       SHT_SOURCE_ACLK,
>       SHT_CLOCK_DIV_1,
>       SAMPLE_HOLD_4_CYCLES,
>       SAMPCON_SOURCE_SMCLK,
>       SAMPCON_CLOCK_DIV_1
>     };
> 
> To:
> 
> const msp430adc12_channel_config_t Adc1 = {
>             INPUT_CHANNEL_A0,
>           REFERENCE_AVcc_AVss,
>             SAMPLE_HOLD_4_CYCLES,
>             SHT_SOURCE_SMCLK,
>           SHT_CLOCK_DIV_1,
>             SAMPCON_SOURCE_SMCLK,
>             SAMPCON_CLOCK_DIV_1,
>             REFVOLT_LEVEL_1_5
>         };
> 
> According your advice. And now I'm getting the values (raw data) inside
> the correct margins (390-475). Right now when I'm measuring the air
> (with
> the soil sensor) the telosb node is getting   452  : - )
> 
> 
> ... I have a doubt.
> 
> By his formula given:
> 
> Vin = ADC * Vref / 4096
> X * Vbat = ADC * Vbat / 4096
> 
> Why you consider Vref = Vbat if the Vref = 1.5 and the Vbat = 3.0 V?
> because: REFVOLT_LEVEL_1_5
> 
> Please would you tell me what is my error?
> 
> 
> Thanks a lot for you answer and to share his knowledges!!!
> 
> I can't believe is working fine now!!!
> 
> 
> Yours faithfully,
> 
> Alejandro.
> 
> 
> 
> 
> 
> > Hi! Please send your questions to the mailing list, too, so others
> might
> > benefit. See below for (hopefully) an answer to your question.
> >
> >> -----Original Message-----
> >> From: [email protected] [mailto:[email protected]]
> >> Sent: maandag 16 april 2012 11:33
> >> To: Michiel Konstapel
> >> Subject: Re: [Tinyos-help] Error marging using REFVOLT_LEVEL_2_5 to
> >> read a portADC
> >>
> >> Dear Michiel.
> >>
> >> Thanks a lot for your answer. I'm trying to measure a Soil probe
> >> attached with a telosb mote. I'm sending 3V from the Exclusive
> Digital
> >> I/O 2 (GIO2) telosb pin to the Soil probe. It is entering to the
> soil
> >> probe as the excitation input, then the soil probe returns its
> sensor
> >> value to the mote, this value is entering to the Analog Input 0
> (ADC0)
> >> in the telosb mote.
> >>
> >> I was reading that according to the soil probe manual it must
> receive
> >> an excitation in the range of 2-5V and for 2V 2mA for 10ms
> >> approximately. The value that the soil probe returns to the telosb
> is
> >> in the ranges between
> >> 10 and 50% of the excitation voltage, then is less of 3V.
> >>
> >> When I measure the soil probe when it is in the air, I must get
> values
> >> in the ranges between 375-475.
> >
> > Against what reference? 2.5V, or against whatever you're using as the
> > excitation voltage?
> >
> >> But when I put a pair of new batteries AA (3.0
> >> V) the value I get is approximately of 570. But when I put a pair of
> >> batteries used with 2.5 V  the measure is better I mean now is 470.
> For
> >> this motive is my doubt.
> >
> > The reference voltage is generated from your supply voltage, so once
> your
> > batteries are down to 2.5V, it won't be able to generate a 2.5V
> reference
> > voltage anymore. I'm not sure what the minimum Vcc for the voltage
> > generator is, you'd have to check the data sheet
> > (http://www.ti.com/lit/ds/symlink/msp430f1611.pdf).
> >
> > To check your measurements, just measure the output of the soil
> sensor
> > with a volt meter, and convert your ADC readings back to a voltage
> and see
> > if they match:
> >
> > ADC = Vin / Vref * 4096
> > Vin = ADC * Vref / 4096
> >
> > For example, your measurement of 470, with the 2.5V reference, would
> mean
> > the input voltage was
> > Vin = 470 * 2.5 / 4096 = 0.29 V
> >
> > If your volt meter tells you a very different value, something's
> wrong,
> > somewhere.
> >
> > Since the soil probe has an output voltage that's relative to its
> > excitation voltage, it's probably easier to use your battery voltage
> as
> > the reference. To select that, use sref: REFERENCE_AVcc_AVss in your
> ADC
> > config. Then, it'll work all the way down to 2V, and you can
> calculate the
> > percentage output, X, directly, independent of what your actual
> battery
> > voltage is:
> >
> > Vin = ADC * Vref / 4096
> > X * Vbat = ADC * Vbat / 4096
> > X = ADC / 4096
> >
> > For example, if you're reading 470 on the ADC, that's 470/4096 * 100%
> =
> > 11.4%.
> >
> > Best,
> > Michiel
> >
> 


_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to