added autoack configuration for CC2420 and reversed long ieee address for address recognition
This commit is contained in:
parent
68ba32eaee
commit
0c8b200987
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* @(#)$Id: cc2420.c,v 1.30 2009/04/29 11:38:50 adamdunkels Exp $
|
* @(#)$Id: cc2420.c,v 1.31 2009/07/28 22:24:53 joxe Exp $
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
* This code is almost device independent and should be easy to port.
|
* This code is almost device independent and should be easy to port.
|
||||||
|
@ -70,6 +70,10 @@
|
||||||
#define CC2420_CONF_CHECKSUM 0
|
#define CC2420_CONF_CHECKSUM 0
|
||||||
#endif /* CC2420_CONF_CHECKSUM */
|
#endif /* CC2420_CONF_CHECKSUM */
|
||||||
|
|
||||||
|
#ifndef CC2420_CONF_AUTOACK
|
||||||
|
#define CC2420_CONF_AUTOACK 0
|
||||||
|
#endif /* CC2420_CONF_AUTOACK */
|
||||||
|
|
||||||
#if CC2420_CONF_CHECKSUM
|
#if CC2420_CONF_CHECKSUM
|
||||||
#include "lib/crc16.h"
|
#include "lib/crc16.h"
|
||||||
#define CHECKSUM_LEN 2
|
#define CHECKSUM_LEN 2
|
||||||
|
@ -273,14 +277,13 @@ cc2420_init(void)
|
||||||
/* Turn on the crystal oscillator. */
|
/* Turn on the crystal oscillator. */
|
||||||
strobe(CC2420_SXOSCON);
|
strobe(CC2420_SXOSCON);
|
||||||
|
|
||||||
/* Turn off automatic packet acknowledgment. */
|
/* Turn on/off automatic packet acknowledgment and address decoding. */
|
||||||
reg = getreg(CC2420_MDMCTRL0);
|
reg = getreg(CC2420_MDMCTRL0);
|
||||||
reg &= ~AUTOACK;
|
#if CC2420_CONF_AUTOACK
|
||||||
setreg(CC2420_MDMCTRL0, reg);
|
reg |= AUTOACK | ADR_DECODE;
|
||||||
|
#else
|
||||||
/* Turn off address decoding. */
|
reg &= ~(AUTOACK | ADR_DECODE);
|
||||||
reg = getreg(CC2420_MDMCTRL0);
|
#endif /* CC2420_CONF_AUTOACK */
|
||||||
reg &= ~ADR_DECODE;
|
|
||||||
setreg(CC2420_MDMCTRL0, reg);
|
setreg(CC2420_MDMCTRL0, reg);
|
||||||
|
|
||||||
/* Change default values as recomended in the data sheet, */
|
/* Change default values as recomended in the data sheet, */
|
||||||
|
@ -512,7 +515,12 @@ cc2420_set_pan_addr(unsigned pan,
|
||||||
FASTSPI_WRITE_RAM_LE(&pan, CC2420RAM_PANID, 2, f);
|
FASTSPI_WRITE_RAM_LE(&pan, CC2420RAM_PANID, 2, f);
|
||||||
FASTSPI_WRITE_RAM_LE(&addr, CC2420RAM_SHORTADDR, 2, f);
|
FASTSPI_WRITE_RAM_LE(&addr, CC2420RAM_SHORTADDR, 2, f);
|
||||||
if(ieee_addr != NULL) {
|
if(ieee_addr != NULL) {
|
||||||
FASTSPI_WRITE_RAM_LE(ieee_addr, CC2420RAM_IEEEADDR, 8, f);
|
uint8_t addr[8];
|
||||||
|
/* LSB first, MSB last for 802.15.4 addresses in CC2420 */
|
||||||
|
for (f = 0; f < 8; f++) {
|
||||||
|
addr[7 - f] = ieee_addr[f];
|
||||||
|
}
|
||||||
|
FASTSPI_WRITE_RAM_LE(addr, CC2420RAM_IEEEADDR, 8, f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
Loading…
Reference in a new issue