On 05/25/2012 06:58 PM, András Bíró wrote:
> Hi,
> On Thu, May 24, 2012 at 4:30 PM, Ugo Colesanti
>
> <colesa...@dis.uniroma1.it>  wrote:
>> Thanks for your help. If I have correctly understood what you are saying, I
>> have the following options (none of them is nice):
> You can still change the hardware :)
I bought for of this devices... must find something to do with them :)

>> - Use the external Transceiver Oscillator as Symbol Counter and manage the
>> transceiver driver to avoid sleep mode (it seems quite complicated).
>>
>> I've checked the fuses of the zigduino, they are set as: low_fuses=0xFF ,
>> high_fuses=0xDA , extended_fuses=0xF5
>> The low fuse is set to select the external 16Mhz transceiver oscillator,
>> thus, I started following the second option. It seems to work even if the
>> timer stops if I force the atmega128rfa1 to standby mode (it shouldn't do
>> that) while keeping the idle mode works fine.
> Strange, but good to know.
Maybe I made something wrong, I will check again...

>> Ugo
>>
>> p.s. the McuInitP does not seem to support the external oscillator since all
>> the CLKPR values assumes internal RCOscillator with 1:2 prescaler. I forced
>> CLKPR to 0x00 since the default value, 0x0f was for RC Oscillator only.
> You're right, there should be a define for that.
>
> Andris

Thanks again for your help.

Ugo

