X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Fplatforms%2Ftelosb.h;h=320ad1160bc61197dd050a3c272753a41fe3a5e0;hp=a4821253b6eee10fee9b935410e9f16b085c213d;hb=a031b4a563978102c664466d1e91a9c3ab0553dd;hpb=ba4e9392ba615ed84d47576fe973057f89bb8998 diff --git a/firmware/platforms/telosb.h b/firmware/platforms/telosb.h index a482125..320ad11 100644 --- a/firmware/platforms/telosb.h +++ b/firmware/platforms/telosb.h @@ -8,14 +8,76 @@ */ +#ifdef MSP430 +#include +#endif -//LED on P1.0 +//LED on P5.4 #define PLEDOUT P5OUT #define PLEDDIR P5DIR #define PLEDPIN BIT4 +#define SPIOUT P3OUT +#define SPIDIR P3DIR +#define SPIIN P3IN +#define SPIREN P3REN + + +/* For the radio to be used: + 4.6 (!RST) must be low + 4.5 (VREF_EN) must be high + 4.2 (!CS) must be low for the transaction. +*/ + +#define INITPLATFORM \ + P1DIR = 0xe0;\ + P1OUT = 0x00;\ + P2DIR = 0x7b;\ + P2OUT = 0x10;\ + P3DIR = 0xf1;\ + P3OUT = 0x00;\ + P4DIR = 0xfd;\ + P4OUT = 0xFd;\ + P5DIR = 0xff;\ + P5OUT = 0xff;\ + P6DIR = 0xff;\ + P6OUT = 0x00; + //Radio CS is P4.2 #define SETSS P4OUT|=BIT2 #define CLRSS P4OUT&=~BIT2 +#define DIRSS P4DIR|=BIT2 + + +//Flash CS is P4.4, redefine only for the SPI app. +#ifdef SPIAPPLICATION +#undef SETSS +#undef CLRSS +#undef DIRSS +#define SETSS P4OUT|=BIT4 +#define CLRSS P4OUT&=~BIT4 +#define DIRSS P4DIR|=BIT4 +#endif + +//CC2420 Chip Enable +#define SETCE P4OUT|=BIT6 +#define CLRCE P4OUT&=~BIT6 +#define DIRCE P4DIR|=BIT6 + +//CC2420 signals +#define SFD (P4IN&BIT1) +#define FIFOP (P1IN&BIT0) +#define FIFO (P1IN&BIT3) + +// network byte order converters +#define htons(x) ((((uint16_t)(x) & 0xFF00) >> 8) | \ + (((uint16_t)(x) & 0x00FF) << 8)) +#define htonl(x) ((((uint32_t)(x) & 0xFF000000) >> 24) | \ + (((uint32_t)(x) & 0x00FF0000) >> 8) | \ + (((uint32_t)(x) & 0x0000FF00) << 8) | \ + (((uint32_t)(x) & 0x000000FF) << 24)) + +#define ntohs htons +#define ntohl htonl