chaithanya rss / Mbed 2 deprecated CDMS_Integrate1_0

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE by shubham c

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers DefinitionsAndGlobals.h Source File

DefinitionsAndGlobals.h

00001 // **************DEFINITIONS*********************
00002 
00003 #define bypass_adf 1
00004 
00005 // COM_RX
00006     #define RX_TIMEOUT_LIMIT 0.5
00007     //#define COM_RX_UART_TX PTE20    // For bypassing RX1M (SET BAUD RATE 1200) #define COM_RX_UART_TX USBTX
00008     //#define COM_RX_UART_RX PTE21    // For bypassing RX1M (SET BAUD RATE 1200) #define COM_RX_UART_RX USBRX
00009     
00010     #define COM_RX_UART_TX USBTX
00011     #define COM_RX_UART_RX USBRX
00012     
00013 // COMMON SPI
00014     #define SPI_MOSI PTE1
00015     #define SPI_MISO PTE3
00016     #define SPI_CLK PTE2
00017     #define SPI_CS_ADF PTA15
00018     #define SPI_CS_SDC PIN20
00019     #define SPI_CS_RTC PIN26
00020     
00021 // COM_TX
00022     #define COM_TX_CONFIG_LIMIT 3
00023     #define COM_TX_TICKER_LIMIT 32
00024 
00025 // ADF INTERRUPT
00026     #define ADF_IRQ PTA14
00027     
00028 //I2C - Payload to CDMS (need to change while using CDMS hardware);
00029     I2C master(PIN32,PIN31);
00030     DigitalIn PL_I2C_Intr(PTC13);
00031     DigitalOut PL_I2C_GPIO(PTC1);
00032             
00033 //I2C - CDMS to BAE
00034     DigitalIn BAE_I2C_GPIO(PIN39);
00035     DigitalOut CDMS_I2C_GPIO(PIN67);
00036 
00037 // TC LIST
00038     #define TCL_STATE_INCOMPLETE 0x00
00039     #define TCL_STATE_ABORTED 0x03
00040     #define TCL_STATE_EXECUTING 0x04   
00041     #define TCL_STATE_COMPLETED 0x05
00042     #define TCL_STATE_EXCEEDED_LIMIT 0x06
00043 
00044 // LIST OF FLAGS
00045     #define UART_INT_FLAG 0x0001
00046     #define NEW_TC_RECEIVED 0x0002
00047     #define COM_SESSION_FLAG 0x0004
00048     #define COM_RX_FLAG 0x0008
00049     #define COM_MNG_TMTC_RUNNING_FLAG 0x0010
00050     #define COM_SESSION_VALIDITY 0x0020
00051     #define ALL_CRC_PASS_FLAG 0x0040
00052     #define COM_PA_HOT_FLAG 0x0080
00053     #define COM_TX_FLAG 0x0100
00054     #define COM_SESSION_TIMEOUT_FLAG 0x0200
00055     #define COM_AUTO_POWER_OFF_BAE_FLAG 0x0400
00056     #define BAE_SW_EN_FLAG 0x0800
00057     #define RF_SW_STATUS_FLAG 0x1000
00058     #define COM_INIT_STATUS_FLAG 0x2000
00059     #define COM_TX_STATUS_FLAG 0x4000
00060 
00061 //RF relay STATUS
00062     #define RF_COM_TX 0
00063     #define RF_BCN 1
00064 
00065 // COM_MNG_TMTC THREAD
00066     #define SESSION_TIME_LIMIT 1500
00067     #define COM_MNG_TMTC_SIGNAL_UART_INT 0x01
00068     #define COM_MNG_TMTC_SIGNAL_ADF_NSD 0x02
00069     #define COM_MNG_TMTC_SIGNAL_ADF_SD 0x03
00070     #define SCIENCE_SIGNAL 0x04
00071 // COM_MNG_TMTC
00072     #define COM_PA_COOLING_TIME_LIMIT 20
00073     #define COM_MAX_TC_LIMIT 200
00074     #define TM_ACK_CODE_INDEX 2
00075     #define CRC_FAIL_NACK_CODE 0x01
00076     
00077     // call sign
00078     #define PSC_CALLSIGN 0x00
00079     #define APID_CALLSIGN 0x00
00080     
00081     // max value of telecommands in a tcl
00082     #define TCL_OVERFLOW_CONSTANT 256
00083     #define TM_OVERFLOW_CONSTANT 256
00084 
00085     // starting value of packet sequence count at each pass 
00086     #define PSC_START_VALUE 1
00087     
00088     // APID list
00089     #define APID_COM 0
00090     #define APID_BAE 1
00091     #define APID_CDMS 2
00092     #define APID_SPEED 3
00093     
00094     //SERVICE
00095     #define SERVICE_OBOSC 0xB
00096     #define SERVICE_OBSRS 0xF
00097     
00098     // HIGH PRIORITY TC - priority list
00099     // not correct values here
00100     #define HPTC1 5
00101     #define HPTC2 6
00102     // Add more entries above
00103     
00104     // SIZE of tc in bytes
00105     #define TC_SHORT_SIZE 11
00106     #define TC_LONG_SIZE 135
00107     
00108     // TMID list
00109     #define TMID_ACK_L1 0xA
00110     #define TMID_ACK_L234 0xB
00111     #define TMID_TCL 0x7
00112     #define TMID_CALL_SIGN 0xE
00113 
00114 // OBOSC SERVICE SUBTYPE
00115     #define OBOSC_TCL_MAX_SHORT_SIZE 11
00116     #define OBOSC_LONG_TC_FIRST_HALF_SIZE 67
00117     #define OBOSC_LONG_TC_SECOND_HALF_SIZE 68
00118     #define OBOSC_TCL_TAG_LONG_FIRST_HALF 0x10
00119     #define OBOSC_TCL_TAG_LONG_SECOND_HALF 0x11
00120 
00121     #define OBOSC_SUB_DISABLE 0x01
00122     #define OBOSC_SUB_RETRY 0x05
00123     #define OBOSC_SUB_REP_TCLD 0x06
00124     #define OBOSC_SUB_REP_LE 0x0F
00125     #define OBOSC_SUB_RESET 0x07
00126     
00127 // PAYLOAD or SCIENCE
00128     #define PAYLOAD_BUFFER_LENGTH 6723
00129     #define PAY_SPI_MOSI PTE18
00130     #define PAY_SPI_MISO PTE19
00131     #define PAY_SPI_CLK PTE17
00132     #define PAY_SPI_CS PTE16
00133 
00134 //BEACON
00135     #define BCN_APID_SOURCE 0x41
00136     #define BCN_SERVICE 0x81
00137     
00138 //BAE
00139     #define BAE_APID_SOURCE 0x81
00140     #define BAE_SERVICE 0x81
00141     #define BAE_POWER_ON_PID 0x13
00142     #define BAE_POWER_OFF_PID 0x23
00143     #define BAE_RESET_PID 0x33
00144 
00145 //RF RELAY
00146     #define RF_RELAY_CNTRL_TX PTA7
00147     #define RF_RELAY_CNTRL_BCN PTA12 
00148 
00149     
00150 // ****************GLOBAL VARIABLES******************
00151 // DEBUG
00152 Serial gPC( USBTX, USBRX );
00153 DigitalOut gLEDR(LED_RED);
00154 DigitalOut gLEDG(LED_GREEN);
00155 
00156 // COM_RX
00157 RawSerial RX1M( COM_RX_UART_TX, COM_RX_UART_RX );
00158 COM_RX_DATA_NODE *gRX_HEAD_DATA_NODE = NULL;
00159 COM_RX_DATA_NODE *gRX_CURRENT_DATA_NODE = NULL;
00160 // uint8_t *gRX_CURRENT_PTR = NULL;
00161 uint32_t gRX_COUNT = 0;
00162 uint16_t gTOTAL_INCORRECT_SIZE_TC = 0x00;
00163 uint16_t gTOTAL_CRC_FAIL_TC = 0x00;
00164 uint16_t gTOTAL_REPEATED_TC = 0x00;
00165 
00166 // COMMON SPI
00167 SPI spi( SPI_MOSI, SPI_MISO, SPI_CLK );
00168 DigitalOut gCS_ADF(SPI_CS_ADF);
00169 DigitalOut cs_sd(SPI_CS_SDC);
00170 DigitalOut gCS_RTC(SPI_CS_RTC);
00171 Mutex SPI_mutex;
00172 
00173 //I2C
00174 Mutex BAE_I2C_mutex;
00175 
00176 //RF Relay
00177 DigitalOut RF_SW_CNTRL_BCN(RF_RELAY_CNTRL_BCN);
00178 DigitalOut RF_SW_CNTRL_TX(RF_RELAY_CNTRL_TX);
00179 
00180 //COM_RX
00181 DigitalOut COM_RX_CNTRL(PIN72);
00182 DigitalOut COM_TX_CNTRL(PIN56);
00183 
00184 // TC LIST
00185 Base_tc* gHEAD_NODE_TCL = NULL;
00186 Base_tc* gLAST_NODE_TCL = NULL;
00187 uint8_t gMASTER_STATE = TCL_STATE_INCOMPLETE;
00188 uint16_t gFLAGS = 0x0000;
00189 
00190 // COM_MNG_TMTC THREAD
00191 Thread* gCOM_MNG_TMTC_THREAD = NULL;
00192 Timeout gRX_TIMEOUT;
00193 Timeout gSESSION_TIMEOUT;
00194 
00195 // COM_MNG_TMTC
00196 
00197 
00198 
00199 // PA cooling timeout
00200 Timeout gCOM_PA_COOLING_TIMEOUT;
00201 
00202 // GS code for verification
00203 const uint8_t gGSCODE[] = {0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
00204 
00205 uint8_t gTOTAL_VALID_TC = 0x00;
00206 // USE LAST_L1_ACK FOR GENERATING REPORT
00207 uint8_t gLAST_TM[TM_LONG_SIZE];
00208 uint8_t gLAST_TM_SHORT_OR_LONG = SHORT_TM_CODE;
00209 
00210 // PAYLOAD OR SCIENCE_THREAD
00211 Thread* gSCIENCE_THREAD = NULL;
00212 dmaSPISlave gPAY_SPI(PAY_SPI_MOSI, PAY_SPI_MISO, PAY_SPI_CLK, PAY_SPI_CS);
00213 uint8_t gPAYLOAD_BUFFER[PAYLOAD_BUFFER_LENGTH];
00214 
00215 // CALL SIGN TM
00216 const uint8_t gCALL_SIGN_STRING[TM_SHORT_SIZE] = {0xE0, 0x00, 0x00, 0x00, 0x56, 0x55, 0x32, 0x4E, 0x43, 0x46, 0x00, 0xAC, 0x11};
00217 
00218 // CDMS HK
00219 uint8_t CDMS_STANDBY;
00220 uint8_t CDMS_HEALTH_DATA[128];
00221 uint8_t CDMS_RAM[59];
00222 uint16_t GPIO_STATUS;
00223 uint8_t CDMS_HK_MAIN_STATUS;    
00224 uint8_t COMRX_STATUS;
00225 uint8_t RTC_FAULTCOUNT;
00226 uint16_t SD_FAULTCOUNT;
00227 uint8_t SD_STATUS;
00228 uint8_t BAE_FAULTCOUNT;
00229 uint8_t BAE_STATUS;
00230 uint8_t PL_STATUS;
00231 uint16_t PL_FAULTCOUNT;
00232 bool BAE_HK_I2C;
00233 uint8_t RTC_STATUS;
00234 float RSSI_volatge;
00235 
00236 CDMS_HK_actual actual_data;
00237 CDMS_HK_quant quant_data;
00238 CDMS_HK_min_max min_max_data;
00239 bool firstCount=true;
00240 
00241 //GPIO PINS
00242 DigitalIn V_A_PGOOD (PIN88);
00243 DigitalIn V_B_PGOOD_1 (PIN6);
00244 DigitalIn V_B_PGOOD_2 (PIN7);
00245 DigitalIn V_C_PGOOD (PIN54);
00246 DigitalIn COMRX_OC_FAULT (PIN68);
00247 DigitalIn COMTX_OC_FAULT (PIN69);
00248 DigitalIn BAE_OC_FAULT (PIN92);
00249 DigitalIn PL_GPIO_1_STATUS (PIN71);
00250 DigitalIn PL_GPIO_2_STATUS (PIN81);
00251 DigitalIn PL_GPIO_3_STATUS (PIN80);
00252 DigitalIn PL_BEE_SW_OC_FAULT (PIN4);
00253 DigitalIn PL_EPS_LATCH_SW_OC_FAULT ();
00254 DigitalIn V_C_EN_STATUS ();
00255 DigitalIn V_D_EN_STATUS ();
00256 
00257 
00258 DigitalIn SD_OC_FAULT (PIN90);
00259 DigitalOut SD_SW_EN_DS (PIN97);
00260 DigitalOut BAE_SW_EN_DS (PIN47);
00261 DigitalOut PL_SW_EN_DS (PIN73);
00262 
00263 //SD HK
00264 uint32_t FSC_CURRENT[6];
00265 uint32_t FSC_LAST[6];
00266 uint8_t SD_RD_ERROR;
00267 
00268 //Time's
00269 uint32_t TIME_LATEST_RTC;
00270 uint32_t TIME_LATEST_I2C_BAE;
00271 uint32_t TIME_LATEST_I2C_SPEED;
00272 uint32_t TIME_LATEST_SD_WR;
00273 uint32_t TIME_LATEST_SD_RD;
00274 uint32_t TIME_LATEST_SPI_SPEED;
00275 
00276 //Counter's
00277 uint16_t CDMS_I2C_ERR_SPEED_COUNTER;
00278 uint16_t CDMS_I2C_ERR_BAE_COUNTER;
00279 uint16_t CDMS_HK_MAIN_COUNTER;
00280 uint16_t COMRX_RESET_COUNTER;
00281 uint16_t PL_MAIN_COUNTER;
00282 uint16_t PL_RCV_SC_DATA_COUNTER;
00283 
00284 //CDMS RAM parameters
00285 uint8_t PL_INIT_STATUS;
00286 uint8_t PL_MAIN_STATUS;
00287 uint8_t PL_LOW_POWER;
00288 uint8_t PL_STATE;
00289 uint8_t PL_RCV_SC_DATA_STATUS;
00290 uint8_t COM_SESSION;
00291 uint8_t COM_RX;
00292 uint8_t RF_SW_STATUS;
00293 uint8_t COM_TX;
00294 uint8_t COM_TX_STATUS;
00295 uint8_t COM_MNG_TMTC;
00296 uint8_t CDMS_STANDBY_HK;
00297 uint8_t CDMS_STANDBY_PL;
00298 uint8_t CDMS_INIT_STATUS;
00299 uint8_t CDMS_HK_STATUS;
00300 uint8_t CDMS_RTC_BL;