Hi, Thanks a lot as my problem is fixed (I guess!!!!). By removing the code from ResourceConfigure, it works fine only if I use ATM128_ADC_VREF_AVCC or ATM128_ADC_VREF_2_56 but still gives me 0x3ff with ATM128_ADC_VREF_OFF as probably the voltage its reading is above some reference so it gives the max value of 0x3ff. But I need to clarify a point here. If I am using the internal 2.56V as the reference voltage, I get the readings as 0x190 0x191..... which is decimal 400 401 (Vo) so to convert this into V(t) to know the temperature, I do something like in the OscilloscopeMsg.java file:
----------------------------------------------------------------------- V(t) = (Vo / 1024) * 2.56 Now the LM61 temperature sensor datasheet says that there is a DC offset of 600mV and its temperature slope is 10mV/degree Celsius For a Vo of say decimal 400, the result would be something like: V(t) = (400 / 1024) * 2.56 = 1V or 1000mV (1024 in this equation is the resolution of 10 bit ADC) V(new) = V(t) - 600mV = 400mv Since temperature slope is 10mV/degree Celsius for LM61, the temperature reading from temp sensor that I am reading is: Temperature = 400 / 10 = 40 degree Celsius ----------------------------------------------- AM I on the right path??????? Or am I calculating it wrong??? Thanks a lot for your help.... Cheers, Varun Jain R&D Embedded Design Engineer Spiderbox Pty. Ltd. -----Original Message----- From: Razvan Musaloiu-E. [mailto:[EMAIL PROTECTED] Sent: Monday, June 02, 2008 11:55 AM To: Varun Jain Cc: [email protected] Subject: RE: TinyOS:Amtega128 ADC values help 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:[EMAIL PROTECTED] > Sent: Sun 6/1/2008 10:21 AM > To: Varun Jain > Cc: [email protected] > 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: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >> W: http://www.spiderbox.com.au <http://www.spiderbox.com.au/> <http://www.spiderbox.com.au/> >> >> > > > _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
