[Tinyos Core WG] T2 Mica* Timers

David Moss dmm at rincon.com
Fri Feb 2 12:16:18 PST 2007


We're seeing lots of issues with the reliability of AVR 
timers.  Has anybody else been working on testing timers 
on mica* mote types?  They just don't seem to work as 
reliably as they did in TinyOS 1.x.

If we set a one-shot timer very often, eventually timers 
fire at inappropriate times.  "Often" for us means setting 
several one-shot timers on each send or receive from the 
radio - and we're blasting packets in and out.  Eventually 
the timers must say "I give up" and fire immediately, at 
the wrong time.  I think this may also be related to the 
intermittent micaz CC2420 SPI-bus lockup problem - it's 
very possible a timer fires inappropriately and disables 
the SPI bus in CC2420TransmitP.

This issue has been so intermittent and destructive that 
we've removed timers completely from all areas of our 
micaz applications (except the lazy radio duty cycling 
timer) and replaced them with our own custom timer 
library.  This library simply implements the Timer 
interface and uses spinning tasks to increment a value, 
and when the value gets above whatever threshold was set 
to begin with, this "timer" hack fires.  Of course, it's 
not accurate at all time-wise, but we aren't worried about 
that when we use it.  The goal was to prevent the timer 
from firing prematurely.

Does anybody have time to look into this?  It's difficult 
to reproduce, but the problem is certainly there.

Thanks,
-David



More information about the Tinyos-2.0wg mailing list