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

mturon at xbow.com mturon at xbow.com
Fri Jul 29 08:56:59 PDT 2005


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