Added initial support for board=apimote2
authorrmspeers <rmspeers@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Tue, 4 Jun 2013 11:07:52 +0000 (11:07 +0000)
committerrmspeers <rmspeers@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Tue, 4 Jun 2013 11:07:52 +0000 (11:07 +0000)
git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@1594 12e2690d-a6be-4b82-a7b7-67c4a43b65c8

client/goodfet.ccspi
firmware/config.mk
firmware/include/spi.h
firmware/platforms/apimote2.h [new file with mode: 0755]

index 59eee33..b20dc64 100755 (executable)
@@ -13,6 +13,9 @@ import array, time;
 
 from GoodFETCCSPI import GoodFETCCSPI;
 
+#PORTNAME=None
+PORTNAME="/dev/ttyUSB0"
+print "ON:", PORTNAME
 
 #Some quick functions for yanking values out of a packet.
 def srcadr(packet):
@@ -65,7 +68,7 @@ if(len(sys.argv)==1):
 
 #Initialize FET and set baud rate
 client=GoodFETCCSPI();
-client.serInit()
+client.serInit(port=PORTNAME)
 
 client.setup();
 
@@ -74,7 +77,12 @@ client.setup();
 
 if(sys.argv[1]=="carrier"):
     if len(sys.argv)>2:
-        client.RF_setfreq(eval(sys.argv[2]));
+        freq=eval(sys.argv[2]);
+        if freq>100:
+            client.RF_setfreq(freq);
+        else:
+            client.RF_setchan(freq);
+            print "Channel set to:", freq
     while 1:
         client.RF_carrier();
     while(1):
index 313e2a6..827f7e1 100644 (file)
@@ -13,6 +13,14 @@ MSP430BSL?=goodfet.bsl --speed=38400 --swap-reset-test
 CFLAGS += -Duseuart1 -Dapimote
 endif
 
+ifneq (,$(findstring $(board),apimote2))
+mcu ?= msp430f2618
+platform := apimote2
+config := monitor spi ccspi
+MSP430BSL?=goodfet.bsl --speed=38400
+CFLAGS += -Duseuart1 -Dapimote
+endif
+
 ifneq (,$(findstring $(board),goodthopter01 goodthopter10 goodthopter11))
 mcu ?= msp430f2274
 platform := goodfet
index d940605..b4de686 100644 (file)
@@ -25,6 +25,7 @@
 # define TST  BIT0
 # define RST  BIT6
 #endif
+//Apimotev2 SET/CLRRST needs to be on pin 21, so 2.1 -- just redefine RST to BIT0
 
 #define SETMOSI SPIOUT|=MOSI
 #define CLRMOSI SPIOUT&=~MOSI
diff --git a/firmware/platforms/apimote2.h b/firmware/platforms/apimote2.h
new file mode 100755 (executable)
index 0000000..0c710d0
--- /dev/null
@@ -0,0 +1,72 @@
+/*! \file apimote2.h\r
+  \author Ryan Speers\r
+  \brief Port descriptions for the Apimote v2 platform.\r
+*/\r
+\r
+#ifndef _GNU_ASSEMBLER_\r
+#include <msp430.h>\r
+#endif\r
+\r
+//LED on P5.5 (pin 49) (LED1 red)\r
+#define PLEDOUT P5OUT\r
+#define PLEDDIR P5DIR\r
+#define PLEDPIN BIT5\r
+//LED on P5.6 (pin 50) (LED2 green)\r
+#define PLED2OUT P5OUT\r
+#define PLED2DIR P5DIR\r
+#define PLED2PIN BIT6\r
+//LED on P5.7 (pin 51) (LED3 blue)\r
+#define PLED3OUT P5OUT\r
+#define PLED3DIR P5DIR\r
+#define PLED3PIN BIT7\r
+\r
+//SPI\r
+//TelosB:  29/3.1=RF_SI, 30/3.2=RF_SO, 31/3.3=RF_SCLK\r
+//ApiMote: 29/3.1=RF_SI, 30/3.2=RF_SO, 31/3.3=RF_SCLK\r
+#define SPIOUT P3OUT\r
+#define SPIDIR P3DIR\r
+#define SPIIN  P3IN\r
+#define SPIREN P3REN\r
+\r
+/* For the radio to be used:\r
+   2.7 (!RST) must be low\r
+   2.0 (VREF_EN) must be high (cc2420-41 rf_vreg)\r
+   3.0 (!CS) must be low for the transaction.\r
+*/\r
+\r
+#define INITPLATFORM \\r
+  P2DIR |= BIT0+BIT7; \\r
+  P2OUT &= ~BIT7; \\r
+  P2OUT |= BIT0; \\r
+  P3DIR |= BIT0;\r
+\r
+//RF Control\r
+//TelosB:  Radio CS is 38/P4.2 (to CC2420 pin31)\r
+//ApiMote: Radio CS is 28/P3.0\r
+#define SETSS P3OUT|=BIT0\r
+#define CLRSS P3OUT&=~BIT0\r
+#define DIRSS P3DIR|=BIT0\r
+\r
+//CC2420 Chip Enable\r
+//TelosB:  Radio RESETn is 42/P4.6 (to CC2420 pin21)\r
+//ApiMote: Radio RESETn is 27/P2.7 (to CC2420 pin21)\r
+#define SETCE P2OUT|=BIT7\r
+#define CLRCE P2OUT&=~BIT7\r
+#define DIRCE P2DIR|=BIT7\r
+\r
+//CC2420 signals\r
+#define SFD   (P2IN&BIT6) //TelosB 37/P4.1 -> ApiMote 26/P2.6\r
+#define FIFOP (P2IN&BIT4) //TelosB 12/P1.0 -> ApiMote 24/P2.4 (rf_pkt cc2420-29)\r
+#define FIFO  (P2IN&BIT3) //TelosB 15/P1.3 -> ApiMote 23/P2.3 (rf_gio0 cc2420-30)\r
+\r
+// network byte order converters\r
+#define htons(x) ((((uint16_t)(x) & 0xFF00) >> 8) | \\r
+                                (((uint16_t)(x) & 0x00FF) << 8))\r
+#define htonl(x) ((((uint32_t)(x) & 0xFF000000) >> 24) | \\r
+                                 (((uint32_t)(x) & 0x00FF0000) >> 8) | \\r
+                                 (((uint32_t)(x) & 0x0000FF00) << 8) | \\r
+                                 (((uint32_t)(x) & 0x000000FF) << 24))\r
+\r
+#define ntohs htons\r
+#define ntohl htonl\r
+\r