[Tinyos-host-mote-wg] Re: [Tinyos-2.0wg] CC2420 radio stack

Joe Polastre joe.polastre at gmail.com
Fri Jul 29 09:09:38 PDT 2005


Currently I don't plan to add FIFO in to the default radio stack (I'll
probably add it elsewhere).  It would be a sweet addition, but you'd
kill all the efficiency that you'd potentially gain by busy waiting or
timer waiting on the micaz.  That's one thing that assumes all the
I/Os from the CC2420 are connected to interrupts.  On the MSP430, we
decided to only support platforms that include a 32kHz oscillator
(even though the MSP430 will run without one).  Likewise, it would be
nice to say that the CC2420 is for platforms with and without
interrupts, but that requires forking the stack to create the "with
interrupts" option unfortunately.

In an ideal world, I would mod the hardware to hook up those two pins
to either interrupts or captures.

The short answer is the CCA pin is much more critical than the FIFO
pin in the short term.

-Joe

On 7/29/05, mturon at xbow.com <mturon at xbow.com> wrote:
> 
> Hi Joe,
> 
> Thanks for the input.  The choice for CCA on micaz currently is:
>         * Set Timer, check CCA pin, if not set, start new timer.
> 
> This means the micaz platform will implement this functionality in:
>         platforms/micaz/chips/cc2420/CC2420RadioInterruptCcaM.nc
> 
> Any ideas on handling of the FIFO pin?  I assume the timer solution could
> work there too.  Do you plan to set aside FIFO optimized concurrent packet
> reception as an extended interface to the radio?
> 
> Martin
> __________________________________________________
> Martin Turon  |  Crossbow Technology, Inc.
> 
> -----Original Message-----
> From: Joe Polastre [mailto:joe.polastre at gmail.com]
> Sent: Friday, July 29, 2005 8:30 AM
> To: mturon at xbow.com
> Cc: tinyos-2.0wg at mail.millennium.berkeley.edu
> Subject: Re: [Tinyos-2.0wg] CC2420 radio stack
> 
> There are 4 ways to tell the the oscillator has started (this is one
> example of a pin that is needed by the radio stack):
> 
> * Interrupt from CCA pin (preferred)
> * Spin on CCA pin
> * Spin on OSCON bit in the CC2420 status register
> * Set Timer, check CCA pin, if not set, start new timer.
> 
> Now all 4 of these options may present an "interrupt" interface, even
> though they're not actually sourced by interrupts.  You'll need to do
> one of them otherwise how would you know that the oscillator had
> started?
> 
> The "interrupt emulation" was discussed in April 2004.
> 
> And its not my stack that's requiring you to emulate interrupts, its
> the state machine of the CC2420 radio that expects to interrupt the
> microcontroller before transitioning to the next state.
> 
> -Joe
> 
> On 7/29/05, mturon at xbow.com <mturon at xbow.com> wrote:
> >
> > Hi Joe,
> >
> > There is a real person on the other side of this discussion.  I'm the
> person
> > that needs to tie your software stack to an existing platform that doesn't
> > have external interrupts on two of the pins.  Can we keep the dialog a bit
> > more respectful and solution oriented?
> >
> > If your stack design is going to require me to emulate interrupts in SW,
> > then let's start a discussion on that.
> >
> > Martin
> > __________________________________________________
> > Martin Turon  |  Crossbow Technology, Inc.
> >
> > -----Original Message-----
> > From: tinyos-2.0wg-bounces at Mail.Millennium.Berkeley.EDU
> > [mailto:tinyos-2.0wg-bounces at Mail.Millennium.Berkeley.EDU] On Behalf Of
> Joe
> > Polastre
> > Sent: Friday, July 29, 2005 1:21 AM
> > To: tinyos-2.0
> > Subject: [Tinyos-2.0wg] CC2420 radio stack
> >
> > CCA will be used as an interrupt because that's how you determine if
> > the 16MHz oscillator has started.  That has been used in the radio
> > stack since its inception and will continue to be used (why would you
> > want to poll???) FIFO is extremely useful as an interrupt for doing
> > concurrent packet receptions. (Ie, MCU receives from RXFIFO while
> > CC2420 receives next packet).  I would figure that Xbow is aware of
> > this since it is used in most Zigbee stacks (including the ones that
> > jhill and others have written).
> >
> > I can't help it that the MicaZ doesn't use these as interrupts and
> > you're not happy about that situation.  Regardless, these pins are
> > extremely useful; its too bad the MicaZ has to poll instead of get an
> > interrupt (This is an issue I brought up in Nov 2003 at the MicaZ
> > design review)
> >
> > If you don't like the architecture for the CC2420, please bring it up
> > with the group rather than subtle innuendos in your commit messages.
> >
> > > Empty stubs for external interrupt wiring required by CC2420Radio.  I
> hope
> >
> > > the stack never actually uses FIFO and CCA as irq, because it won't be
> > > cross platform compatible.
> >
> > Finally, this makes no sense because both FIFO and CCA are CC2420
> > dependent, NOT platform dependent.
> >
> > -Joe
> >
> > ---------- Forwarded message ----------
> > From: Martin Turon <mturon at users.sourceforge.net>
> > Date: Jul 28, 2005 10:24 PM
> > Subject: [Tinyos-2-commits] CVS:
> > tinyos-2.x/tos/platforms/micaz/chips/cc2420
> > CC2420RadioInterruptCCA.nc, 1.1.2.1,    1.1.2.2
> > CC2420RadioInterruptFIFO.nc, 1.1.2.1, 1.1.2.2
> > To: tinyos-2-commits at mail.millennium.berkeley.edu
> >
> >
> > Update of /cvsroot/tinyos/tinyos-2.x/tos/platforms/micaz/chips/cc2420
> > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16842
> >
> > Modified Files:
> >       Tag: tinyos-2_0_devel-BRANCH
> >         CC2420RadioInterruptCCA.nc CC2420RadioInterruptFIFO.nc
> > Log Message:
> > Empty stubs for external interrupt wiring required by CC2420Radio.  I
> > hope the stack never actually uses FIFO and CCA as irq, because it
> > won't be cross platform compatible.
> >
> > Index: CC2420RadioInterruptCCA.nc
> > ===================================================================
> > RCS file:
> >
> /cvsroot/tinyos/tinyos-2.x/tos/platforms/micaz/chips/cc2420/Attic/CC2420Radi
> > oInterruptCCA.nc,v
> > retrieving revision 1.1.2.1
> > retrieving revision 1.1.2.2
> > diff -C2 -d -r1.1.2.1 -r1.1.2.2
> > *** CC2420RadioInterruptCCA.nc  13 Jul 2005 07:02:28 -0000      1.1.2.1
> > --- CC2420RadioInterruptCCA.nc  29 Jul 2005 05:24:15 -0000      1.1.2.2
> > ***************
> > *** 32,40 ****
> >   {
> >     components
> > !       CC2420RadioIO
> > !     , new InterruptM()
> >       ;
> >
> >     Interrupt = InterruptM.Interrupt;
> > !   InterruptM.HPLInterrupt -> CC2420RadioIO.CC2420RadioCCA;
> >   }
> > --- 32,40 ----
> >   {
> >     components
> > !       HPLInterruptC,
> > !       new InterruptM()
> >       ;
> >
> >     Interrupt = InterruptM.Interrupt;
> > !   InterruptM.HPLInterrupt -> HPLInterruptC.NoInt;  // not connected to
> irq
> >   }
> >
> > Index: CC2420RadioInterruptFIFO.nc
> > ===================================================================
> > RCS file:
> >
> /cvsroot/tinyos/tinyos-2.x/tos/platforms/micaz/chips/cc2420/Attic/CC2420Radi
> > oInterruptFIFO.nc,v
> > retrieving revision 1.1.2.1
> > retrieving revision 1.1.2.2
> > diff -C2 -d -r1.1.2.1 -r1.1.2.2
> > *** CC2420RadioInterruptFIFO.nc 13 Jul 2005 07:02:28 -0000      1.1.2.1
> > --- CC2420RadioInterruptFIFO.nc 29 Jul 2005 05:24:15 -0000      1.1.2.2
> > ***************
> > *** 32,41 ****
> >   {
> >     components
> > !       CC2420RadioIO
> > !     , new InterruptM()
> >       ;
> >
> >     Interrupt = InterruptM.Interrupt;
> > !   InterruptM.HPLInterrupt -> CC2420RadioIO.CC2420RadioFIFO;
> >   }
> >
> > --- 32,41 ----
> >   {
> >     components
> > !       HPLInterruptC,
> > !       new InterruptM()
> >       ;
> >
> >     Interrupt = InterruptM.Interrupt;
> > !   InterruptM.HPLInterrupt -> HPLInterruptC.NoInt;  // not connected to
> irq
> >   }
> >
> >
> > _______________________________________________
> > Tinyos-2-commits mailing list
> > Tinyos-2-commits at mail.millennium.berkeley.edu
> >
> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-2-commi
> > ts
> >
> > _______________________________________________
> > Tinyos-2.0wg mailing list
> > Tinyos-2.0wg at Mail.Millennium.Berkeley.EDU
> > https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-2.0wg
> >
>

_______________________________________________
Tinyos-2.0wg mailing list
Tinyos-2.0wg at Mail.Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-2.0wg


More information about the Tinyos-host-mote-wg mailing list