>>
>>
>>
>> On 05/23/2012 10:11 PM, András Bíró wrote:
>>> Hi Ugo,
>>>
>>> On Wed, May 23, 2012 at 5:37 PM, Ugo Colesanti
>>> <colesa...@dis.uniroma1.it>    wrote:
>>>> I managed to have TimerMilli working without re-wiring:
>>>>   - I used Blink as test
>>>>   - I changed SYM_TIMER_MODE to ATMRFA1_CLKSC_XTAL but it was not enough
>>>> since as the datasheet says: "If the transceiver goes from active mode
>>>> into sleep  mode, the symbol counter clock source is switched to the RTC
>>>> clock automatically [...] After wake up, the counter switches back to
>>>> the clock source which was selected before  going to sleep mode."
>>>>   - Hence, I added ActiveMessageC and started it, but TimerMilli was
>>>> still not working
>>>>   - Then I found this thread:
>>>>
>>>> http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=110931&start=0
>>>>
>>>> <http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=110931&start=0>
>>>> where it seems that when the radio exits sleep mode, it does not select
>>>> XTAL unless the following code is run:
>>>>
>>>>      ASSR_struct.as2 = 1;
>>>>      ASSR_struct.as2 = 0;
>>>>
>>>>      the code enables and disables the RTC.
>>>> - Thus, in the splitControl.startDone of Active message I added:
>>>>
>>>>       atomic{
>>>>          ASSR = 1<<    AS2;
>>>>          ASSR = 0<<    AS2;
>>>>      }
>>>>
>>>>      and yep, it worked :)
>>>>
>>>> By the way I realized that without the RTC, the symbol counter as
>>>> TimerMilli is useless since it would be stopped each time the radio
>>>> would go into sleep state, thus i think that re-wiring everything to
>>>> TMcu as previously done is better. Isn't it?
>>> First of all, I'm not really familiar with the new (or the old) timer
>>> stack, but I'm quite familiar with the rfa1 (I wrote some of the
>>> drivers for it, and I'm still working with rfa1 based motes).
>>>
>>> Both solutions are bad, but I'm not sure which one is less bad.
>>>
>>> First, the internal RC oscillator is quite inaccurate. The 16MHz radio
>>> crystal is much better, but it's way too fast for RTC usage, if you
>>> scale it down to millisecs, the nominal frequency error will be much
>>> bigger then a 32 kHz crystal.
>>>
>>> The bigger problem is the energy. You're correct, you need the radio
>>> in TRX_OFF mode to use it's oscillator. Turning it on with
>>> ActiveMessage brings the transciever to RX_ON mode, and I think it
>>> consumes much more power than TRX_OFF. However turning the transciever
>>> on without messing up the state machine of the radio timer is not an
>>> easy task.
>>>
>>> If you want to use the main clock, it will never let the mcu to enter
>>> power-down/power-save mode (only standby/extended standby). By the
>>> way, you have to do this manually with connecting
>>> McuPowerOverride/McuPowerState interfaces to McuSleepC.
>>>
>>> If I were you, I would use the main clock, and if I need more accurate
>>> timing, I would change the corresponding fuses on the mcu to use the
>>> radio crystal for the main clock.
>>>
>>> Andirs
>>>
>>>> Ugo
>>>>
>>>> On 05/21/2012 06:30 PM, Ugo Colesanti wrote:
>>>>> Hi, I just made the port of TinyOS-2.1.2-rc1 for the Zigduino platform,
>>>>> an arduino clone with atmega128rfa1 chip. The porting was pretty simple
>>>>> since the atm128rfa1 is already supported. The only issue I had was
>>>>> related to the missing RTC on the zigduino which is used by TimerMilli
>>>>> and Alarm62khz components. I made everything work by applying the
>>>>> following changes:
>>>>>     - I re-wired AlarmMilli32C and CounterMilli32C to AlarmMicro32C and
>>>>> CounterMicro32C respectively
>>>>>     - I used AlarmMicro32C and LocalTimerMicroC in the RFA1DriverLayerC
>>>>>     - I redefined TRadio as TMicro and set RADIO_ALARM_MICROSEC to 1 and
>>>>> RADIO_ALARM_MILLI_EXP to 0 in RadioConfig.h
>>>>>
>>>>> With these changes I've been able to successfully run Blink,
>>>>> RadioCountToLeds,tests/TestNetworkLPL and tutorial/Printf . However I
>>>>> think there is a cleaner way to get the millitimer and 62khz timer to
>>>>> properly work on zigduino. In particular I think there is a way to tell
>>>>> tinyos to use the XTAL1 instead of OSC1 at least for Alarm62khz.  I
>>>>> tried to set SYM_TIMER_MODE   to  ATMRFA1_CLKSC_XTAL in TimerConfig.h
>>>>> but it has not worked. Probably I missed some steps but I get lost with
>>>>> all those timers :S
>>>>> Does somebody have any suggestion?
>>>>>
>>>>> Ugo
>>>>>
>>>>> p.s. I put my code on: http://code.google.com/p/zigduino-tinyos/
>>>>>
>>>>>
>>>>>
>>>>>
>>>> --
>>>> Ugo Maria Colesanti
>>>> Dipartimento di Informatica e Sistemistica
>>>> Sapienza Universita' di Roma
>>>> Via Ariosto 25, II floor, room B221
>>>> 00185, Rome
>>>> http://wiserver.dis.uniroma1.it/cms/index.php?id=8
>>>> Phone:  +39 06 77274003
>>>> Fax:    +39 06 77274002
>>>>
>>>> _______________________________________________
>>>> Tinyos-help mailing list
>>>> Tinyos-help@millennium.berkeley.edu
>>>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>>
>>
>> --
>> Ugo Maria Colesanti
>> Dipartimento di Informatica e Sistemistica
>> Sapienza Universita' di Roma
>> Via Ariosto 25, II floor, room B221
>> 00185, Rome
>> http://wiserver.dis.uniroma1.it/cms/index.php?id=8
>> Phone:  +39 06 77274003
>> Fax:    +39 06 77274002
>>


-- 
Ugo Maria Colesanti
Dipartimento di Informatica e Sistemistica
Sapienza Universita' di Roma
Via Ariosto 25, II floor, room B221
00185, Rome
http://wiserver.dis.uniroma1.it/cms/index.php?id=8
Phone:  +39 06 77274003
Fax:    +39 06 77274002

_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to