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