[Tinyos-help] CC2420 ack transmission causes SFD capture?

Chris Merlin merlin at ece.rochester.edu
Fri Oct 27 11:39:00 PDT 2006


Hi,
I am looking at the software ACK mechanism in CC2420. In CC2420RadioM.nc, when a packet is received and if it requests an ACK, the command strobe SACK is issued.

(in doRXFIFODoneBody
  // if ack is requested, must pass CRC and match our address
  if ((rxbufptr->fcfhi & (1 << CC2420_DEF_FCF_BIT_ACK)) && 
  (rxbufptr->crc) && 
  (rxbufptr->addr == TOS_LOCAL_ADDRESS)) {
    call HPLChipcon.cmd(rh, CC2420_SACK);
  }
)
And let's say that stateRadio is IDLE_STATE (before and after receiving the packet).

The way I understand it, the command strobe SACK sends an ACK automatically, without any intervention. stateRadio will still be IDLE_STATE since CC2420RadioM.nc is not taking care of sending the ACK, right?

Does the ACK cause the SFD pin to transition L to H (and then H to L at the end of the tx)? If so, shouldn't it cause the interrupt SFD.captured to go off? And in that case, why isn't there any code inside SFD.captured to handle it (only tx states mentionned are TX_STATE and TX_WAIT)?

Or does the ACK cause no SFD transition because, even though the radio is transmitting a packet, it is still in "RxMode" (SRXON)?

Any help or opinion is welcomed.
Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.millennium.berkeley.edu/pipermail/tinyos-help/attachments/20061027/ef090836/attachment-0001.html


More information about the Tinyos-help mailing list