Because 802.15.4 chips are not the only things that have an SPI interface.
-- Jonathan Hui [EMAIL PROTECTED] On 9/29/06, Tie Luo <[EMAIL PROTECTED]> wrote:
Have read the datasheet, got it. Thanks. But why SpiPacket.send use 'uint16_t length' as its parameter, since zigbee only allow 127 byte packets? On 9/29/06, Jonathan Hui <[EMAIL PROTECTED]> wrote: > This is explained very clearly (with figures) on pages 38 and 39 of > the CC2420 datasheet. > > http://focus.ti.com/lit/ds/symlink/cc2420.pdf > > -- > Jonathan Hui > [EMAIL PROTECTED] > > On 9/28/06, Tie Luo <[EMAIL PROTECTED] > wrote: > > Dr Hui, at first I thank you very much for your explanation. > > Based on your answer to 1.2, buf[ length ] is crc. But why buf[ length ] > > >> 7 being one indicates a good crc? > > > > > > > > On 9/28/06, Jonathan Hui <[EMAIL PROTECTED]> wrote: > > > On 9/28/06, Tie Luo <[EMAIL PROTECTED]> wrote: > > > > 1) CC2420ReceiveP.nc , in event void RXFIFO.readDone(uint8_t* rx_buf, > > uint8_t > > > > rx_len, error_t error ) > > > > 1.1) line 197: > > > > if ( length > 10 ) {...} (where length is header[0]) > > > > Q: why use constant 10? Does it mean sizeof(cc2420_header_t)? If > > so, > > > > will it always be true, since length include a 11-byte header and a > > payload? > > > > > > This is simply for timestamping information. The CC2420 is doing > > > hardware address rejection, so any packets that are rejected should > > > not be considered. > > > > > > > 1.2 ) line 207,208: > > > > // pass packet up if crc is good > > > > if ( ( buf[ length ] >> 7 ) && rx_buf ) {...} > > > > Q: buf[ length ] is the byte beyond the last byte of > > header+payload, > > > > so why judge on that? and what does it being shift by 7 bits mean? How > > does > > > > this related to crc (see the comment above) > > > > > > The crc comes after the payload. Please see the CC2420 datasheet. > > > > > > > 2) in message_t, length=header+payload+footer, right? But in > > > > CC2420TransmitP.nc line 243 is: > > > > call TXFIFO.write( (uint8_t*)header, header->length - 1 ); > > > > Q: why -1? > > > > > > The length byte is not included in the length of the packet. Please > > > see the 802.15.4 spec. > > > > > > > 3) related to (2), in the same file at line 421: msg_metadata->rssi = > > > > ack_buf[ length - 1 ]; while rssi is define as the 2nd field of > > > > typedef nx_struct cc2420_metadata_t { > > > > nx_uint8_t tx_power; > > > > nx_uint8_t rssi; > > > > nx_uint8_t lqi; > > > > nx_bool crc; > > > > nx_bool ack; > > > > nx_uint16_t time; > > > > } cc2420_metadata_t; > > > > So why ack_buf[ length - 1 ] is rssi? > > > > > > The crc is replaced with rssi when in auto crc mode. Please see the > > > CC2420 datasheet. > > > > > > > These questions really make us blue, can you help us out? Thanks a ton! > > > > > > If not obvious already, I *strongly* recommend that you read the > > > CC2420 datasheet and the 802.15.4 spec. They will clear a lot of these > > > issues up. > > > > > > http://www-s.ti.com/sc/ds/cc2420.pdf > > > > > http://standards.ieee.org/getieee802/download/802.15.4-2003.pdf > > > > > > -- > > > Jonathan Hui > > > [EMAIL PROTECTED] > > > > > > > > > > > -- > > Regards, > > Tie > > _______________________________________________ > > Tinyos-help mailing list > > [email protected] > > https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help > > > > > > > -- Regards, Tie _______________________________________________ Tinyos-help mailing list [email protected] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
_______________________________________________ Tinyos-help mailing list [email protected] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
