Closer to harmonizing different platforms.
authortravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Tue, 15 Jun 2010 00:43:04 +0000 (00:43 +0000)
committertravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Tue, 15 Jun 2010 00:43:04 +0000 (00:43 +0000)
git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@628 12e2690d-a6be-4b82-a7b7-67c4a43b65c8

firmware/apps/radios/nrf.c
firmware/apps/spi/spi.c
firmware/lib/msp430x2618.c
firmware/platforms/goodfet.h
firmware/platforms/nhbadge.h [new file with mode: 0644]
firmware/platforms/telosb.h

index 9254f93..ca70113 100644 (file)
 #include "nrf.h"
 #include "spi.h"
 
-//Weird HOPE badge wiring.  This was a fuckup.
-//BIT0 should be SS, but in point of fact it is IRQ.
-//BIT4 is actually SS, BIT5 is CE.
-#define SS BIT4
-#define CE BIT5;
-
-#define RADIOACTIVE  P5OUT|=CE
-#define RADIOPASSIVE P5OUT&=~CE
 
+#define RADIOACTIVE SETCE
+#define RADIOPASSIVE CLRCE
 
 //! Set up the pins for NRF mode.
 void nrfsetup(){
-  P5OUT|=SS;
+  SETSS;
   P5DIR&=~MISO;
-  P5DIR|=MOSI+SCK+SS+CE;
-  
+  P5DIR|=MOSI+SCK;
+  DIRSS;
+  DIRCE;
   
   //Begin a new transaction.
-  P5OUT&=~SS; 
-  P5OUT|=SS;
+  CLRSS; 
+  SETSS;
 }
 
 //! Read and write an NRF byte.
