Jan,
Thanks for help. My program works now. Actually it is a bit  
embarrassed to say the reason was that the sensor board was not  
plugged tightly enough on the mote.

Also I noticed there was no adc12 modules for accelerometers on  
telosb. Could I make such a module and contribute to the code tree of  
telosb? I tested my module works fine for ADXL321.
Cheers,
Zhiyi


On 28/11/2011, at 11:15 PM, Jan Hauer wrote:

> Your configuration seems identical to the telosa/b configuration
> (S1087-01 light sensor on port A5). There is already a component (have
> you tried it?) ->
> tinyos-main/tos/platforms/telosa/chips/s10871/HamamatsuS10871TsrC.nc
>
> Jan
>
> On Sun, Nov 27, 2011 at 11:52 PM, zhiyi <[email protected]> wrote:
>> Sorry for kicking the old dirts. I followed this thread but have  
>> not found
>> what I needed.
>>
>> I have the similar problem with ADC: I can't read proper data from  
>> light
>> sensors or any sensor on the sensor board EM1000.
>>
>> I have tried Oscilloscope and it works for the InternalTemperature  
>> and
>> InternalVoltage. What I did was I create a new sensor configuration  
>> similar
>> to these two templates. My configuration is:
>>
>>  const msp430adc12_channel_config_t config = {
>>      inch: INPUT_CHANNEL_A5,
>>      sref: REFERENCE_VREFplus_AVss,
>>      ref2_5v: REFVOLT_LEVEL_1_5,
>>      adc12ssel: SHT_SOURCE_ACLK,
>>      adc12div: SHT_CLOCK_DIV_1,
>>      sht: SAMPLE_HOLD_4_CYCLES,
>>      sampcon_ssel: SAMPCON_SOURCE_SMCLK,
>>      sampcon_id: SAMPCON_CLOCK_DIV_1
>> }
>>
>> A5 is supposed to be the channel for S1087-01 light sensor on  
>> EM1000. What I
>> read are the values gradually decreased and then within a few  
>> seconds stayed
>> at a almost constant value (no change even if I changed the light).  
>> I tried
>> HOLD_64, but there was no difference. I even took off the sensor  
>> board,
>> there was no difference.
>>
>> My mote was CM4000, by the way. I placed my sensor configuration  
>> under
>> tos/chips/msp430/sensors, which I worked fine in terms of  
>> compilation.
>>
>> Could you please shed some light what I could try next?
>>
>> Many thanks for your help.
>>
>> Zhiyi
>>
>>
>>> Are there any of the "standard" telosb external sensors
>>> (Humidity/Temperature/Light) available on your telosb ? Can you test
>>> whether they give you good readings (or test your code with the
>>> internal sensors of the msp430).
>>>
>>>>> 2) open tinyos-2.x/tos/chips/msp430/adc12/Msp430Adc12.h and  
>>>>> comment
>>>>> out "ADC12_P6PIN_AUTO_CONFIGURE". Now the Ax PINs are not
>>>>> automatically configured, so you should (e.g. in Boot.booted()),  
>>>>> do
>>>>> this:
>>>>>
>>>>> call Port61.selectModuleFunc();
>>>>> call Port61.makeInput();
>>>>>
>>>>> (in your configuration:
>>>>>   components HplMsp430GeneralIOC;
>>>>>   MyDriverC.Port61 -> HplMsp430GeneralIOC.Port61;)
>>>>
>>>> I'm not sure I understand - should I create a new driver myself?  
>>>> Based
>>>> on an existing module?
>>>>
>>>
>>> The pin(s) on the msp430 to which your sensor is attached must be
>>> configured to be in input and module (ADC) function mode. This is  
>>> done
>>> automatically if ADC12_P6PIN_AUTO_CONFIGURE is defined (which is the
>>> default). But the pins are switched to module function mode just
>>> before the conversion and back to IO function mode afterwards. Maybe
>>> there is a timing issue, so you could try to disable the default
>>> behaviour and try to take care of the pin configuration yourself.
>>>
>>>
>>> Jan
>>
>>

=======================
Zhiyi Huang
Dept of Computer Science
University of Otago
Email: [email protected]
Phone: 0064-3-4795680
Fax: 0064-3-4798529

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

Reply via email to