[Tinyos-help] TinyOS:Amtega128 ADC values help
Razvan Musaloiu-E.
razvanm at cs.jhu.edu
Sun Jun 1 18:55:14 PDT 2008
Hi!
On Sun, 1 Jun 2008, Varun Jain wrote:
> Hi,
> Thanks for your reply. I have taken the basic sensor code from the
> tos/sensorboards/basicb. Further, I have modified it according to my
> Chipcon CC2420DBK boards which has an onboard LM61 temperature sensor.
> The code is as follows:
>
> generic configuration TempC() {
> provides interface Read<uint16_t>;
> }
> implementation {
> components new AdcReadClientC(), TempP;
> components HplAtm128GeneralIOC as AtmGeneralIO;
>
> Read = AdcReadClientC;
> AdcReadClientC.Atm128AdcConfig -> TempP;
> AdcReadClientC.ResourceConfigure -> TempP;
> TempP.TempPin -> AtmGeneralIO.PortF3; //WIRING PORT-F3 and then setting it up in TempP
> }
>
> ---------------------------------------------
> module TempP
> {
> provides {
> interface ResourceConfigure;
> interface Atm128AdcConfig;
> }
> uses {
> interface GeneralIO as TempPin;
> }
> }
> implementation
> {
> async command uint8_t Atm128AdcConfig.getChannel() {
> return ATM128_ADC_SNGL_ADC3;
> }
>
> async command uint8_t Atm128AdcConfig.getRefVoltage() {
> return ATM128_ADC_VREF_OFF;
> }
>
> async command uint8_t Atm128AdcConfig.getPrescaler() {
> return ATM128_ADC_PRESCALE;
> }
>
>
> async command void ResourceConfigure.configure() {
> call TempPin.makeOutput();
> call TempPin.set();
> }
>
> async command void ResourceConfigure.unconfigure() {
> call TempPin.clr();
> }
> }
>
> ----------------------------------------------
I found your problem: PortF3 is exactly the ADC3 and you are making it
output when you are trying to read something from it. I removed the code
from ResourceConfigure.configure and ResourceConfigure.unconfigure and
then Oscilloscope application star working properly. :-)
All the best!
Razvan ME
> I am using the Oscilloscope application where DemoSensorC is called
> which further calls the TempC() module. I am getting constant reading of
> 03 FF 03 FF 03 FF 03 FF 03 FF in the payload part using the listen tool.
>
> If i use the MsgReader tool from Oscilloscope application and connect
> the serial port on the "BaseStation" application, i constantly get '0xff
> 0xff.... 0xff' as the readings for "local.readings" in the
> "OscilloscopeMsg"
>
> If i use a voltmeter across the temp.sensor, it gives about 1000mV which
> is approximately 40 degrees according to LM61 (National Semiconductor
> temp sensor) datasheet, but my readings still come out to be 03 FF 03
> FF..., it does not vary at all. Even after putting the temp. sensor in
> front of a hot air source which makes it really hot and voltage changes
> to 1100mV which is 50 degrees C [10mV/degree C + 600mV(offset) ].
>
> Even if i use "ATM128_ADC_VREF_2_56" or "ATM128_ADC_VREF_AVCC" to get
> the reference voltage, the result is the same, if the reading across the
> temp.sensor is only 1V then these references should be alright. What is
> the effect of using "ATM128_ADC_VREF_OFF" but anyways in all cases it
> gives me 03 FF 03 FF...
>
> Thanks.
>
> Cheers,
> Varun
>
>
> ________________________________
>
> From: Razvan Musaloiu-E. [mailto:razvanm at cs.jhu.edu]
> Sent: Sun 6/1/2008 10:21 AM
> To: Varun Jain
> Cc: tinyos-help at millennium.berkeley.edu
> Subject: Re: TinyOS:Amtega128 ADC values help
>
>
>
> Hi!
>
> Sorry for answering so late. :-(
>
> On Fri, 30 May 2008, Varun Jain wrote:
>
>> Hi,
>>
>> I am currently trying to set up a WSN using tinyos-2.x. I have Chipcon's
>> CC2420DBK with me, it has an onboard temperature sensor LM61 attached to
>> it with atmega128 processor. I am trying to read the temperature values
>> from this sensor, I am constantly getting 0x3ff as my data in the raw
>> packet using the Listen tool. I am trying to get Oscilloscope
>> application running. I am reading the value on ADC3 channel on PortF3.
>>
>
> The Atmega128 has 10 bits of precision so the 0x3ff is the maximum value.
> This is the value you'll get if the voltage you are reading is above the
> reference used by the ADC. How did you configured the ADC? Can you measure
> the output voltage from temperature sensor with a voltmeter?
>
> --
> Razvan ME
>
>>
>> I read somewhere you discussing about this value. Can you guide me as to
>> what does this value depict, I think I am reading wrong values as I
>> keep the board in front of hot air source which really heats up the
>> sensor but still it gives the same value.
>>
>>
>>
>> Any help or direction will really help...
>>
>>
>>
>> Varun Jain
>> R&D Engineer
>> Spiderbox Pty. Ltd.
>> P: +617 3318 9509
>> F: +617 3318 9595
>> M: +61401 091 248
>> E: varun at spiderbox.com.au <mailto:bdarcy at spiderbox.com.au>
>> W: http://www.spiderbox.com.au <http://www.spiderbox.com.au/> <http://www.spiderbox.com.au/>
>>
>>
>
>
>
More information about the Tinyos-help
mailing list