[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