On Tue, Mar 16, 2010 at 23:50, Attila Strba <[email protected]> wrote:

> Hi Vlado,
> as far as I read the source and underestood the TEP's right the tag has no
> influence on the transofrmation calculation right? It just makes sure the
> timer conversion types does not get mixed ?
>
>
Yes, but TMicro is a confusing name for something that is 1/16us.


> The clock source is the 16MHz XTAL oscillator driving the miccrocontroller
> so I guess metric. After 65535 tackts wraps around and 1 tick takes 1/16us.
> To be honest I don't underestand how could be a microcontroller clock source
> be "binary".
>
>
What I mean is when you say 1MHz this can be 1 * 1000 * 1000 ticks per
second or 1 * 1024 * 1024. When we say that the clock source has 1MHz in
tinyos, it means the later. I.e. all units are binary, i.e. 1 second has
1024 binary milliseconds.


> Any more idea where I could look for problems?
>
>
No, sorry. I guess you will have to debug this with a scope and toggling a
pin in the fire events of the alarms in the transform components.

Vlado


> thanx a lot for the help Vlado,
>
> greetings
>
> Attila
>
>
>
> ------------------------------
> *From:* Vlado Handziski <[email protected]>
> *To:* Attila Strba <[email protected]>
> *Cc:* [email protected]
> *Sent:* Tue, March 16, 2010 5:23:56 PM
>
> *Subject:* Re: [Tinyos-help] Timer precision problem during proting to
> platform
>
> If you like to export a 16MHz timer, the TMicro precision tag is not
> appropriate. You can use T16mhz (just like we have T32khz) for this
> particular prescaler, or TOne, etc. like in the atm128 when the prescaler is
> not fixed. Is this a binary 16MHz clock source or metric? TinyOS is always
> using binary units. The transforms with the 14 bit-shift look correct to me.
>
> Vlado
>
>
> On Tue, Mar 16, 2010 at 08:26, Attila Strba <[email protected]> wrote:
>
>> Hi Vlado,
>> thanks for the mail it helped a lot. I implemented this the following way
>> like described but the TimerMilli was doing random periodes. For example I
>> tried to get a fire every 1ms and I got it for every 700us. I think my  HPL
>> works fine, because if I use the HPL component as separate I can get correct
>> fire events. But when I go through all the transformation it behaves
>> strange.
>>
>> For sure I am doing something wrong. Just to make sure I underestand you
>> right, could you please confirm my steps?
>>
>> *Steps:*
>>
>> - I create a HPL for the timer where 1 tick has 1/16=0,0625us
>> - I provide an alarm, counter interface in HPL following way
>>                provides interface Counter< TMicro, uint16_t> as Counter
>>                provides interface Alarm< TMicro, uint16_t> as Alarm[
>> uint8_t id ];
>> - the counter signalises overflow in 4.096ms = (65536 ticks)
>> - the alarm is implemented using the compare register, and the fire event
>> is the compare match with the counter
>> - I transform the counter to 32bit 1ms counter following way, 2^14 ticks =
>> 16384 * 0.0625 = 1024 which is aprox. 1ms
>>
>> *CounterMilli32C.nc:*
>>     components CounterMicro16C as CounterFrom;
>>     components new
>> TransformCounterC(TMilli,uint32_t,TMicro,uint16_t,14,uint32_t) as Transform;
>>
>>   Counter = Transform.Counter;
>>   Transform.CounterFrom -> CounterFrom;
>>
>> - I transform the alarm to 32bit 1ms counter following way, 14: 2^14 ticks
>> = 16384 * 0.0625 = 1024 which is aprox. 1ms
>> *AlarmMilli32C.nc:*
>>   components new AlarmMicro16C() as AlarmFrom;
>>   components CounterMilli32C as Counter;
>>   components new TransformAlarmC(TMilli,uint32_t,TMicro,uint16_t,14) as
>> Transform;
>>
>>    Init = AlarmFrom;
>>    Alarm = Transform;
>>    Transform.AlarmFrom -> AlarmFrom;
>>    Transform.Counter -> Counter;
>>
>> - I provide both AlarmMilli32C and CounterMilli32C to HilTimerMilliC.ncso I 
>> can use the TimerMilli interface for timing:
>> *HilTimerMilliC.nc:*
>> components new AlarmMilli32C();
>> components new AlarmToTimerC(TMilli);
>> components new VirtualizeTimerC(TMilli,uniqueCount(UQ_TIMER_MILLI));
>>
>> Init = AlarmMilli32C;
>> TimerMilli = VirtualizeTimerC;
>>
>> VirtualizeTimerC.TimerFrom -> AlarmToTimerC;
>> AlarmToTimerC.Alarm -> AlarmMilli32C;
>>
>> Thank you very much for the help,
>> greetings
>> Attila
>>
>> ------------------------------
>> *From:* Vlado Handziski <[email protected]>
>> *To:* Attila Strba <[email protected]>
>> *Cc:* [email protected]
>> *Sent:* Tue, March 16, 2010 3:46:07 AM
>> *Subject:* Re: [Tinyos-help] Timer precision problem during proting to
>> platform
>>
>> On Sun, Mar 14, 2010 at 23:50, Attila Strba <[email protected]> wrote:
>>
>>> Hi Guys,
>>>
>>>
>>> I am trying to port the TinyOS to the Dolphin EO3000I chip from EnOcean
>>> and I have a poblem with the Timer precission.
>>>
>>> As I read from the TEP 102, it is written that the HLP timer interface
>>> should provide either 32kHz or 1ms or 1us tick precision. The Dolphin runs
>>> on 16MHz clock. The Timer0 I am trying to use is 16bit, uses the same clock
>>> source and it has the possibility to use either 2,4,8 prescaler. But that's
>>> all, so in best case using prescaler 8 I would get 0.5us pro 1 tick.
>>>
>>>
>>>
>> The TEP 102 is only specifying how the HIL _must_ look, and provides
>> examples how the lib/timer components can be used to build a flexible HAL
>> layer. The HPL component interfaces are fully driven by the hardware
>> characteristics, so you can do whatever you like there.
>>
>>
>>> My question is what to do with this? I am far away from the values TEP102
>>> considers. The transformation components are only for the width adjustment
>>> right? (i.e. TransformAlarmC).
>>> Or should I manually adjust the values I get through the HPL interface
>>>  using constants (multiplication of the input values by 2) such way that I
>>> get 1us interface?
>>>
>>>
>> My suggestion is to expose the maximal precision on HPL and as
>> Counters/Alarms on HAL level and then use TransformAlarmC which also
>> transforms precision (to a lower one) to provide the HIL.
>>
>> Vlado
>>
>>
>>
>>> Any help is highly apritiated,
>>>
>>> greetings
>>>
>>> Attila
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Tinyos-help mailing list
>>> [email protected]
>>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>>>
>>
>>
>>
>
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to