// $Id: hardware.h,v 1.1 2004/07/14 05:20:00 jwhui Exp $ /* tab:4 * * * "Copyright (c) 2000-2004 The Regents of the University of California. * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice, the following * two paragraphs and the author appear in all copies of this software. * * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * */ #ifndef _H_hardware_h #define _H_hardware_h #include "msp430hardware.h" #include "MSP430ADC12.h" //#include "CC2420Const.h" //#include "AM.h" // LEDs TOSH_ASSIGN_PIN(RED_LED, 5, 4); TOSH_ASSIGN_PIN(GREEN_LED, 5, 5); TOSH_ASSIGN_PIN(YELLOW_LED, 5, 6); // CC2420 RADIO #defines TOSH_ASSIGN_PIN(RADIO_CSN, 4, 2); TOSH_ASSIGN_PIN(RADIO_VREF, 4, 5); TOSH_ASSIGN_PIN(RADIO_RESET, 4, 6); TOSH_ASSIGN_PIN(RADIO_FIFOP, 1, 0); TOSH_ASSIGN_PIN(RADIO_SFD, 4, 1); TOSH_ASSIGN_PIN(RADIO_GIO0, 1, 3); TOSH_ASSIGN_PIN(RADIO_FIFO, 1, 3); TOSH_ASSIGN_PIN(RADIO_GIO1, 1, 4); TOSH_ASSIGN_PIN(RADIO_CCA, 1, 4); TOSH_ASSIGN_PIN(CC_FIFOP, 1, 0); TOSH_ASSIGN_PIN(CC_FIFO, 1, 3); TOSH_ASSIGN_PIN(CC_SFD, 4, 1); TOSH_ASSIGN_PIN(CC_VREN, 4, 5); TOSH_ASSIGN_PIN(CC_RSTN, 4, 6); // UART pins TOSH_ASSIGN_PIN(SOMI0, 3, 2); TOSH_ASSIGN_PIN(SIMO0, 3, 1); TOSH_ASSIGN_PIN(UCLK0, 3, 3); TOSH_ASSIGN_PIN(UTXD0, 3, 4); TOSH_ASSIGN_PIN(URXD0, 3, 5); TOSH_ASSIGN_PIN(UTXD1, 3, 6); TOSH_ASSIGN_PIN(URXD1, 3, 7); TOSH_ASSIGN_PIN(UCLK1, 5, 3); TOSH_ASSIGN_PIN(SOMI1, 5, 2); TOSH_ASSIGN_PIN(SIMO1, 5, 1); // ADC TOSH_ASSIGN_PIN(ADC0, 6, 0); TOSH_ASSIGN_PIN(ADC1, 6, 1); TOSH_ASSIGN_PIN(ADC2, 6, 2); TOSH_ASSIGN_PIN(ADC3, 6, 3); // HUMIDITY TOSH_ASSIGN_PIN(HUM_SDA, 1, 5); TOSH_ASSIGN_PIN(HUM_SCL, 1, 6); TOSH_ASSIGN_PIN(HUM_PWR, 1, 7); void HUMIDITY_MAKE_CLOCK_OUTPUT() { TOSH_MAKE_HUM_SCL_OUTPUT(); } void HUMIDITY_MAKE_CLOCK_INPUT() { TOSH_MAKE_HUM_SCL_INPUT(); } void HUMIDITY_CLEAR_CLOCK() { TOSH_CLR_HUM_SCL_PIN(); } void HUMIDITY_SET_CLOCK() { TOSH_SET_HUM_SCL_PIN(); } void HUMIDITY_MAKE_DATA_OUTPUT() { TOSH_MAKE_HUM_SDA_OUTPUT(); } void HUMIDITY_MAKE_DATA_INPUT() { TOSH_MAKE_HUM_SDA_INPUT(); } void HUMIDITY_CLEAR_DATA() { TOSH_CLR_HUM_SDA_PIN(); } void HUMIDITY_SET_DATA() { TOSH_SET_HUM_SDA_PIN(); } char HUMIDITY_GET_DATA() { return TOSH_READ_HUM_SDA_PIN(); } #define HUMIDITY_TIMEOUT_MS 30 #define HUMIDITY_TIMEOUT_TRIES 20 enum { // Sensirion Humidity addresses and commands TOSH_HUMIDITY_ADDR = 5, TOSH_HUMIDTEMP_ADDR = 3, TOSH_HUMIDITY_RESET = 0x1E }; // FLASH TOSH_ASSIGN_PIN(FLASH_PWR, 4, 3); TOSH_ASSIGN_PIN(FLASH_CS, 4, 4); // PROGRAMMING PINS (tri-state) //TOSH_ASSIGN_PIN(TCK, ); TOSH_ASSIGN_PIN(PROG_RX, 1, 1); TOSH_ASSIGN_PIN(PROG_TX, 2, 2); void TOSH_SET_PIN_DIRECTIONS(void) { //LEDS TOSH_SET_RED_LED_PIN(); TOSH_SET_GREEN_LED_PIN(); TOSH_SET_YELLOW_LED_PIN(); TOSH_MAKE_RED_LED_OUTPUT(); TOSH_MAKE_GREEN_LED_OUTPUT(); TOSH_MAKE_YELLOW_LED_OUTPUT(); //RADIO PINS //CC2420 pins TOSH_SET_SOMI1_PIN(); TOSH_MAKE_SOMI1_INPUT(); //TOSH_MAKE_SIMO1_OUTPUT(); //TOSH_MAKE_UCLK1_OUTPUT(); TOSH_SET_RADIO_RESET_PIN(); TOSH_MAKE_RADIO_RESET_OUTPUT(); TOSH_CLR_RADIO_VREF_PIN(); TOSH_MAKE_RADIO_VREF_OUTPUT(); TOSH_SET_RADIO_CSN_PIN(); TOSH_MAKE_RADIO_CSN_OUTPUT(); TOSH_MAKE_RADIO_FIFOP_INPUT(); TOSH_MAKE_RADIO_GIO0_INPUT(); TOSH_MAKE_RADIO_SFD_INPUT(); TOSH_MAKE_RADIO_GIO1_INPUT(); //UART PINS TOSH_MAKE_UTXD1_OUTPUT(); TOSH_MAKE_URXD1_OUTPUT(); TOSH_CLR_UTXD1_PIN(); TOSH_CLR_URXD1_PIN(); //PROG PINS TOSH_MAKE_PROG_RX_INPUT(); TOSH_MAKE_PROG_TX_INPUT(); //FLASH PINS TOSH_MAKE_FLASH_PWR_OUTPUT(); TOSH_SET_FLASH_PWR_PIN(); TOSH_MAKE_FLASH_CS_OUTPUT(); TOSH_SET_FLASH_CS_PIN(); //HUMIDITY PINS TOSH_MAKE_HUM_SCL_OUTPUT(); TOSH_MAKE_HUM_SDA_OUTPUT(); TOSH_MAKE_HUM_PWR_OUTPUT(); TOSH_CLR_HUM_SCL_PIN(); TOSH_CLR_HUM_SDA_PIN(); TOSH_CLR_HUM_PWR_PIN(); } #ifndef SENSORBOARD_H #define SENSORBOARD_H enum { TOSH_ADC_PORTMAPSIZE = 4 // default board has no sensors hooked up }; enum { TOSH_ACTUAL_ADC_PAR_PORT = ASSOCIATE_ADC_CHANNEL( INPUT_CHANNEL_A4, REFERENCE_VREFplus_AVss, REFVOLT_LEVEL_1_5 ), TOSH_ACTUAL_ADC_TSR_PORT = ASSOCIATE_ADC_CHANNEL( INPUT_CHANNEL_A5, REFERENCE_VREFplus_AVss, REFVOLT_LEVEL_1_5 ), }; enum { TOS_ADC_PAR_PORT, TOS_ADC_TSR_PORT, TOS_ADC_INTERNAL_TEMP_PORT, TOS_ADC_INTERNAL_VOLTAGE_PORT }; #endif // SENSORBOARD_H #endif // _H_hardware_h