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
_______________________________________________
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to