[Tinyos-contrib-commits] CVS: tinyos-1.x/contrib/handhelds/tos/platform/shimmer2 hardware.h, 1.1, 1.2

steve ayer ayer1 at users.sourceforge.net
Tue Aug 19 11:20:31 PDT 2008


Update of /cvsroot/tinyos/tinyos-1.x/contrib/handhelds/tos/platform/shimmer2
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv3673

Modified Files:
	hardware.h 
Log Message:

mods cover two issues:  first is power leech from pins pushing against
cc2420, second is sd bug that causes windows to crash under isolated
circumstances unless sd card is power-cycled.

power savings:
pins from cc2420 changed to input (sfd, fifo, fifop, cca).  others
changed similarly are bt rxd and rts, accel data pins, and pio.

sd power-cycle:

dock pin temporarily made output while msp430 shuts down, pauses, and
raises pins to sd card.  additional names for spi pins added for sd
driver.

a few unused items were also blitzed...




Index: hardware.h
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/handhelds/tos/platform/shimmer2/hardware.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** hardware.h	22 Jan 2008 20:26:11 -0000	1.1
--- hardware.h	19 Aug 2008 18:20:29 -0000	1.2
***************
*** 77,82 ****
  TOSH_ASSIGN_PIN(SD_CS_N, 3, 0);
  
- TOSH_ASSIGN_PIN(VSENSE_REG,   6, 0);
- 
  TOSH_ASSIGN_PIN(TILT,  2, 4);
  
--- 77,80 ----
***************
*** 98,109 ****
  TOSH_ASSIGN_PIN(VSENSE_ADC7,  6, 7);
  
- /* OSRAM OLED Calgary
-  *  old assignments; can't be used
-  *  TOSH_ASSIGN_PIN(LCD_RESET_L, 6, 1);   //  aka adc_1
-  *  TOSH_ASSIGN_PIN(LCD_CS_N,  6, 2);   //  aka adc_2
-  *  TOSH_ASSIGN_PIN(LCD_REG_ENABLE,  6, 6);   //  aka adc_2
-  *  TOSH_ASSIGN_PIN(LCD_CMD_L,   1, 1);   //  aka bsl_tx (prog_out)
- */
- 
  // bus arbitration pins
  TOSH_ASSIGN_PIN(SW_SD_PWR_N, 4, 5);
--- 96,99 ----
***************
*** 120,123 ****
--- 110,119 ----
  TOSH_ASSIGN_PIN(URXD0, 3, 5);
  
+ // redefinitions for the sd card driver
+ TOSH_ASSIGN_PIN(SD_DI, 3, 1);
+ TOSH_ASSIGN_PIN(SD_DO, 3, 2);
+ TOSH_ASSIGN_PIN(SD_CLK, 3, 3);
+ 
+ 
  TOSH_ASSIGN_PIN(SIMO1, 5, 1);
  TOSH_ASSIGN_PIN(SOMI1, 5, 2);
***************
*** 143,148 ****
--- 139,179 ----
  TOSH_ASSIGN_PIN(ACCEL_SLEEP_N, 5, 0);
  
