3 \brief Port descriptions for the Apimote platform.
\r
6 #ifndef _GNU_ASSEMBLER_
\r
10 //LED on P5.5 (pin 49) (LED1 red)
\r
11 #define PLEDOUT P5OUT
\r
12 #define PLEDDIR P5DIR
\r
13 #define PLEDPIN BIT5
\r
14 //LED on P5.6 (pin 50) (LED2 green)
\r
15 #define PLED2OUT P5OUT
\r
16 #define PLED2DIR P5DIR
\r
17 #define PLED2PIN BIT6
\r
18 //LED on P5.7 (pin 51) (LED3 blue)
\r
19 #define PLED3OUT P5OUT
\r
20 #define PLED3DIR P5DIR
\r
21 #define PLED3PIN BIT7
\r
24 //TelosB: 29/3.1=RF_SI, 30/3.2=RF_SO, 31/3.3=RF_SCLK
\r
25 //ApiMote: 29/3.1=RF_SI, 30/3.2=RF_SO, 31/3.3=RF_SCLK
\r
26 #define SPIOUT P3OUT
\r
27 #define SPIDIR P3DIR
\r
29 #define SPIREN P3REN
\r
31 /* For the radio to be used:
\r
32 2.7 (!RST) must be low
\r
33 2.0 (VREF_EN) must be high (cc2420-41 rf_vreg)
\r
34 3.0 (!CS) must be low for the transaction.
\r
37 /* INITPLATFORM PX.7 PX.6 PX.5 PX.4 PX.3 PX.2 PX.1 PX.0
\r
38 EXP_USR NC EINT5 EINT4 EINT3 EINT2 MTXFRX EINT1
\r
39 P1DIR = 0xff 11111111 In In In In In Out In
\r
41 P1IE = 0xbd 10111101 Int Int Int Int Int Int
\r
42 P1IE @ 025h (UGpg341) ^BSLTX
\r
44 R_RST R_SFD RGIO1 R_PKT RGIO0 MRXFTX G_RST R_VREG
\r
45 P2DIR = 0x83 10000011 Out In In In In In Out Out
\r
46 P2OUT = 0x81 10000001 Hi Lo Lo? Hi
\r
49 MRXFTXMTXFRX G_RX G_TX RSCLK R_SO R_SI RF_CSn
\r
50 P3DIR = 0x5b 01011011 In Out In Out Out In Out? Out
\r
51 P3OUT = 0x Lo Lo Lo? Lo? Lo Lo Lo Hi
\r
52 P3SEL = 0xff 11111111 Pri Pri Pri Pri Pri Pri Pri Pri
\r
54 (SEL2=0,SEL=1: Primary Peripheral Func; 1,1: Secondary Peripheral)
\r
56 G_TST NC F_CSn FHold R_ANT NC NC NC
\r
57 P4DIR = 0xff 11111111 Out Out Out Out
\r
58 P4OUT = 0x30 00110000 Lo? Hi Hi Lo
\r
60 LED3 LED2 LED1 NC GSCLK G_SD G_SI G_CSn
\r
61 P5DIR = 0xfb 11111011 Out Out Out Out In Out Out
\r
62 P5OUT = 0x80 10000000 Hi Hi Hi Lo? Lo? Lo?
\r
64 ADC5 ADC4 ADC3 ADC2 ADC1 NC BADC2 BADC1
\r
65 P6DIR = 0xc7 11000111 Out Out In In In Out Out
\r
66 P6OUT = 0x00 Lo Lo Lo Lo
\r
69 #define INITPLATFORM \
\r
70 P2DIR |= BIT0+BIT7; \
\r
92 //TelosB: Radio CS is 38/P4.2 (to CC2420 pin31)
\r
93 //ApiMote: Radio CS is 28/P3.0
\r
94 #define SETSS P3OUT|=BIT0
\r
95 #define CLRSS P3OUT&=~BIT0
\r
96 #define DIRSS P3DIR|=BIT0
\r
98 //CC2420 Chip Enable
\r
99 //TelosB: Radio RESETn is 42/P4.6 (to CC2420 pin21)
\r
100 //ApiMote: Radio RESETn is 27/P2.7 (to CC2420 pin21)
\r
101 #define SETCE P2OUT|=BIT7
\r
102 #define CLRCE P2OUT&=~BIT7
\r
103 #define DIRCE P2DIR|=BIT7
\r
106 #define SFD (P2IN&BIT6) //TelosB 37/P4.1 -> ApiMote 26/P2.6
\r
107 #define FIFOP (P2IN&BIT4) //TelosB 12/P1.0 -> ApiMote 24/P2.4 (rf_pkt cc2420-29)
\r
108 #define FIFO (P2IN&BIT3) //TelosB 15/P1.3 -> ApiMote 23/P2.3 (rf_gio0 cc2420-30)
\r
110 // network byte order converters
\r
111 #define htons(x) ((((uint16_t)(x) & 0xFF00) >> 8) | \
\r
112 (((uint16_t)(x) & 0x00FF) << 8))
\r
113 #define htonl(x) ((((uint32_t)(x) & 0xFF000000) >> 24) | \
\r
114 (((uint32_t)(x) & 0x00FF0000) >> 8) | \
\r
115 (((uint32_t)(x) & 0x0000FF00) << 8) | \
\r
116 (((uint32_t)(x) & 0x000000FF) << 24))
\r
118 #define ntohs htons
\r
119 #define ntohl htonl
\r