[Tinyos-beta-commits] CVS: tinyos-1.x/beta/platform/telosb
hardware.h, NONE, 1.1 .platform, NONE, 1.1
Joe Polastre
jpolastre at users.sourceforge.net
Wed Oct 20 13:04:57 PDT 2004
Update of /cvsroot/tinyos/tinyos-1.x/beta/platform/telosb
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26400
Added Files:
hardware.h .platform
Log Message:
initial checkin of telosb core platform files hardware.h and .platform
telos rev b inherits from telos (rev a) which inherits from msp.
upcoming is an msp430f1611 'chip' directory that contains modules
specific to the 1611 that do not exist on the 149.
--- NEW FILE: hardware.h ---
#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);
// GIO pins
TOSH_ASSIGN_PIN(GIO0, 2, 0);
TOSH_ASSIGN_PIN(GIO1, 2, 1);
TOSH_ASSIGN_PIN(GIO2, 2, 3);
TOSH_ASSIGN_PIN(GIO3, 2, 6);
// 1-Wire
TOSH_ASSIGN_PIN(ONEWIRE, 2, 4);
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);
TOSH_ASSIGN_PIN(FLASH_HOLD, 4, 7);
// PROGRAMMING PINS (tri-state)
//TOSH_ASSIGN_PIN(TCK, );
TOSH_ASSIGN_PIN(PROG_RX, 1, 1);
TOSH_ASSIGN_PIN(PROG_TX, 2, 2);
// send a bit via bit-banging to the flash
void TOSH_FLASH_M25P_DP_bit(bool set) {
if (set)
TOSH_SET_SIMO0_PIN();
else
TOSH_CLR_SIMO0_PIN();
TOSH_SET_UCLK0_PIN();
TOSH_wait();
TOSH_CLR_UCLK0_PIN();
}
// put the flash into deep sleep mode
// important to do this by default
void TOSH_FLASH_M25P_DP() {
// SIMO0, UCLK0
TOSH_MAKE_SIMO0_IOFUNC();
TOSH_MAKE_UCLK0_IOFUNC();
TOSH_MAKE_SIMO0_OUTPUT();
TOSH_MAKE_UCLK0_OUTPUT();
TOSH_SET_FLASH_CS_PIN();
// initiate sequence;
TOSH_CLR_FLASH_CS_PIN();
TOSH_CLR_UCLK0_PIN();
TOSH_FLASH_M25P_DP_bit(TRUE); // 0
TOSH_FLASH_M25P_DP_bit(FALSE); // 1
TOSH_FLASH_M25P_DP_bit(TRUE); // 2
TOSH_FLASH_M25P_DP_bit(TRUE); // 3
TOSH_FLASH_M25P_DP_bit(TRUE); // 4
TOSH_FLASH_M25P_DP_bit(FALSE); // 5
TOSH_FLASH_M25P_DP_bit(FALSE); // 6
TOSH_FLASH_M25P_DP_bit(TRUE); // 7
TOSH_CLR_UCLK0_PIN();
TOSH_SET_FLASH_CS_PIN();
TOSH_SET_SIMO0_PIN();
TOSH_MAKE_SIMO0_INPUT();
TOSH_MAKE_UCLK0_INPUT();
}
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();
//1-Wire PINS
TOSH_SET_ONEWIRE_PIN();
//RADIO PINS
//CC2420 pins
TOSH_MAKE_SOMI0_INPUT();
TOSH_MAKE_SIMO0_INPUT();
TOSH_MAKE_UCLK0_INPUT();
TOSH_MAKE_SOMI1_INPUT();
TOSH_MAKE_SIMO1_INPUT();
TOSH_MAKE_UCLK1_INPUT();
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();
//FLASH PINS
TOSH_MAKE_FLASH_PWR_OUTPUT();
TOSH_SET_FLASH_PWR_PIN();
TOSH_MAKE_FLASH_CS_OUTPUT();
TOSH_SET_FLASH_CS_PIN();
//Put the flash in deep sleep state
TOSH_FLASH_M25P_DP();
//UART PINS
TOSH_MAKE_UTXD0_INPUT();
TOSH_MAKE_URXD0_INPUT();
TOSH_MAKE_UTXD1_INPUT();
TOSH_MAKE_URXD1_INPUT();
//PROG PINS
TOSH_MAKE_PROG_RX_INPUT();
TOSH_MAKE_PROG_TX_INPUT();
//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
--- NEW FILE: .platform ---
@opts = ();
@commonplatforms = ("telos","msp430");
More information about the Tinyos-beta-commits
mailing list