@@ -64,24 +59,24 @@ u8 nrftrans8(u8 byte){
 
 //! Writes a register
 u8 nrf_regwrite(u8 reg, const u8 *buf, int len){
-  P5OUT&=~SS;
+  CLRSS;
   
   reg=nrftrans8(reg);
   while(len--)
     nrftrans8(*buf++);
   
-  P5OUT|=SS;
+  SETSS;
   return reg;//status
 }
 //! Reads a register
 u8 nrf_regread(u8 reg, u8 *buf, int len){
-  P5OUT&=~SS;
+  CLRSS;
   
   reg=nrftrans8(reg);
   while(len--)
     *buf++=nrftrans8(0);
   
-  P5OUT|=SS;
+  SETSS;
   return reg;//status
 }
 
@@ -94,35 +89,35 @@ void nrfhandle(unsigned char app,
   //Drop CE to passify radio.
   RADIOPASSIVE;
   //Raise !SS to end transaction, just in case we forgot.
-  P5OUT|=SS;
+  SETSS;
   nrfsetup();
   
   switch(verb){
     //PEEK and POKE might come later.
   case READ:  
   case WRITE:
-    P5OUT&=~SS; //Drop !SS to begin transaction.
+    CLRSS; //Drop !SS to begin transaction.
     for(i=0;i<len;i++)
       cmddata[i]=nrftrans8(cmddata[i]);
-    P5OUT|=SS;  //Raise !SS to end transaction.
+    SETSS;  //Raise !SS to end transaction.
     txdata(app,verb,len);
     break;
 
   case PEEK://Grab NRF Register
-    P5OUT&=~SS; //Drop !SS to begin transaction.
+    CLRSS; //Drop !SS to begin transaction.
     nrftrans8(NRF_R_REGISTER | cmddata[0]); //000A AAAA
     for(i=1;i<len;i++)
       cmddata[i]=nrftrans8(cmddata[i]);
-    P5OUT|=SS;  //Raise !SS to end transaction.
+    SETSS;  //Raise !SS to end transaction.
     txdata(app,verb,len);
     break;
     
   case POKE://Poke NRF Register
-    P5OUT&=~SS; //Drop !SS to begin transaction.
+    CLRSS; //Drop !SS to begin transaction.
     nrftrans8(NRF_W_REGISTER | cmddata[0]); //001A AAAA
     for(i=1;i<len;i++)
       cmddata[i]=nrftrans8(cmddata[i]);
-    P5OUT|=SS;  //Raise !SS to end transaction.
+    SETSS;  //Raise !SS to end transaction.
     txdata(app,verb,len);
     break;
   case SETUP:
@@ -132,19 +127,19 @@ void nrfhandle(unsigned char app,
   case NRF_RX:
     RADIOPASSIVE;
     //Get the packet.
-    P5OUT&=~SS;
+    CLRSS;
     nrftrans8(NRF_R_RX_PAYLOAD);
     for(i=0;i<32;i++)
       cmddata[i]=nrftrans8(0xde);
-    P5OUT|=SS;
+    SETSS;
     //no break
     txdata(app,verb,32);
     break;
   case NRF_RX_FLUSH:
     //Flush the buffer.
-    P5OUT&=~SS;
+    CLRSS;
     nrftrans8(NRF_FLUSH_RX);
-    P5OUT|=SS;
+    SETSS;
     
     //Return the packet.
     txdata(app,verb,32);
@@ -158,6 +153,6 @@ void nrfhandle(unsigned char app,
   }
   
 
-  P5OUT|=SS;//End session
+  SETSS;//End session
   RADIOACTIVE;
 }
index 3da3135..dd92ba2 100644 (file)
@@ -24,8 +24,9 @@
 //! Set up the pins for SPI mode.
 void spisetup(){
   SETSS;
-  P5DIR|=MOSI+SCK+BIT0; //BIT0 might be SS
+  P5DIR|=MOSI+SCK; //BIT0 might be SS
   P5DIR&=~MISO;
+  DIRSS;
   
   //Begin a new transaction.
   CLRSS; 
index 8b72683..dcdafd5 100644 (file)
@@ -11,7 +11,7 @@
 #include <iomacros.h>
 
 //! Receive a byte.
-unsigned char serial_rx(){
+unsigned char serial0_rx(){
   char c;
   
   while(!(IFG2&UCA0RXIFG));//wait for a byte
@@ -29,7 +29,7 @@ unsigned char serial1_rx(){
 }
 
 //! Transmit a byte.
-void serial_tx(unsigned char x){
+void serial0_tx(unsigned char x){
   while ((IFG2 & UCA0TXIFG) == 0); //loop until buffer is free
   UCA0TXBUF = x;       /* send the character */
   while(!(IFG2 & UCA0TXIFG));
@@ -47,7 +47,7 @@ void serial1_tx(unsigned char x){
 }
 
 //! Set the baud rate.
-void setbaud(unsigned char rate){
+void setbaud0(unsigned char rate){
   
   //Table 15-4, page 481 of 2xx Family Guide
   switch(rate){
index e661085..230b8b8 100644 (file)
 //No longer works for Hope badge.
 #define SETSS P5OUT|=BIT0
 #define CLRSS P5OUT&=~BIT0
-
-
+#define DIRSS P5DIR|=BIT0;
+
+//BIT5 is Chip Enable.  Need to document this
+//#define RADIOACTIVE  P5OUT|=BIT5
+//#define RADIOPASSIVE P5OUT&=~BIT5
+#define SETCE P5OUT|=BIT5
+#define CLRCE P5OUT&=~BIT5
+#define DIRCE P5DIR|=BIT5
diff --git a/firmware/platforms/nhbadge.h b/firmware/platforms/nhbadge.h
new file mode 100644 (file)
index 0000000..39f7964
--- /dev/null
@@ -0,0 +1,23 @@
+/*! \file nhbadge.h
+  \author Travis Goodspeed
+  \brief Port descriptions for the Next Hope Badge.
+*/
+
+
+//LED on P1.0
+#define PLEDOUT P1OUT
+#define PLEDDIR P1DIR
+#define PLEDPIN BIT0
+
+
+//No longer works for Hope badge.
+#define SETSS P5OUT|=BIT4
+#define CLRSS P5OUT&=~BIT4
+#define DIRSS P5DIR|=BIT4;
+
+//BIT5 is Chip Enable
+//#define RADIOACTIVE  P5OUT|=BIT5
+//#define RADIOPASSIVE P5OUT&=~BIT5
+#define SETCE P5OUT|=BIT5
+#define CLRCE P5OUT&=~BIT5
+#define DIRCE P5DIR|=BIT5
index a482125..c536b1c 100644 (file)
 //Radio CS is P4.2
 #define SETSS P4OUT|=BIT2
 #define CLRSS P4OUT&=~BIT2
+#define DIRSS P4DIR|=BIT2;
 
+
+//CC2420 Chip Reset.  Need to document this.
+#define SETCE P4OUT|=BIT6
+#define CLRCE P4OUT&=~BIT6
+#define DIRCE P4DIR|=BIT6