From a7678a8c7b2abbea705ce7d3be6d7836035b4b6e Mon Sep 17 00:00:00 2001 From: William Miceli Date: Fri, 14 May 2021 16:04:53 -0400 Subject: [PATCH] Created very basic Blinky LED project --- Telem_Debug/Debug_BlinkyLED/.ccsproject | 16 + Telem_Debug/Debug_BlinkyLED/.cproject | 199 +++++++++ Telem_Debug/Debug_BlinkyLED/.gitignore | 1 + Telem_Debug/Debug_BlinkyLED/.project | 27 ++ .../org.eclipse.cdt.codan.core.prefs | 3 + .../org.eclipse.cdt.debug.core.prefs | 2 + .../org.eclipse.core.resources.prefs | 6 + Telem_Debug/Debug_BlinkyLED/Sunseeker2021.h | 377 ++++++++++++++++++ Telem_Debug/Debug_BlinkyLED/clock_init.c | 129 ++++++ .../Debug_BlinkyLED/lnk_msp430f5438a.cmd | 250 ++++++++++++ Telem_Debug/Debug_BlinkyLED/main.c | 72 ++++ .../targetConfigs/MSP430F5438A.ccxml | 12 + .../Debug_BlinkyLED/targetConfigs/readme.txt | 9 + 13 files changed, 1103 insertions(+) create mode 100644 Telem_Debug/Debug_BlinkyLED/.ccsproject create mode 100644 Telem_Debug/Debug_BlinkyLED/.cproject create mode 100644 Telem_Debug/Debug_BlinkyLED/.gitignore create mode 100644 Telem_Debug/Debug_BlinkyLED/.project create mode 100644 Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.cdt.debug.core.prefs create mode 100644 Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.core.resources.prefs create mode 100644 Telem_Debug/Debug_BlinkyLED/Sunseeker2021.h create mode 100644 Telem_Debug/Debug_BlinkyLED/clock_init.c create mode 100644 Telem_Debug/Debug_BlinkyLED/lnk_msp430f5438a.cmd create mode 100644 Telem_Debug/Debug_BlinkyLED/main.c create mode 100644 Telem_Debug/Debug_BlinkyLED/targetConfigs/MSP430F5438A.ccxml create mode 100644 Telem_Debug/Debug_BlinkyLED/targetConfigs/readme.txt diff --git a/Telem_Debug/Debug_BlinkyLED/.ccsproject b/Telem_Debug/Debug_BlinkyLED/.ccsproject new file mode 100644 index 0000000..d4b5778 --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/.ccsproject @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Telem_Debug/Debug_BlinkyLED/.cproject b/Telem_Debug/Debug_BlinkyLED/.cproject new file mode 100644 index 0000000..bda1b45 --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/.cproject @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Telem_Debug/Debug_BlinkyLED/.gitignore b/Telem_Debug/Debug_BlinkyLED/.gitignore new file mode 100644 index 0000000..3df573f --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/.gitignore @@ -0,0 +1 @@ +/Debug/ diff --git a/Telem_Debug/Debug_BlinkyLED/.project b/Telem_Debug/Debug_BlinkyLED/.project new file mode 100644 index 0000000..141ffb6 --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/.project @@ -0,0 +1,27 @@ + + + Debug_BlinkyLED-Basic + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + diff --git a/Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.cdt.codan.core.prefs b/Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..f653028 --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.cdt.debug.core.prefs b/Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.cdt.debug.core.prefs new file mode 100644 index 0000000..2adc7b1 --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.cdt.debug.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker diff --git a/Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.core.resources.prefs b/Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..093dbb9 --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//Debug/makefile=UTF-8 +encoding//Debug/objects.mk=UTF-8 +encoding//Debug/sources.mk=UTF-8 +encoding//Debug/subdir_rules.mk=UTF-8 +encoding//Debug/subdir_vars.mk=UTF-8 diff --git a/Telem_Debug/Debug_BlinkyLED/Sunseeker2021.h b/Telem_Debug/Debug_BlinkyLED/Sunseeker2021.h new file mode 100644 index 0000000..32a29b4 --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/Sunseeker2021.h @@ -0,0 +1,377 @@ +/* + * Sunseeker Telemetry 2021 + * +* Last modified May 2021 by B. Bazuin + * + * Main CLK : MCLK = XT2 = 20 MHz + * Sub-Main CLK : SMCLK = XT2/2 = 10 MHz + * Aux CLK : ACLK = XT1 = 32.768 kHz + * + */ + +#ifndef SUNSEEKER2021_H_ +#define SUNSEEKER2021_H_ + +#include +#include +#include +#include +#include +#include +#include + + +void clock_init(void); +void timerB_init(void); +void io_init(void); + +static inline void delay(void) +{ + volatile int jj; + volatile int ii; + for (ii = 0; ii < 4; ii++) + { + for (jj = 0; jj < 1000; jj++) + { + asm(" nop"); //The space is necessary or else the assembler thinks "nop" is a label! + } + } +} + +// Event timing +#define SMCLK_RATE 10000000 // Hz +#define ACLK_RATE 32768 // Hz +#define TICK_RATE 16 // Hz +#define TELEM_STATUS_COUNT 16 // Number of ticks per event: 5 sec +#define HS_COMMS_SPEED 16*5 // Number of ticks per event: 5 sec +#define LS_COMMS_SPEED 16*10 // Number of ticks per event: 15 sec +#define ST_COMMS_SPEED 16*20 // Number of ticks per event: 60 sec + +// Constant Definitions +#define TRUE 1 +#define FALSE 0 + +#ifndef MODEM_BR1 +#define MODEM_BR1 9600 +#define MODEM_UCBRS1 0x04 // 2*ROUND(SMCLK_RATE/MODEM_BR-INT(SMCLK_RATE/MODEM_BR))*8 +#endif + +#ifndef MODEM_BR2 +#define MODEM_BR2 115200 +#define MODEM_UCBRS2 0x0A // 2*ROUND(SMCLK_RATE/MODEM_BR-INT(SMCLK_RATE/MODEM_BR))*8 +#endif + +#ifndef USB_BR +#define USB_BR 9600 +#define USB_UCBRS 0x04 // 2*ROUND(SMCLK_RATE/UART_BR-INT(SMCLK_RATE/UART_BR))*8 +#endif + +#ifndef UART_BR +#define UART_BR 19200 +#define UART_UCBRS 0x0D // 2*ROUND(SMCLK_RATE/UART_BR-INT(SMCLK_RATE/UART_BR))*8 +#endif + +#include "RTC.h" +#include "CAN.h" +#include "RS232.h" + + +/******************** Pin Definitions *************************/ + +// PORT 1 +#define P10 0x01 +#define P11 0x02 +#define P12 0x04 +#define P13 0x08 +#define P14 0x10 +#define P15 0x20 +#define RTC_MFP 0x40 +#define IMU_INTn 0x80 +#define P1_UNUSED 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 + +// PORT 2 +#define CAN0_INTn 0x01 +#define CAN0_RXB0n 0x02 +#define CAN0_RXB1n 0x04 +#define CAN1_INTn 0x08 +#define CAN1_RXB0n 0x10 +#define CAN1_RXB1n 0x20 +#define GPS_INTn 0x40 +#define P27 0x80 +#define P2_UNUSED 0x80 + +// PORT 3 +#define CAN0_SCLK 0x01 +#define SDC_SIMO 0x02 +#define SDC_SOMI 0x04 +#define SDC_SCLK 0x08 +#define CAN0_MOSI 0x10 +#define CAN0_MISO 0x20 +#define CAN1_CLK 0x40 +#define IMU_SDA 0x80 +#define P3_UNUSED 0x00 + +// PORT 4 +#define CAN0_RSTn 0x01 +#define CAN0_CSn 0x02 +#define CAN1_RSTn 0x04 +#define CAN1_CSn 0x08 +#define SDC_WPn 0x10 +#define SDC_CDn 0x20 +#define P46 0x40 +#define P47 0x80 +#define P4_UNUSED 0x40 | 0x80 + +// PORT 5 +#define P50 0x01 +#define P51 0x02 +#define XT2IN 0x04 +#define XT2OUT 0x08 +#define IMU_SCL 0x10 +#define P55 0x20 +#define CAN1_MOSI 0x40 +#define CAN1_MISO 0x80 +#define P5_UNUSED 0x01 | 0x02 | 0x20 + +// PORT 6 +#define P60 0x01 +#define P61 0x02 +#define P62 0x04 +#define P63 0x08 +#define P64 0x10 +#define P65 0x20 +#define P66 0x40 +#define P67 0x80 +#define P6_UNUSED 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80 + +// PORT 7 +#define XT1IN 0x01 +#define XT1OUT 0x02 +#define P72 0x04 +#define P73 0x08 +#define P74 0x10 +#define P75 0x20 +#define P76 0x40 +#define P77 0x80 +#define P7_UNUSED 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80 + +// PORT 8 +#define P80 0x01 +#define P81 0x02 +#define P82 0x04 +#define LEDG 0x08 +#define LEDR 0x10 +#define LEDY0 0x20 +#define LEDY1 0x40 +#define Button0 0x80 +#define P8_UNUSED 0x01 | 0x02 | 0x04 + +// PORT 9 +#define P90 0x01 +#define RTC_SDA 0x02 +#define RTC_SCL 0x04 +#define P93 0x08 +#define USB_TX 0x10 +#define USB_RX 0x20 +#define SDC_CSn 0x40 +#define GPS_CSn 0x80 +#define P9_UNUSED 0x40 | 0x80 + +// PORT 10 +#define BT_CSn 0x01 +#define BT_MOSI 0x02 +#define BT_MISO 0x04 +#define BT_SCLK 0x08 +#define UART_TX 0x10 +#define UART_RX 0x20 +#define BT_EN 0x40 +#define P107 0x80 +#define P10_UNUSED 0x80 + +// PORT 11 +#define ACLK_TEST 0x01 +#define MCLK_TEST 0x02 +#define SMCLK_TEST 0x04 + +// PORT J +#define JTAG_TDO 0x01 +#define JTAG_TDI 0x02 +#define JTAG_TMS 0x04 +#define JTAG_TCK 0x08 + +// Transmit Packet Info +#define HF_MSG_PACKET 10 //number of messages per packet in high frequency +#define LF_MSG_PACKET 0 //number of messages per packet in low frequency +#define ST_MSG_PACKET 0 //number of messages that we receive and don't send out +#define No_MSG_PACKET 38 //number of messages that we receive and don't send out +#define LOOKUP_ROWS HF_MSG_PACKET+LF_MSG_PACKET+ST_MSG_PACKET+No_MSG_PACKET +#define NAME_LOOKUP_ROWS LOOKUP_ROWS +//#define TIME_SIZE 30 //number of characters in time +#define MSG_SIZE 30 //number of characters in single message + +// Motor controller CAN base address and packet offsets +#define MC_CAN_BASE1 0x400 // High = CAN1_SERIAL Number Low = 0x00004003 P=1s +#define MC_CAN_BASE2 0x420 // High = CAN1_SERIAL Number Low = 0x00004003 P=1s +#define MC_LIMITS 0x01 // High = CAN_Err,Active Motor Low = Error & Limit flags P=200ms +#define MC_BUS 0x02 // High = Bus Current Low = Bus Voltage P=200ms +#define MC_VELOCITY 0x03 // High = Velocity (m/s) Low = Velocity (rpm) P=200ms +#define MC_PHASE 0x04 // High = Phase C Current Low = Phase B Current P=200ms +#define MC_V_VECTOR 0x05 // High = Vd vector Low = Vq vector P=200ms +#define MC_I_VECTOR 0x06 // High = Id vector Low = Iq vector P=200ms +#define MC_BEMF_VECTOR 0x07 // High = BEMFd vector Low = BEMFq vector P=200ms +#define MC_RAIL1 0x08 // High = 15V Low = Reserved P=1s +#define MC_RAIL2 0x09 // High = 3.3V Low = 1.9V P=1s +//#define MC_FAN 0x0A // High = Reserved Low = Reserved P= +#define MC_TEMP1 0x0B // High = Heatsink Temp (case) Low = Motor Temp (internal) P=1s +#define MC_TEMP2 0x0C // High = Reserved Low = DSP Temp P=1s +//#define MC_TEMP3 0x0D // High = Outlet Temp Low = Capacitor Temp P= +#define MC_CUMULATIVE 0x0E // High = DC Bus AmpHours (A-Hr) Low = Odometer (m) P=1s +#define MC_SLIPSPEED 0x17 // High = Slip Speed (Hz ) Low = Reserved P=200ms + +// Driver controls CAN base address and packet offsets +#define DC_CAN_BASE 0x500 // High = CAN1_SERIAL Number Low = "TRIb" string P=1s +#define DC_DRIVE 0x01 // High = Motor Current Setpoint Low = Motor Velocity Setpoint P=100ms +#define DC_POWER 0x02 // High = Bus Current Setpoint Low = Unused P=100ms +#define DC_RESET 0x03 // High = Unused Low = Unused P= +#define DC_SWITCH 0x04 // High = Switch position Low = Switch state change P=100ms + +//Battery Protection System base address and packet offsets +#define BP_CAN_BASE 0x580 // High = "BPV1" string or nulls Low = CAN1_SERIAL Number P=10s +#define BP_VMAX 0x01 // High = Max. Voltage Value Low = Max. Voltage Cell Num. P=10s +#define BP_VMIN 0x02 // High = Min. Voltage Value Low = Min. Voltage Cell Num. P=10s +#define BP_TMAX 0x03 // High = Max. Temperature Low = Max. Temperature Cell P=10s +#define BP_PCDONE 0x04 // High = "BPV2" or "0000" string Low = CAN1_SERIAL Number P=When Ready +#define BP_ISH 0x05 // High = Shunt Current Low = Battery Voltage P=1s + +//Battery Protection System base address and packet offsets +#define AC_CAN_BASE 0x5C0 // High = "ACV1" string or nulls Low = CAN1_SERIAL Number P=10s +#define AC_M1 0x01 // High = Array Voltage Average Low = Array Current Average P=10s +#define AC_M2 0x02 // High = Array Voltage Average Low = Array Current Average P=10s +#define AC_M3 0x03 // High = Array Voltage Average Low = Array Current Average P=10s +#define AC_ISH 0x04 // High = Shunt Current Low = Battery Voltage P=1s +#define AC_TMAX 0x05 // High = Max. Temperature Low = Max. Temperature MPPT P=10s +#define AC_TVAL1 0x06 // High = Temp AC1 Low = Temp AC2 P=10s +#define AC_TVAL2 0x06 // High = Temp AC3 Low = Reserved P=10s +#define AC_BP_CHARGE 0x07 // High = "ACV1" or "0000" string Low = CAN1_SERIAL Number P=When Charge + +static int addr_lookup[LOOKUP_ROWS][5] = { + //address ASCII Offset MSG_REC position Packet(0-HF:1-LF:2-Status) Filter Priority + {MC_CAN_BASE1, 0, 0x0001, 3, 29}, //0-0x400 High = CAN1_SERIAL Number Low = "TRIa" string + {MC_CAN_BASE1 + MC_LIMITS, 0, 0x0001, 3, 15}, //1-0x01 High = Active Motor Low = Error & Limit flags + {MC_CAN_BASE1 + MC_BUS, 0, 0x0002, 0, 1}, //2-0x02 High = Bus Current Low = Bus Voltage + {MC_CAN_BASE1 + MC_VELOCITY, 1, 0x0004, 0, 2}, //3-0x03 High = Velocity (m/s) Low = Velocity (rpm) + {MC_CAN_BASE1 + MC_PHASE, 1, 0x0001, 3, 30}, //4-0x04 High = Phase A Current Low = Phase B Current + {MC_CAN_BASE1 + MC_V_VECTOR, 2, 0x0002, 3, 31}, //5-0x05 High = Vd vector Low = Vq vector + {MC_CAN_BASE1 + MC_I_VECTOR, 3, 0x0004, 3, 32}, //6-0x06 High = Id vector Low = Iq vector + {MC_CAN_BASE1 + MC_BEMF_VECTOR, 4, 0x0008, 3, 33}, //7-0x07 High = BEMFd vector Low = BEMFq vector + {MC_CAN_BASE1 + MC_RAIL1, 1, 0x0002, 3, 16}, //8-0x08 High = 15V Low = Reserved + {MC_CAN_BASE1 + MC_RAIL2, 2, 0x0004, 3, 17}, //9-0x09 High = 3.3V Low = 1.9V + {MC_CAN_BASE1 + MC_TEMP1, 0, 0x0001, 3, 7}, //10-0x0B High = Heatsink Temp Low = Motor Temp + {MC_CAN_BASE1 + MC_TEMP2, 1, 0x0002, 3, 8}, //11-0x0C High = Inlet Temp Low = CPU Temp + {MC_CAN_BASE1 + MC_CUMULATIVE, 3, 0x0008, 3, 18}, //12-x0E High = DC Bus AmpHours Low = Odometer + {MC_CAN_BASE1 + MC_SLIPSPEED, 5, 0x0010, 3, 34}, //13-0x17 High =Slip Speed (Hz) Low = Reserved + {MC_CAN_BASE2, 6, 0x0020, 3, 35}, //14-0x420 High = CAN1_SERIAL Number Low = "TRIa" string + {MC_CAN_BASE2 + MC_LIMITS, 4, 0x0010, 3, 19}, //15-0x01 High = Active Motor Low = Error & Limit flags + {MC_CAN_BASE2 + MC_BUS, 2, 0x0010, 0, 3}, //16-0x02 High = Bus Current Low = Bus Voltage + {MC_CAN_BASE2 + MC_VELOCITY, 3, 0x0020, 0, 4}, //17-0x03 High = Velocity (m/s) Low = Velocity (rpm) + {MC_CAN_BASE2 + MC_PHASE, 7, 0x0040, 3, 36}, //18-0x04 High = Phase A Current Low = Phase B Current + {MC_CAN_BASE2 + MC_V_VECTOR, 8, 0x0080, 3, 37}, //19-0x05 High = Vd vector Low = Vq vector + {MC_CAN_BASE2 + MC_I_VECTOR, 9, 0x0100, 3, 38}, //20-0x06 High = Id vector Low = Iq vector + {MC_CAN_BASE2 + MC_BEMF_VECTOR, 10, 0x0200, 3, 39}, //21-0x07 High = BEMFd vector Low = BEMFq vector + {MC_CAN_BASE2 + MC_RAIL1, 5, 0x0020, 3, 20}, //22-0x08 High = 15V Low = Reserved + {MC_CAN_BASE2 + MC_RAIL2, 6, 0x0040, 3, 21}, //23-0x09 High = 3.3V Low = 1.9V + {MC_CAN_BASE2 + MC_TEMP1, 2, 0x0004, 3, 9}, //24-0x0B High = Heatsink Temp Low = Motor Temp + {MC_CAN_BASE2 + MC_TEMP2, 3, 0x0008, 3, 10}, //25-0x0C High = Inlet Temp Low = CPU Temp + {MC_CAN_BASE2 + MC_CUMULATIVE, 7, 0x0080, 3, 22}, //26-0x0E High = DC Bus AmpHours Low = Odometer + {MC_CAN_BASE2 + MC_SLIPSPEED, 11, 0x0400, 3, 40}, //27-0x17 High =Slip Speed (Hz) Low = Reserved + {DC_CAN_BASE, 12, 0x0800, 3, 41}, //28-0x500 High = CAN1_SERIAL Number Low = "TRIb" string + {DC_CAN_BASE + DC_DRIVE, 4, 0x0800, 0, 23}, //29-0x01 High = Motor Current Setpoint Low = Motor Velocity Setpoint + {DC_CAN_BASE + DC_POWER, 9, 0x0200, 3, 24}, //30-0x02 High = Bus Current Setpoint Low = Unused + {DC_CAN_BASE + DC_RESET, 13, 0x1000, 3, 42}, //31-0x03 High = Unused Low = Unused + {DC_CAN_BASE + DC_SWITCH, 5, 0x0080, 0, 25}, //32-0x04 High = Switch position Low = Switch state change + {BP_CAN_BASE, 14, 0x2000, 3, 43}, //33-0x580 High = BPV2" string or nulls Low = CAN1_SERIAL Number + {BP_CAN_BASE + BP_VMAX, 6, 0x0010, 0, 11}, //34-0x01 High = Max Voltage Low = Cell Number + {BP_CAN_BASE + BP_VMIN, 7, 0x0020, 0, 12}, //35-0x02 High = Min Voltage Low = Cell Number + {BP_CAN_BASE + BP_TMAX, 8, 0x0040, 0, 13}, //36-0x03 High = Temp Max Low = Cell Number + {BP_CAN_BASE + BP_PCDONE, 15, 0x0200, 3, 44}, //37-0x04 High = "BPV1" string Low = CAN1_SERIAL Number + {BP_CAN_BASE + BP_ISH, 9, 0x0010, 0, 5}, //38-0x05 High = Shunt Current Low = Battery Voltage + {AC_CAN_BASE, 16, 0x8000, 3, 45}, //39-0x5C0 High = ACV1" string or nulls Low = CAN1_SERIAL Number + {AC_CAN_BASE + AC_M1, 11, 0x0800, 3, 26}, //40-0x01 High = Array Voltage Average Low = Array Current Average + {AC_CAN_BASE + AC_M2, 12, 0x1000, 3, 27}, //41-0x02 High = Array Voltage Average Low = Array Current Average + {AC_CAN_BASE + AC_M3, 13, 0x2000, 3, 28}, //42-0x03 High = Array Voltage Average Low = Array Current Average + {AC_CAN_BASE + AC_ISH, 5, 0x0020, 3, 6}, //43-0x04 High = Shunt Current Low = Battery Voltage + {AC_CAN_BASE + AC_TMAX, 7, 0x0080, 3, 14}, //44-0x05 High = Max. Temperature Low = Max. Temperature MPPT + {AC_CAN_BASE + AC_TVAL1, 17, 0x1000, 3, 46}, //45-0x03 High = Temp AC1 Low = Temp AC2 + {AC_CAN_BASE + AC_TVAL2, 18, 0x2000, 3, 47}, //46-0x04 High = Temp AC3 Low = Reserved + {AC_CAN_BASE + AC_BP_CHARGE, 19, 0x4000, 3, 48}, //47-0x05 High = "ACV1" or "0000" string Low = CAN1_SERIAL Number +}; +// removed +//{MC_CAN_BASE1 + MC_FAN, -, 0x----, -, --}, //xx-0x0A High = Fan speed (rpm) Low = Fan drive (%) +//{MC_CAN_BASE1 + MC_TEMP3, -, 0x----, -, --}, //xx-0x0D High = Outlet Temp Low = Capacitor Temp +//{MC_CAN_BASE2 + MC_FAN, -, 0x----, -, --}, //xx-0x0A High = Fan speed (rpm) Low = Fan drive (%) +//{MC_CAN_BASE2 + MC_TEMP3, -, 0x----, -, --}, //xx-0x0D High = Outlet Temp Low = Capacitor Temp + + +//static char lut_blacklist[] = {32,11,4,5,11,12,13,14,15,23,24,25,3,26,27,28}; +//static char lut_blacklist[] = {44}; +static char lut_blacklist[] = {49}; + +static char *name_lookup[NAME_LOOKUP_ROWS] = { + //name + "MC1BAS", //MC_CAN_BASE1_ + "MC1LIM", //MC_CAN_BASE1 + MC_LIMITS + "MC1BUS", //MC_CAN_BASE1 + MC_BUS + "MC1VEL", //MC_CAN_BASE1 + MC_VELOCITY + "MC1PHA", //MC_CAN_BASE1 + MC_PHASE + "MC1VVC", //MC_CAN_BASE1 + MC_V_VECTOR + "MC1IVC", //MC_CAN_BASE1 + MC_I_VECTOR + "MC1BEM", //MC_CAN_BASE1 + MC_BEMF_VECTOR + "MC1RL1", //MC_CAN_BASE1 + MC_RAIL1 + "MC1RL2", //MC_CAN_BASE1 + MC_RAIL2 + "MC1TP1", //MC_CAN_BASE1 + MC_TEMP1 + "MC1TP2", //MC_CAN_BASE1 + MC_TEMP2 + "MC1CUM", //MC_CAN_BASE1 + MC_CUMULATIVE + "MC1SLS", //MC_CAN_BASE1 + MC_SLIPSPEED + "MC2BAS", //MC_CAN_BASE2 + "MC2LIM", //MC_CAN_BASE2 + MC_LIMITS + "MC2BUS", //MC_CAN_BASE2 + MC_BUS + "MC2VEL", //MC_CAN_BASE2 + MC_VELOCITY + "MC2PHA", //MC_CAN_BASE2 + MC_PHASE + "MC2VVC", //MC_CAN_BASE2 + MC_V_VECTOR + "MC2IVC", //MC_CAN_BASE2 + MC_I_VECTOR + "MC2BEM", //MC_CAN_BASE2 + MC_BEMF_VECTOR + "MC2RL1", //MC_CAN_BASE2 + MC_RAIL1 + "MC2RL2", //MC_CAN_BASE2 + MC_RAIL2 + "MC2TP1", //MC_CAN_BASE2 + MC_TEMP1 + "MC2TP2", //MC_CAN_BASE2 + MC_TEMP2 + "MC2CUM", //MC_CAN_BASE2 + MC_CUMULATIVE + "MC2SLS", //MC_CAN_BASE2 + MC_SLIPSPEED + "DC_BAS", //DC_CAN_BASE + "DC_DRV", //DC_CAN_BASE + DC_DRIVE + "DC_POW", //DC_CAN_BASE + DC_POWER + "DC_RST", //DC_CAN_BASE + DC_RESET + "DC_SWC", //DC_CAN_BASE + DC_SWITCH + "BP_BAS", //BP_CAN_BASE + "BP_VMX", //BP_CAN_BASE + BP_VMAX + "BP_VMN", //BP_CAN_BASE + BP_VMIN + "BP_TMX", //BP_CAN_BASE + BP_TMAX + "BP_PCD", //BP_CAN_BASE + BP_PCDONE + "BP_ISH", //BP_CAN_BASE + BP_ISH + "AC_BAS", //AC_CAN_BASE + "AC_MP1", //AC_CAN_BASE + AC_M1 + "AC_MP2", //AC_CAN_BASE + AC_M2 + "AC_MP3", //AC_CAN_BASE + AC_M3 + "AC_ISH", //AC_CAN_BASE + AC_ISH + "AC_TMX", //AC_CAN_BASE + AC_TMAX + "AC_TV1", //AC_CAN_BASE + AC_TVAL1 + "AC_TV2", //AC_CAN_BASE + AC_TVAL2 + "AC_BPC", //AC_CAN_BASE + AC_BP_CHARGE +}; + +// removed +// "MC1FAN", //MC_CAN_BASE1 + MC_FAN +// "MC1TP3", //MC_CAN_BASE1 + MC_TEMP3 +// "MC2FAN", //MC_CAN_BASE2 + MC_FAN +// "MC2TP3", //MC_CAN_BASE2 + MC_TEMP3 + +#endif /* SUNSEEKER2021_H_ */ diff --git a/Telem_Debug/Debug_BlinkyLED/clock_init.c b/Telem_Debug/Debug_BlinkyLED/clock_init.c new file mode 100644 index 0000000..5c57f4e --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/clock_init.c @@ -0,0 +1,129 @@ +/* + * Clock Initialization Code MSP430F5438A + * Initialize Clock Source XT1 @ 32768 Hz + * Initialize Clock Source XT2 @ 20MHz + * + * Sunseeker Telemetry 2021 + * + * Last modified October 2015 by Scott Haver + * Last modified May 2021 by B. Bazuin + * + * Main CLK : MCLK = XT2 = 20 MHz + * Sub-Main CLK : SMCLK = XT2/2 = 10 MHz + * Aux CLK : ACLK = XT1 = 32.768 kHz + * + */ +#include + + +void Port_Init(void); +void Clock_XT1_Init(void); +void Clock_XT2_Init(void); +void SetVCoreUp(unsigned int level); + + +void clock_init(void) +{ + WDTCTL = WDTPW + WDTHOLD; //Stop watchdog timer + + Port_Init(); //ensure clock pins are configured + + SetVCoreUp(1); //Configure MCU core voltage for HF clock + SetVCoreUp(2); // + SetVCoreUp(3); // + + Clock_XT1_Init(); //LF clock source init + Clock_XT2_Init(); //HF clock source init + +} + +void Port_Init(void) +{ + //Clock Source TEST PINS ACLK/MCLK/SMCLK + P11DIR |= (1 << 0) | (1 << 1) | (1 << 2); //set P11.0:P11.2 as output ACLK/MCLK/SMCLK + P11SEL |= (1 << 0) | (1 << 1) | (1 << 2); //set P11.0:P11.2 as ACLK/MCLK/SMCLK function + + //XT1 ALTERNATE PIN CONFIG + P7SEL |= (1 << 0) | (1 << 1); //set P7.0 & P7.1 as XT1IN/XT1OUT peripheral + P7DIR |= (1 << 0) | (1 << 1); + + //XT2 ALTERNATE PIN CONFIG + P5SEL |= (1 << 2) | (1 << 3); //set P5.2 & P5.3 as XT2IN/XT2OUT peripheral + P5DIR |= (1 << 2) | (1 << 3); +} + +void Clock_XT1_Init(void) +{ + char i; + + //XT1 CLOCK CONFIG + UCSCTL6 &= ~(XT1OFF); //Enable XT1 + UCSCTL6 &= ~(XT1DRIVE1 | XT1DRIVE0); //lowest drive current LF 32KHz oscillator + + do + { + UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);//Clear XT2,XT1,DCO fault flags + SFRIFG1 &= ~OFIFG; //Clear fault flags + for(i=255;i>0;i--); //Delay for Osc to stabilize + } + while ((SFRIFG1 & OFIFG) != 0); //Test oscillator fault flag + + UCSCTL4 |= SELA__XT1CLK; //Clock Source ACLK = XT1 = 32kHz + UCSCTL5 |= DIVA_0; //Divide ACLK/1 = 32kHz + +} + +void Clock_XT2_Init(void) +{ + char i; + + //XT2 CLOCK CONFIG + UCSCTL6 &= ~(XT2OFF); //Enable XT2 + UCSCTL6 |= XT2DRIVE_3; //Drive current 16-24 MHz Clock + UCSCTL6 &= ~XT2BYPASS; //XT2 Sourced Externally from pin - 20MHz + + do + { + UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);//Clear XT2,XT1,DCO fault flags + SFRIFG1 &= ~OFIFG; //Clear fault flags + for(i=255;i>0;i--); //Delay for Osc to stabilize + } + while ((SFRIFG1 & OFIFG) != 0); //Test oscillator fault flag + + UCSCTL4 |= (SELS__XT2CLK | SELM__XT2CLK);//Clock Source SMCLK=MCLK = XT2 = 20MHz + UCSCTL5 |= DIVM_0 | DIVS_1; //MCLK:XT2/1 = 20MHz SMCLK:XT2/2 = 10MHz + +} + +/************************************************************* +/ Name: SetVCoreUp +/ IN: int Level +/ OUT: void +/ DESC: This function is used to set the voltage of the VCORE to +/ The level specified in input +/ Reference: Users Guide page 74 +************************************************************/ +void SetVCoreUp (unsigned int level) +{ + // Open PMM registers for write access + PMMCTL0_H = 0xA5; + // Set SVS/SVM high side new level + SVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 * level; + // Set SVM low side to new level + SVSMLCTL = SVSLE + SVMLE + SVSMLRRL0 * level; + // Wait till SVM is settled + while ((PMMIFG & SVSMLDLYIFG) == 0); + // Clear already set flags + PMMIFG &= ~(SVMLVLRIFG + SVMLIFG); + // Set VCore to new level + PMMCTL0_L = PMMCOREV0 * level; + // Wait till new level reached + if ((PMMIFG & SVMLIFG)) + while ((PMMIFG & SVMLVLRIFG) == 0); + // Set SVS/SVM low side to new level + SVSMLCTL = SVSLE + SVSLRVL0 * level + SVMLE + SVSMLRRL0 * level; + // Wait till SVM is settled + while ((PMMIFG & SVSMLDLYIFG) == 0); + // Lock PMM registers for write access + PMMCTL0_H = 0x00; +} diff --git a/Telem_Debug/Debug_BlinkyLED/lnk_msp430f5438a.cmd b/Telem_Debug/Debug_BlinkyLED/lnk_msp430f5438a.cmd new file mode 100644 index 0000000..a9cab7d --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/lnk_msp430f5438a.cmd @@ -0,0 +1,250 @@ +/* ============================================================================ */ +/* Copyright (c) 2016, Texas Instruments Incorporated */ +/* All rights reserved. */ +/* */ +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ +/* */ +/* * Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* */ +/* * Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in the */ +/* documentation and/or other materials provided with the distribution. */ +/* */ +/* * Neither the name of Texas Instruments Incorporated nor the names of */ +/* its contributors may be used to endorse or promote products derived */ +/* from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" */ +/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, */ +/* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ +/* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */ +/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, */ +/* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, */ +/* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; */ +/* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, */ +/* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */ +/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */ +/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* ============================================================================ */ + +/******************************************************************************/ +/* lnk_msp430f5438a.cmd - LINKER COMMAND FILE FOR LINKING MSP430F5438A PROGRAMS */ +/* */ +/* Usage: lnk430 -o -m lnk.cmd */ +/* cl430 -z -o -m lnk.cmd */ +/* */ +/*----------------------------------------------------------------------------*/ +/* These linker options are for command line linking only. For IDE linking, */ +/* you should set your linker options in Project Properties */ +/* -c LINK USING C CONVENTIONS */ +/* -stack 0x0100 SOFTWARE STACK SIZE */ +/* -heap 0x0100 HEAP AREA SIZE */ +/* */ +/*----------------------------------------------------------------------------*/ +/* Version: 1.192 */ +/*----------------------------------------------------------------------------*/ + +/****************************************************************************/ +/* Specify the system memory map */ +/****************************************************************************/ + +MEMORY +{ + SFR : origin = 0x0000, length = 0x0010 + PERIPHERALS_8BIT : origin = 0x0010, length = 0x00F0 + PERIPHERALS_16BIT : origin = 0x0100, length = 0x0100 + RAM : origin = 0x1C00, length = 0x4000 + INFOA : origin = 0x1980, length = 0x0080 + INFOB : origin = 0x1900, length = 0x0080 + INFOC : origin = 0x1880, length = 0x0080 + INFOD : origin = 0x1800, length = 0x0080 + FLASH : origin = 0x5C00, length = 0xA380 + FLASH2 : origin = 0x10000,length = 0x35C00 + INT00 : origin = 0xFF80, length = 0x0002 + INT01 : origin = 0xFF82, length = 0x0002 + INT02 : origin = 0xFF84, length = 0x0002 + INT03 : origin = 0xFF86, length = 0x0002 + INT04 : origin = 0xFF88, length = 0x0002 + INT05 : origin = 0xFF8A, length = 0x0002 + INT06 : origin = 0xFF8C, length = 0x0002 + INT07 : origin = 0xFF8E, length = 0x0002 + INT08 : origin = 0xFF90, length = 0x0002 + INT09 : origin = 0xFF92, length = 0x0002 + INT10 : origin = 0xFF94, length = 0x0002 + INT11 : origin = 0xFF96, length = 0x0002 + INT12 : origin = 0xFF98, length = 0x0002 + INT13 : origin = 0xFF9A, length = 0x0002 + INT14 : origin = 0xFF9C, length = 0x0002 + INT15 : origin = 0xFF9E, length = 0x0002 + INT16 : origin = 0xFFA0, length = 0x0002 + INT17 : origin = 0xFFA2, length = 0x0002 + INT18 : origin = 0xFFA4, length = 0x0002 + INT19 : origin = 0xFFA6, length = 0x0002 + INT20 : origin = 0xFFA8, length = 0x0002 + INT21 : origin = 0xFFAA, length = 0x0002 + INT22 : origin = 0xFFAC, length = 0x0002 + INT23 : origin = 0xFFAE, length = 0x0002 + INT24 : origin = 0xFFB0, length = 0x0002 + INT25 : origin = 0xFFB2, length = 0x0002 + INT26 : origin = 0xFFB4, length = 0x0002 + INT27 : origin = 0xFFB6, length = 0x0002 + INT28 : origin = 0xFFB8, length = 0x0002 + INT29 : origin = 0xFFBA, length = 0x0002 + INT30 : origin = 0xFFBC, length = 0x0002 + INT31 : origin = 0xFFBE, length = 0x0002 + INT32 : origin = 0xFFC0, length = 0x0002 + INT33 : origin = 0xFFC2, length = 0x0002 + INT34 : origin = 0xFFC4, length = 0x0002 + INT35 : origin = 0xFFC6, length = 0x0002 + INT36 : origin = 0xFFC8, length = 0x0002 + INT37 : origin = 0xFFCA, length = 0x0002 + INT38 : origin = 0xFFCC, length = 0x0002 + INT39 : origin = 0xFFCE, length = 0x0002 + INT40 : origin = 0xFFD0, length = 0x0002 + INT41 : origin = 0xFFD2, length = 0x0002 + INT42 : origin = 0xFFD4, length = 0x0002 + INT43 : origin = 0xFFD6, length = 0x0002 + INT44 : origin = 0xFFD8, length = 0x0002 + INT45 : origin = 0xFFDA, length = 0x0002 + INT46 : origin = 0xFFDC, length = 0x0002 + INT47 : origin = 0xFFDE, length = 0x0002 + INT48 : origin = 0xFFE0, length = 0x0002 + INT49 : origin = 0xFFE2, length = 0x0002 + INT50 : origin = 0xFFE4, length = 0x0002 + INT51 : origin = 0xFFE6, length = 0x0002 + INT52 : origin = 0xFFE8, length = 0x0002 + INT53 : origin = 0xFFEA, length = 0x0002 + INT54 : origin = 0xFFEC, length = 0x0002 + INT55 : origin = 0xFFEE, length = 0x0002 + INT56 : origin = 0xFFF0, length = 0x0002 + INT57 : origin = 0xFFF2, length = 0x0002 + INT58 : origin = 0xFFF4, length = 0x0002 + INT59 : origin = 0xFFF6, length = 0x0002 + INT60 : origin = 0xFFF8, length = 0x0002 + INT61 : origin = 0xFFFA, length = 0x0002 + INT62 : origin = 0xFFFC, length = 0x0002 + RESET : origin = 0xFFFE, length = 0x0002 +} + +/****************************************************************************/ +/* Specify the sections allocation into memory */ +/****************************************************************************/ + +SECTIONS +{ + .bss : {} > RAM /* Global & static vars */ + .data : {} > RAM /* Global & static vars */ + .TI.noinit : {} > RAM /* For #pragma noinit */ + .sysmem : {} > RAM /* Dynamic memory allocation area */ + .stack : {} > RAM (HIGH) /* Software system stack */ + +#ifndef __LARGE_DATA_MODEL__ + .text : {} > FLASH /* Code */ +#else + .text : {} >> FLASH2 | FLASH /* Code */ +#endif + .text:_isr : {} > FLASH /* ISR Code space */ + .cinit : {} > FLASH /* Initialization tables */ +#ifndef __LARGE_DATA_MODEL__ + .const : {} > FLASH /* Constant data */ +#else + .const : {} >> FLASH | FLASH2 /* Constant data */ +#endif + .cio : {} > RAM /* C I/O Buffer */ + + .pinit : {} > FLASH /* C++ Constructor tables */ + .binit : {} > FLASH /* Boot-time Initialization tables */ + .init_array : {} > FLASH /* C++ Constructor tables */ + .mspabi.exidx : {} > FLASH /* C++ Constructor tables */ + .mspabi.extab : {} > FLASH /* C++ Constructor tables */ +#ifdef __TI_COMPILER_VERSION__ + #if __TI_COMPILER_VERSION__ >= 15009000 + #ifndef __LARGE_DATA_MODEL__ + .TI.ramfunc : {} load=FLASH, run=RAM, table(BINIT) + #else + .TI.ramfunc : {} load=FLASH | FLASH2, run=RAM, table(BINIT) + #endif + #endif +#endif + + .infoA : {} > INFOA /* MSP430 INFO FLASH Memory segments */ + .infoB : {} > INFOB + .infoC : {} > INFOC + .infoD : {} > INFOD + + /* MSP430 Interrupt vectors */ + .int00 : {} > INT00 + .int01 : {} > INT01 + .int02 : {} > INT02 + .int03 : {} > INT03 + .int04 : {} > INT04 + .int05 : {} > INT05 + .int06 : {} > INT06 + .int07 : {} > INT07 + .int08 : {} > INT08 + .int09 : {} > INT09 + .int10 : {} > INT10 + .int11 : {} > INT11 + .int12 : {} > INT12 + .int13 : {} > INT13 + .int14 : {} > INT14 + .int15 : {} > INT15 + .int16 : {} > INT16 + .int17 : {} > INT17 + .int18 : {} > INT18 + .int19 : {} > INT19 + .int20 : {} > INT20 + .int21 : {} > INT21 + .int22 : {} > INT22 + .int23 : {} > INT23 + .int24 : {} > INT24 + .int25 : {} > INT25 + .int26 : {} > INT26 + .int27 : {} > INT27 + .int28 : {} > INT28 + .int29 : {} > INT29 + .int30 : {} > INT30 + .int31 : {} > INT31 + .int32 : {} > INT32 + .int33 : {} > INT33 + .int34 : {} > INT34 + .int35 : {} > INT35 + .int36 : {} > INT36 + .int37 : {} > INT37 + .int38 : {} > INT38 + .int39 : {} > INT39 + .int40 : {} > INT40 + RTC : { * ( .int41 ) } > INT41 type = VECT_INIT + PORT2 : { * ( .int42 ) } > INT42 type = VECT_INIT + USCI_B3 : { * ( .int43 ) } > INT43 type = VECT_INIT + USCI_A3 : { * ( .int44 ) } > INT44 type = VECT_INIT + USCI_B1 : { * ( .int45 ) } > INT45 type = VECT_INIT + USCI_A1 : { * ( .int46 ) } > INT46 type = VECT_INIT + PORT1 : { * ( .int47 ) } > INT47 type = VECT_INIT + TIMER1_A1 : { * ( .int48 ) } > INT48 type = VECT_INIT + TIMER1_A0 : { * ( .int49 ) } > INT49 type = VECT_INIT + DMA : { * ( .int50 ) } > INT50 type = VECT_INIT + USCI_B2 : { * ( .int51 ) } > INT51 type = VECT_INIT + USCI_A2 : { * ( .int52 ) } > INT52 type = VECT_INIT + TIMER0_A1 : { * ( .int53 ) } > INT53 type = VECT_INIT + TIMER0_A0 : { * ( .int54 ) } > INT54 type = VECT_INIT + ADC12 : { * ( .int55 ) } > INT55 type = VECT_INIT + USCI_B0 : { * ( .int56 ) } > INT56 type = VECT_INIT + USCI_A0 : { * ( .int57 ) } > INT57 type = VECT_INIT + WDT : { * ( .int58 ) } > INT58 type = VECT_INIT + TIMER0_B1 : { * ( .int59 ) } > INT59 type = VECT_INIT + TIMER0_B0 : { * ( .int60 ) } > INT60 type = VECT_INIT + UNMI : { * ( .int61 ) } > INT61 type = VECT_INIT + SYSNMI : { * ( .int62 ) } > INT62 type = VECT_INIT + .reset : {} > RESET /* MSP430 Reset vector */ +} + +/****************************************************************************/ +/* Include peripherals memory map */ +/****************************************************************************/ + +-l msp430f5438a.cmd + diff --git a/Telem_Debug/Debug_BlinkyLED/main.c b/Telem_Debug/Debug_BlinkyLED/main.c new file mode 100644 index 0000000..b97f49f --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/main.c @@ -0,0 +1,72 @@ +// +// Telemetry +// +// Modified by Erik in 2010-2011 +// +/* Modifications for 2013 by B. Bazuin + * - 2013v1 + * - reworked to operate continuously with CAN at 250 kbps + * - no USB device code included + * - no ADC code + * - table values collected only the first time captured + * - 2014V2 MODIFICATIONS + * - Reordered and eliminated some messages + * - HF rate 10 sec, LF rate 30 sec, ST rate 60 sec + * - BP_PCDONE and BP_ISH added + * - Precharge Controller Removed + */ +/* Modifications for 2016 by B. Bazuin + * -New BPS and Array Controller + * + */ + +#include "Sunseeker2021.h" + +// structures +//message_fifo decode_queue; +//char_fifo USB_FIFO, MODEM_FIFO; + +//hf_packet pckHF; +//lf_packet pckLF; +//status_packet pckST; + +unsigned volatile char forceread; + +unsigned int can_mask0, can_mask1; + +enum MODE {INIT, CANREAD, DECODE, MODEMTX, USBTX, LOWP, LOOP} ucMODE; +unsigned volatile char can_status_test, can_rcv_status_test; +unsigned long can_msg_count = 0, can_stall_cnt = 0; +unsigned long can_err_count = 0, can_read_cnt = 0; +int thrs, tmin, tsec; +char ucFLAG,usbENABLE; +char CAN1_INT_FLAG = FALSE; + + + +// General Variables + +// CAN Communication Variables +volatile unsigned char cancomm_flag = FALSE; //used for CAN transmission timing +volatile unsigned char send_can = FALSE; //used for CAN transmission timing +volatile unsigned char rcv_can = FALSE; //used for CAN transmission timing +volatile unsigned char can_full = FALSE; //used for CAN transmission status + +int main(void) { + WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer + _DINT(); //disables interrupts + + clock_init(); //Configure HF and LF clocks + delay(); + + P8DIR + + _EINT(); //enable global interrupts + + while(1) + { + P8OUT ^= BIT3; // Toggle P1.0 + P8OUT ^= BIT6; // Toggle P1.0 + delay(); + } +} diff --git a/Telem_Debug/Debug_BlinkyLED/targetConfigs/MSP430F5438A.ccxml b/Telem_Debug/Debug_BlinkyLED/targetConfigs/MSP430F5438A.ccxml new file mode 100644 index 0000000..4b3573b --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/targetConfigs/MSP430F5438A.ccxml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Telem_Debug/Debug_BlinkyLED/targetConfigs/readme.txt b/Telem_Debug/Debug_BlinkyLED/targetConfigs/readme.txt new file mode 100644 index 0000000..d783fef --- /dev/null +++ b/Telem_Debug/Debug_BlinkyLED/targetConfigs/readme.txt @@ -0,0 +1,9 @@ +The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based +on the device and connection settings specified in your project on the Properties > General page. + +Please note that in automatic target-configuration management, changes to the project's device and/or +connection settings will either modify an existing or generate a new target-configuration file. Thus, +if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively, +you may create your own target-configuration file for this project and manage it manually. You can +always switch back to automatic target-configuration management by checking the "Manage the project's +target-configuration automatically" checkbox on the project's Properties > General page. \ No newline at end of file