turn ftdi driver into echo server
[goodfet] / firmware / platforms / z1.h
1 /*! \file z1.h
2   \author Travis Goodspeed
3   \brief Port descriptions for the Zolertia Z1 platform.
4   
5   This file defines the Zolertia hardware, so that the GoodFET firmware
6   may be loaded onto it.  Adjustments are identical to the Telos B.
7
8 */
9
10 #ifndef _GNU_ASSEMBLER_
11 #include <msp430.h>
12 #endif
13
14 //LED on P5.4 (LED1 red)
15 #define PLEDOUT P5OUT
16 #define PLEDDIR P5DIR
17 #define PLEDPIN BIT4
18 //LED on P5.5 (LED2 green)
19 #define PLED2OUT P5OUT
20 #define PLED2DIR P5DIR
21 #define PLED2PIN BIT5
22 //LED on P5.6 (LED3 blue)
23 #define PLED3OUT P5OUT
24 #define PLED3DIR P5DIR
25 #define PLED3PIN BIT6
26
27
28 #define SPIOUT P3OUT
29 #define SPIDIR P3DIR
30 #define SPIIN  P3IN
31 #define SPIREN P3REN
32
33
34 /* For the radio to be used:
35    4.6 (!RST) must be low
36    4.5 (VREF_EN) must be high
37    4.2 (!CS) must be low for the transaction.
38 */
39
40 #define INITPLATFORM \
41   P1DIR = 0xe0;\
42   P1OUT = 0x00;\
43   P1REN = 0x0F;\
44   P2DIR = 0x7b;\
45   P2OUT = 0x10;\
46   P3DIR = 0xf1;\
47   P3OUT = 0x00;\
48   P4DIR = 0xfd;\
49   P4OUT = ~0x02;\
50   P4REN = 0x02;\
51   P5DIR = 0xff;\
52   P5OUT = 0xff;\
53   P6DIR = 0xff;\
54   P6OUT = 0x00;
55
56 //Radio CS is P4.2
57 #define SETSS P4OUT|=BIT2
58 #define CLRSS P4OUT&=~BIT2
59 #define DIRSS P4DIR|=BIT2
60
61 //Flash CS is P4.4, redefine only for the SPI app.
62 #ifdef SPIAPPLICATION
63 #undef SETSS
64 #undef CLRSS
65 #undef DIRSS
66 #define SETSS P4OUT|=BIT4
67 #define CLRSS P4OUT&=~BIT4
68 #define DIRSS P4DIR|=BIT4
69 #endif
70
71 //CC2420 Chip Enable
72 #define SETCE P4OUT|=BIT6
73 #define CLRCE P4OUT&=~BIT6
74 #define DIRCE P4DIR|=BIT6
75
76 //CC2420 signals
77 #define SFD   (P4IN&BIT1) //Might be broken on the Z1.
78 #define FIFOP (P1IN&BIT2) // Was 1.0, mistakenly.
79 #define FIFO  (P1IN&BIT3)
80
81
82 // network byte order converters
83 #define htons(x) ((((uint16_t)(x) & 0xFF00) >> 8) | \
84                                  (((uint16_t)(x) & 0x00FF) << 8))
85 #define htonl(x) ((((uint32_t)(x) & 0xFF000000) >> 24) | \
86                                   (((uint32_t)(x) & 0x00FF0000) >> 8) | \
87                                   (((uint32_t)(x) & 0x0000FF00) << 8) | \
88                                   (((uint32_t)(x) & 0x000000FF) << 24))
89
90 #define ntohs htons
91 #define ntohl htonl
92