+ 
  void TOSH_SET_PIN_DIRECTIONS(void)
  {
+   int i;
+   // have to tell mux to connect path from msp430 to sd
+   TOSH_SEL_DOCK_N_IOFUNC();
+   TOSH_MAKE_DOCK_N_OUTPUT();
+   TOSH_SET_DOCK_N_PIN();
+ 
+   // bus arbitration pins 
+   TOSH_SEL_SW_SD_PWR_N_IOFUNC();
+   TOSH_MAKE_SW_SD_PWR_N_OUTPUT();
+ 
+   TOSH_SEL_SD_CS_N_IOFUNC();
+   TOSH_MAKE_SD_CS_N_OUTPUT();
+ 
+   TOSH_SEL_SD_CLK_IOFUNC();
+   TOSH_MAKE_SD_CLK_OUTPUT();
+   TOSH_SEL_SD_DO_IOFUNC();
+   TOSH_MAKE_SD_DO_INPUT();
+   TOSH_SEL_SD_DI_IOFUNC();
+   TOSH_MAKE_SD_DI_OUTPUT();
+   
+   // power down sd module; overridden by dock pin on programming board
+   /*
+    * other pins are zeroed to reset card
+    * at end of this routine, we raise them again (they have pullups, too)
+    */
+   TOSH_SET_SW_SD_PWR_N_PIN();     
+   TOSH_CLR_SD_CS_N_PIN();
+   TOSH_CLR_SD_DI_PIN();
+   TOSH_CLR_SD_CLK_PIN();
+   
+   TOSH_SEL_SW_BT_PWR_N_IOFUNC();
+   TOSH_MAKE_SW_BT_PWR_N_OUTPUT();
+   TOSH_SET_SW_BT_PWR_N_PIN();     // power down bt module; overridden by dock pin on programming board
+ 
    //LEDS
    TOSH_SEL_RED_LED_IOFUNC();
***************
*** 169,183 ****
  
    TOSH_SEL_RADIO_CCA_IOFUNC();
!   TOSH_MAKE_RADIO_CCA_OUTPUT();
    TOSH_SEL_RADIO_FIFO_IOFUNC();
!   TOSH_MAKE_RADIO_FIFO_OUTPUT();
    TOSH_SEL_RADIO_FIFOP_IOFUNC();
!   TOSH_MAKE_RADIO_FIFOP_OUTPUT();
    TOSH_SEL_RADIO_SFD_IOFUNC();
!   TOSH_MAKE_RADIO_SFD_OUTPUT();
  
!   TOSH_SEL_SD_CS_N_IOFUNC();
!   TOSH_MAKE_SD_CS_N_OUTPUT();
!   TOSH_SET_SD_CS_N_PIN();
  
    // BT PINS
--- 200,213 ----
  
    TOSH_SEL_RADIO_CCA_IOFUNC();
!   TOSH_MAKE_RADIO_CCA_INPUT();
    TOSH_SEL_RADIO_FIFO_IOFUNC();
!   TOSH_MAKE_RADIO_FIFO_INPUT();
    TOSH_SEL_RADIO_FIFOP_IOFUNC();
!   TOSH_MAKE_RADIO_FIFOP_INPUT();
    TOSH_SEL_RADIO_SFD_IOFUNC();
!   TOSH_MAKE_RADIO_SFD_INPUT();
  
!   TOSH_SEL_TILT_IOFUNC();
!   TOSH_MAKE_TILT_INPUT();
  
    // BT PINS
***************
*** 186,193 ****
    TOSH_CLR_BT_RESET_PIN();   // mitsumi module disabled by clr
  
!   TOSH_MAKE_BT_RTS_OUTPUT();      
    TOSH_SEL_BT_RTS_IOFUNC();
  
!   TOSH_MAKE_BT_PIO_OUTPUT();
    TOSH_SEL_BT_PIO_IOFUNC();
  
--- 216,223 ----
    TOSH_CLR_BT_RESET_PIN();   // mitsumi module disabled by clr
  
!   TOSH_MAKE_BT_RTS_INPUT();      
    TOSH_SEL_BT_RTS_IOFUNC();
  
!   TOSH_MAKE_BT_PIO_INPUT();
    TOSH_SEL_BT_PIO_IOFUNC();
  
***************
*** 196,202 ****
  
    TOSH_MAKE_BT_TXD_OUTPUT();
!   TOSH_SEL_BT_TXD_MODFUNC();
  
!   TOSH_MAKE_BT_RXD_OUTPUT();
    TOSH_SEL_BT_RXD_IOFUNC();
  
--- 226,232 ----
  
    TOSH_MAKE_BT_TXD_OUTPUT();
!   TOSH_SEL_BT_TXD_IOFUNC();
  
!   TOSH_MAKE_BT_RXD_INPUT();
    TOSH_SEL_BT_RXD_IOFUNC();
  
***************
*** 207,213 ****
    TOSH_SEL_PROG_OUT_IOFUNC();
  
-   TOSH_SEL_VSENSE_REG_IOFUNC();
-   TOSH_MAKE_VSENSE_REG_INPUT();
- 
    // ADC lines
    TOSH_SEL_ADC_0_IOFUNC();
--- 237,240 ----
***************
*** 223,231 ****
  
    TOSH_SEL_ADC_ACCELZ_IOFUNC();
!   TOSH_MAKE_ADC_ACCELZ_OUTPUT();
    TOSH_SEL_ADC_ACCELY_IOFUNC();
!   TOSH_MAKE_ADC_ACCELY_OUTPUT();
    TOSH_SEL_ADC_ACCELX_IOFUNC();
!   TOSH_MAKE_ADC_ACCELX_OUTPUT();
    
    TOSH_SEL_ROSC_IOFUNC();
--- 250,258 ----
  
    TOSH_SEL_ADC_ACCELZ_IOFUNC();
!   TOSH_MAKE_ADC_ACCELZ_INPUT();
    TOSH_SEL_ADC_ACCELY_IOFUNC();
!   TOSH_MAKE_ADC_ACCELY_INPUT();
    TOSH_SEL_ADC_ACCELX_IOFUNC();
!   TOSH_MAKE_ADC_ACCELX_INPUT();
    
    TOSH_SEL_ROSC_IOFUNC();
***************
*** 235,242 ****
    TOSH_SEL_ONEWIRE_IOFUNC();
    TOSH_MAKE_ONEWIRE_OUTPUT();
! 
!   // docked pin
!   TOSH_SEL_DOCK_N_IOFUNC();
!   TOSH_MAKE_DOCK_N_INPUT();
  
    /*
--- 262,266 ----
    TOSH_SEL_ONEWIRE_IOFUNC();
    TOSH_MAKE_ONEWIRE_OUTPUT();
!   TOSH_SET_ONEWIRE_PIN();
  
    /*
***************
*** 256,267 ****
    TOSH_CLR_ACCEL_SLEEP_N_PIN();
  
-   // bus arbitration pins 
-   TOSH_SEL_SW_SD_PWR_N_IOFUNC();
-   TOSH_MAKE_SW_SD_PWR_N_OUTPUT();
-   TOSH_SET_SW_SD_PWR_N_PIN();     // power down sd module; overridden by dock pin on programming board
-   TOSH_SEL_SW_BT_PWR_N_IOFUNC();
-   TOSH_MAKE_SW_BT_PWR_N_OUTPUT();
-   TOSH_SET_SW_BT_PWR_N_PIN();     // power down bt module; overridden by dock pin on programming board
- 
    // idle expansion header pins
    TOSH_SEL_SER0_CTS_IOFUNC();
--- 280,283 ----
***************
*** 281,290 ****
    TOSH_SEL_URXD0_IOFUNC();
    TOSH_MAKE_URXD0_OUTPUT();
!   TOSH_SEL_UCLK0_IOFUNC();
!   TOSH_MAKE_UCLK0_OUTPUT();
!   TOSH_SEL_SIMO0_IOFUNC();
!   TOSH_MAKE_SIMO0_OUTPUT();
!   TOSH_SEL_SOMI0_IOFUNC();
!   TOSH_MAKE_SOMI0_OUTPUT();
  
    TOSH_SEL_UTXD1_IOFUNC();
--- 297,310 ----
    TOSH_SEL_URXD0_IOFUNC();
    TOSH_MAKE_URXD0_OUTPUT();
!   /*
!    * already did these under their sd_do/i/clk guises
!    *
!    TOSH_SEL_UCLK0_IOFUNC();
!    TOSH_MAKE_UCLK0_OUTPUT();
!    TOSH_SEL_SIMO0_IOFUNC();
!    TOSH_MAKE_SIMO0_OUTPUT();
!    TOSH_SEL_SOMI0_IOFUNC();
!    TOSH_MAKE_SOMI0_INPUT();
!   */
  
    TOSH_SEL_UTXD1_IOFUNC();
***************
*** 297,301 ****
    TOSH_MAKE_SIMO1_OUTPUT();
    TOSH_SEL_SOMI1_IOFUNC();
!   TOSH_MAKE_SOMI1_OUTPUT();
  }
  
--- 317,341 ----
    TOSH_MAKE_SIMO1_OUTPUT();
    TOSH_SEL_SOMI1_IOFUNC();
!   TOSH_MAKE_SOMI1_INPUT();
! 
!   /*
!    * sd pins are raised as part of power-cyling card
!    * and, they have pullups.
!    */
!   
!   for (i = 0; i < 20; i++) {
!     TOSH_uwait (1000);		// one millisecond
!   }
!   
!   TOSH_SET_SD_CS_N_PIN();
!   TOSH_SET_SD_DI_PIN();
!   TOSH_SET_SD_CLK_PIN();
! 
!   // these are attached to the same pullup as above
!   TOSH_SET_SIMO1_PIN();
!   TOSH_SET_UCLK1_PIN();
! 
!   // set it back to default state
!   TOSH_MAKE_DOCK_N_INPUT();
  }
  



More information about the Tinyos-contrib-commits mailing list