[Tinyos-help] CC2420 Hardware ACKs

Rodolfo de Paz Alberola rodolfo.depaz at cit.ie
Thu Feb 14 12:00:44 PST 2008


Thanks David for your reply, but now I don't know then the difference
between call or not call setAutoAck. 

If I send a packet requesting the ack using the requestAck(&myMsg)
comand, which means set the request flag in the FCF, I don't have to do
anything in the receiver to obtain an ack in the sender. The receiver
sends an ack automatically to the sender. So, what am i doing with this
command...sw or hw acks? Is then MDMCTRL0.AUTOACK enabled as default?

My understanding after reading the data sheet was:

- If MDMCTRL0.AUTOACK is not enabled: you have to check the request flag
and crc, if the flag is set and the crc valid, then you have to send the
ack. This meant for me SW acks. 

- However, if autoack is enabled in the receiver, this mote sends the
ack automatically to the sender when the requested flag is set and crc
is valid.

Sorry for bother you again but I'm more confused now.

On Thu, 2008-02-14 at 09:34 -0700, David Moss wrote:
> Also, are you calling CC2420Config.sync() to commit your hardware
> acknowledgment changes to the CC2420 hardware?
> 
> call CC2420Config.setAutoAck(TRUE, TRUE); 
> call CC2420Config.sync();
>   // wait awhile....
> 
> event void CC2420Config.syncDone() {
>   ...
> }
> 
> 
> -David
> 
> 
> -----Original Message-----
> From: Rodolfo de Paz Alberola [mailto:rodolfo.depaz at cit.ie] 
> Sent: Thursday, February 14, 2008 9:12 AM
> To: David Moss
> Cc: 'tinyos-help'
> Subject: RE: [Tinyos-help] CC2420 Hardware ACKs
> 
> Hi David,
> 
> On Thu, 2008-02-14 at 08:56 -0700, David Moss wrote:
> Are you requesting an acknowledgment before sending?
> 
> > 
> > call PacketAcknowledgements.requestAck(&myMsg);
> > call AMSend.send(0x0, &myMsg, sizeof(my_payload_t));
> > 
> No, I thought that only calling the command setAutoAck 
> it should enable MDMCTRL0.AUTOACK leaving to the CC2420 radio chip 
> all the process. 
> 
> This command that you mention for requesting acks I think that only
> works for SW acks.
> 
> 
> Does it the software work as expected using software acknowledgments?
> > 
> Yes, I did another application using software acknowledgments and it
> works fine, 
> but in this case I would like to use hw acks since i am trying to model
> the 
> cc2420 radiochip which has hw acks as well.
> 
> Thanks for your help. Any idea?
> 
> --------
> Rodo
> 
> On Thu, 2008-02-14 at 08:56 -0700, David Moss wrote:
> > Are you requesting an acknowledgment before sending?
> > 
> > call PacketAcknowledgements.requestAck(&myMsg);
> > call AMSend.send(0x0, &myMsg, sizeof(my_payload_t));
> > 
> > Does it the software work as expected using software acknowledgments?
> > 
> > -David
> > 
> > 
> > -----Original Message-----
> > From: tinyos-help-bounces at millennium.berkeley.edu
> > [mailto:tinyos-help-bounces at millennium.berkeley.edu] On Behalf Of Rodolfo
> de
> > Paz Alberola
> > Sent: Thursday, February 14, 2008 4:28 AM
> > To: tinyos-help
> > Subject: [Tinyos-help] CC2420 Hardware ACKs
> > 
> > Hi all,
> > 
> > I was trying to set Hardware ACKs for CC2420 radio chip. I did a simple
> > ping pong application in which I posted a task call ack() inside the
> > event SplitControl.startDone(error_t error). 
> > 
> > The task call ack activates HW acknowledgements in the following way:
> > 
> > bool activated = TRUE;
> > task void ack() {
> >    atomic{
> >       call CC2420Config.setAutoAck(activated,activated);
> >       if (call CC2420Config.sync() != SUCCESS) {
> >           post ack();
> >       }
> >    }
> > 
> > However, the mote that is sending messages is not receiving any ack.
> > Should I do anything else to activate CC2420 HW acks?. Any help? 
> > 
> > Regards,
> > 
> > -----
> > Rodo
> > _______________________________________________
> > Tinyos-help mailing list
> > Tinyos-help at millennium.berkeley.edu
> > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> > 
> > 
> 
> 


More information about the Tinyos-help mailing list