Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of CDMS_CODE_samp_23SEP_DMA_flag by
Revision 303:b49b486a7107, committed 2016-09-05
- Comitter:
- chaithanyarss
- Date:
- Mon Sep 05 11:25:33 2016 +0000
- Parent:
- 301:701ac67649b7
- Child:
- 304:7cc4fe191a54
- Commit message:
- Merged code
Changed in this revision
--- a/CDMS_HK.h Sun Sep 04 11:12:00 2016 +0000
+++ b/CDMS_HK.h Mon Sep 05 11:25:33 2016 +0000
@@ -20,8 +20,14 @@
DigitalOut SelectLinec3 (PIN79); // MSB of Select Lines
DigitalOut SelectLinec2 (PIN78);
+DigitalOut SelectLinec1 (PIN76);
+DigitalOut SelectLinec0 (PIN77); // LSB of Select Lines
+
+/*
+Before SBC. To be restored in FM model
DigitalOut SelectLinec1 (PIN77);
DigitalOut SelectLinec0 (PIN76); // LSB of Select Lines
+*/
Convolution CDMS_HEALTH;
Convolution BAE_HEALTH;
@@ -57,16 +63,16 @@
FCTN_CDMS_PL_MAIN((void const *)NULL);
hk_count = 2;
}
- gPC.printf("\n\nEntering HK thread\n");
+ gPC.printf("\n\rEntering HK thread\n");
if(EN_CDMS_HK == 0x00)
continue;
CDMS_HK_MAIN_STATUS = 0x01;
CDMS_HK_MAIN_COUNTER++;
- FCTN_CDMS_HK();//collects temperatures
+ FCTN_CDMS_HK(); //collects temperatures
RSSI_volatge = COMRX_RSSI_volatge.read() * 3.3;//to be checked
- gPC.printf("\n%f\n",RSSI_volatge);
+ gPC.printf("\n\rRSSI voltage = %f",RSSI_volatge);
VERIFY_COMRX();
VERIFY_RTC();
HANDLE_HW_FAULTS();
@@ -117,10 +123,12 @@
CDMS_HK_FRAME[1] = FSC_CURRENT[4]+1;
CDMS_HK_FRAME[2] = (FSC_CURRENT[4]+1) >> 8;
CDMS_HK_FRAME[3] = (FSC_CURRENT[4]+1) >> 16;
-
- for(int i = 0; i<128; i++) /*Adding actual CDMS Health data to TM frame*/
- CDMS_HK_FRAME[4+i] = CDMS_HEALTH_DATA[i];
-
+ gPC.printf("\n");
+ for(int i = 0; i<128; i++){ /*Adding actual CDMS Health data to TM frame*/
+ CDMS_HK_FRAME[i+4] = CDMS_HEALTH_DATA[i];
+ gPC.printf("%02x",CDMS_HEALTH_DATA[i]);
+ }
+ gPC.printf("\n");
uint16_t crc = crc16_gen(CDMS_HK_FRAME,132); /*Adding CRC to TM frame*/
CDMS_HK_FRAME[133] = crc;
CDMS_HK_FRAME[132] = crc >> 8;
@@ -249,7 +257,7 @@
void minMaxHkData()
{
if(firstCount==true) {
- for (int i = 0; i < 16; ++i) {
+ for (int i = 4; i < 16; ++i) {
min_max_data.temp_min[i] = quant_data.temp_quant[i];
min_max_data.temp_max[i] = quant_data.temp_quant[i];
}
@@ -257,7 +265,7 @@
min_max_data.CDMS_temp_min=quant_data.CDMS_temp_quant;
min_max_data.CDMS_temp_max=quant_data.CDMS_temp_quant;
} else {
- for (int i = 0; i < 16; ++i) {
+ for (int i = 4; i < 16; ++i) {
min_max_data.temp_min[i] = saveMin(min_max_data.temp_min[i],quant_data.temp_quant[i]);
min_max_data.temp_max[i] = saveMax(min_max_data.temp_max[i],quant_data.temp_quant[i]);
}
@@ -278,7 +286,7 @@
SelectLinec1=0;
SelectLinec2=0;
SelectLinec3=0;
-
+ gPC.printf("\r%d %d %d %d\n",SelectLinec3.read(),SelectLinec2.read(),SelectLinec1.read(),SelectLinec0.read());
for(Iteration=0; Iteration<16; Iteration++) {
actual_data.temp_actual[Iteration]=TempInput.read();
@@ -290,35 +298,38 @@
SelectLinec2=!(SelectLinec2);
if(Iteration%8==7)
SelectLinec3=!(SelectLinec3);
+ gPC.printf("\r%d %d %d %d\n",SelectLinec3.read(),SelectLinec2.read(),SelectLinec1.read(),SelectLinec0.read());
}
actual_data.CDMS_temp_actual=(-90.7*3.3*CDMS_temp_sensor.read())+190.1543;
-
+
+ gPC.printf("\rRaw Temp = %f\n",actual_data.temp_actual[15]*3.3);
+
for(Iteration=0; Iteration<16; Iteration++) {
- if(Iteration<14) {
- actual_data.temp_actual[Iteration]=actual_data.temp_actual[Iteration]*3.3;
- resistance=24000*actual_data.temp_actual[Iteration]/(3.3-actual_data.temp_actual[Iteration]);
+ if(Iteration<4)
+ actual_data.temp_actual[Iteration]=actual_data.temp_actual[Iteration]*3.3*2;
- if(actual_data.temp_actual[Iteration]>1.47) {
+ else if(Iteration<14){
+ resistance=10000*actual_data.temp_actual[Iteration]*3.3/(3.3-actual_data.temp_actual[Iteration]*3.3);
+
+ if(actual_data.temp_actual[Iteration]*3.3<1.47) //Document says 1.378 .Pls Check
actual_data.temp_actual[Iteration]=3694/log(24.032242*resistance);
- } else {
-
+ else
actual_data.temp_actual[Iteration]=3365.4/log(7.60573*resistance);
- }
- } else
+ }
+ else
actual_data.temp_actual[Iteration]=(-90.7*3.3*actual_data.temp_actual[Iteration])+190.1543;
}
-
for(Iteration=0; Iteration<16; Iteration++) {
- if(Iteration<14) {
-
+ if(Iteration<4)
+ quant_data.temp_quant[Iteration]=actual_data.temp_actual[Iteration] * 10;
+ else if(Iteration<14)
quant_data.temp_quant[Iteration]=quantiz(tstart_thermistor,tstep_thermistor,actual_data.temp_actual[Iteration]);
- } else
+ else
quant_data.temp_quant[Iteration]=quantiz(tstart,tstep,actual_data.temp_actual[Iteration]);
}
-
quant_data.CDMS_temp_quant=quantiz(tstart,tstep,actual_data.CDMS_temp_actual);
minMaxHkData();
@@ -327,34 +338,34 @@
void FUNC_CDMS_GPIO_STATUS() //Polls the status of Input GPIO PINS
{
//V_A_PGOOD //TRZ EN
- GPIO_STATUS=(V_A_PGOOD)?(GPIO_STATUS)||((uint16_t)(0x1<<15)):(GPIO_STATUS)&(~((uint16_t)(0x1<<15)));
+ GPIO_STATUS=(V_A_PGOOD)?(GPIO_STATUS)|((uint16_t)(0x1<<15)):(GPIO_STATUS)&(~((uint16_t)(0x1<<15)));
//V_B_PGOOD_1 //3V3BPGOOD //$
- GPIO_STATUS=(V_B_PGOOD_1)?(GPIO_STATUS)||((uint16_t)(0x1<<14)):(GPIO_STATUS)&(~((uint16_t)(0x1<<14)));
+ GPIO_STATUS=(V_B_PGOOD_1)?(GPIO_STATUS)|((uint16_t)(0x1<<14)):(GPIO_STATUS)&(~((uint16_t)(0x1<<14)));
//V_B_PGOOD_2 //3V3BEN //$
- GPIO_STATUS=(V_B_PGOOD_2)?(GPIO_STATUS)||((uint16_t)(0x1<<13)):(GPIO_STATUS)&(~((uint16_t)(0x1<<13)));
+ GPIO_STATUS=(V_B_PGOOD_2)?(GPIO_STATUS)|((uint16_t)(0x1<<13)):(GPIO_STATUS)&(~((uint16_t)(0x1<<13)));
//V_C_PGOOD //3V3CPGOOD //$
- GPIO_STATUS=(V_C_PGOOD)?(GPIO_STATUS)||((uint16_t)(0x1<<12)):(GPIO_STATUS)&(~((uint16_t)(0x1<<12)));
+ GPIO_STATUS=(V_C_PGOOD)?(GPIO_STATUS)|((uint16_t)(0x1<<12)):(GPIO_STATUS)&(~((uint16_t)(0x1<<12)));
//COMRX_OC_FAULT //$
- GPIO_STATUS=(COMRX_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<11)):(GPIO_STATUS)&(~((uint16_t)(0x1<<11)));
+ GPIO_STATUS=(COMRX_OC_FAULT)?(GPIO_STATUS)|((uint16_t)(0x1<<11)):(GPIO_STATUS)&(~((uint16_t)(0x1<<11)));
// COMTX_OC_FAULT //$
- GPIO_STATUS=(COM_TX_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<10)):(GPIO_STATUS)&(~((uint16_t)(0x1<<10)));
+ GPIO_STATUS=(COM_TX_OC_FAULT)?(GPIO_STATUS)|((uint16_t)(0x1<<10)):(GPIO_STATUS)&(~((uint16_t)(0x1<<10)));
//BAE_OC_FAULT //$
- GPIO_STATUS=(BAE_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<9)):(GPIO_STATUS)&(~((uint16_t)(0x1<<9)));
+ GPIO_STATUS=(BAE_OC_FAULT)?(GPIO_STATUS)|((uint16_t)(0x1<<9)):(GPIO_STATUS)&(~((uint16_t)(0x1<<9)));
//PL_GPIO_1_STATUS //$
- GPIO_STATUS=(PL_GPIO_1_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<8)):(GPIO_STATUS)&(~((uint16_t)(0x1<<8)));
+ GPIO_STATUS=(PL_GPIO_1_STATUS)?(GPIO_STATUS)|((uint16_t)(0x1<<8)):(GPIO_STATUS)&(~((uint16_t)(0x1<<8)));
//PL_GPIO_2_STATUS //$
- GPIO_STATUS=(PL_GPIO_2_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<7)):(GPIO_STATUS)&(~((uint16_t)(0x1<<7)));
+ GPIO_STATUS=(PL_GPIO_2_STATUS)?(GPIO_STATUS)|((uint16_t)(0x1<<7)):(GPIO_STATUS)&(~((uint16_t)(0x1<<7)));
//PL_GPIO_3_STATUS //$
- GPIO_STATUS=(PL_GPIO_3_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<6)):(GPIO_STATUS)&(~((uint16_t)(0x1<<6)));
+ GPIO_STATUS=(PL_GPIO_3_STATUS)?(GPIO_STATUS)|((uint16_t)(0x1<<6)):(GPIO_STATUS)&(~((uint16_t)(0x1<<6)));
//PL_BEE_SW_OC_FAULT //to be verified
- GPIO_STATUS=(PL_BEE_SW_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<5)):(GPIO_STATUS)&(~((uint16_t)(0x1<<5)));
+ GPIO_STATUS=(PL_BEE_SW_OC_FAULT)?(GPIO_STATUS)|((uint16_t)(0x1<<5)):(GPIO_STATUS)&(~((uint16_t)(0x1<<5)));
//PL_EPS_LATCH_SW_OC_FAULT // to be verified
- GPIO_STATUS=(PL_EPS_LATCH_SW_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<4)):(GPIO_STATUS)&(~((uint16_t)(0x1<<4)));
+ GPIO_STATUS=(PL_EPS_LATCH_SW_OC_FAULT)?(GPIO_STATUS)|((uint16_t)(0x1<<4)):(GPIO_STATUS)&(~((uint16_t)(0x1<<4)));
//EPS_V_C_EN_STATUS
- GPIO_STATUS=(COM_RX_CNTRL)?(GPIO_STATUS)||((uint16_t)(0x1<<3)):(GPIO_STATUS)&(~((uint16_t)(0x1<<3)));
+ GPIO_STATUS=(COM_RX_CNTRL)?(GPIO_STATUS)|((uint16_t)(0x1<<3)):(GPIO_STATUS)&(~((uint16_t)(0x1<<3)));
//EPS_V_D_EN_STATUS
- GPIO_STATUS=(COM_TX_CNTRL)?(GPIO_STATUS)||((uint16_t)(0x1<<2)):(GPIO_STATUS)&(~((uint16_t)(0x1<<2)));
-
+ GPIO_STATUS=(COM_TX_CNTRL)?(GPIO_STATUS)|((uint16_t)(0x1<<2)):(GPIO_STATUS)&(~((uint16_t)(0x1<<2)));
+ gPC.printf("%04x\n",GPIO_STATUS);
}
void VERIFY_COMRX()
@@ -500,7 +511,10 @@
void COLLECT_CDMS_RAM()
{
- CDMS_RAM[0] = ((PL_INIT_STATUS<<7)&0x80)|((PL_MAIN_status<<6)&0x40)|((PL_LOW_POWER<<5)&0x20)|((PL_STATE<<3)&0x18)|(PL_STATUS&0x07);
+ CDMS_RAM[0] = ((PL_INIT_STATUS<<7)&0x80)|((PL_MAIN_status<<6)&0x40)|((PL_LOW_power<<5)&0x20)|((PL_STATE<<3)&0x18)|(PL_STATUS&0x07);
+ gPC.printf("\n\rPL_STATUS : %d",PL_STATUS);
+ gPC.printf("\n\rPL_STATE : %d",PL_STATE);
+ gPC.printf("\n\rpl bits = %02x\n",CDMS_RAM[0]);
CDMS_RAM[1] = ((PL_RCV_SC_DATA_STATUS<<7)&0x80)|((COM_SESSION<<6)&0x40)|((COM_RX<<5)&0x20)|((RF_SW_STATUS<<4)&0x10)|((COM_TX<<3)&0x08)|((COM_TX_STATUS<<2)&0x04)|((COM_MNG_TMTC<<1)&0x02)|(EN_CDMS_HK&0x01);
CDMS_RAM[2] = ((EN_PL<<7)&0x80)|((EN_RCV_SC<<6)&0x40)|((CDMS_INIT_STATUS<<5)&0x20)|((CDMS_HK_MAIN_STATUS<<4)&0x10)|((CDMS_HK_STATUS<<2)&0x0C)|((COM_RX_STATUS<<1)&0x02)|(CDMS_RTC_BL&0x01);
CDMS_RAM[3] = CDMS_I2C_ERR_SPEED_COUNTER >> 8;
@@ -520,37 +534,36 @@
CDMS_RAM[17] = SD_LIB_WRITES >> 8;
CDMS_RAM[18] = SD_LIB_WRITES;
for(int i = 0; i<4; i++)
- CDMS_RAM[19+i] = TIME_LATEST_RTC >> ((3-i)*8);
+ CDMS_RAM[19+i] = TIME_LATEST_RTC >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[23+i] = TIME_LATEST_I2C_BAE >> ((3-i)*8);
+ CDMS_RAM[23+i] = TIME_LATEST_I2C_BAE >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[27+i] = TIME_LATEST_I2C_SPEED >> ((3-i)*8);
+ CDMS_RAM[27+i] = TIME_LATEST_I2C_SPEED >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[31+i] = TIME_LATEST_SD_WR >> ((3-i)*8);
+ CDMS_RAM[31+i] = TIME_LATEST_SD_WR >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[35+i] = TIME_LATEST_SD_RD >> ((3-i)*8);
+ CDMS_RAM[35+i] = TIME_LATEST_SD_RD >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[39+i] = TIME_LATEST_SPI_SPEED >> ((3-i)*8);
+ CDMS_RAM[39+i] = TIME_LATEST_SPI_SPEED >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[43+i] = FSC_CURRENT[1] >> ((3-i)*8);
+ CDMS_RAM[43+i] = FSC_CURRENT[1] >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[47+i] = FSC_LAST[1] >> ((3-i)*8);
+ CDMS_RAM[47+i] = FSC_LAST[1] >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[51+i] = FSC_CURRENT[2] >> ((3-i)*8);
+ CDMS_RAM[51+i] = FSC_CURRENT[2] >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[55+i] = FSC_LAST[2] >> ((3-i)*8);
+ CDMS_RAM[55+i] = FSC_LAST[2] >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[59+i] = FSC_CURRENT[3] >> ((3-i)*8);
+ CDMS_RAM[59+i] = FSC_CURRENT[3] >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[63+i] = FSC_LAST[3] >> ((3-i)*8);
+ CDMS_RAM[63+i] = FSC_LAST[3] >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[67+i] = FSC_CURRENT[4] >> ((3-i)*8);
+ CDMS_RAM[67+i] = FSC_CURRENT[4] >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[71+i] = FSC_LAST[4] >> ((3-i)*8);
+ CDMS_RAM[71+i] = FSC_LAST[4] >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[75+i] = FSC_CURRENT[5] >> ((3-i)*8);
+ CDMS_RAM[75+i] = FSC_CURRENT[5] >> (3-i)*8;
for(int i = 0; i<4; i++)
- CDMS_RAM[79+i] = FSC_LAST[5] >> ((3-i)*8);
+ CDMS_RAM[79+i] = FSC_LAST[5] >> (3-i)*8;
CDMS_RAM[83] = 0x00;
- gPC.printf("%d %d %d %d %d\n",FSC_CURRENT[1],FSC_CURRENT[2],FSC_CURRENT[3],FSC_CURRENT[4],FSC_CURRENT[5]);
}
\ No newline at end of file
--- a/CDMS_PL.h Sun Sep 04 11:12:00 2016 +0000
+++ b/CDMS_PL.h Mon Sep 05 11:25:33 2016 +0000
@@ -199,6 +199,7 @@
gPC.printf("\n\rACK_CODE = 0x%02X",temp);
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_SUCCESS_I2C;
+ PL_STATUS = 0x04;
pl_block[pl_next_index-1] &= (~UNEXECUTED); //changing exec_status
pl_block[pl_next_index-1] |= EXECUTED;
}
@@ -208,6 +209,7 @@
//gPC.printf("\n\rACK_CODE = 0x%02X",temp);
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_ERR_I2C;
+ PL_STATUS = 0x05;
pl_block[pl_next_index-1] &= (~UNEXECUTED); //changing exec_status
pl_block[pl_next_index-1] |= RETRY;
}
@@ -217,6 +219,7 @@
gPC.printf("\n\rShort_TM CRC failed");
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_ERR_I2C;
+ PL_STATUS = 0x05;
pl_block[pl_next_index-1] &= (~UNEXECUTED); //changing exec_status
pl_block[pl_next_index-1] |= RETRY;
}
@@ -241,6 +244,7 @@
gPC.printf("\n\rACK_CODE = 0x%02X",temp);
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_SUCCESS_I2C;
+ PL_STATUS = 0x04;
pl_block[pl_next_index-1] &= (~UNEXECUTED); //changing exec_status
pl_block[pl_next_index-1] |= EXECUTED;
}
@@ -249,6 +253,7 @@
gPC.printf("\n\rACK_CODE failure (0x%02X)",temp);
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_ERR_I2C;
+ PL_STATUS = 0x05;
pl_block[pl_next_index-1] &= (~UNEXECUTED); //changing exec_status
pl_block[pl_next_index-1] |= RETRY;
}
@@ -257,7 +262,8 @@
{
gPC.printf("\n\rLong_TM CRC failed");
pl_main_flag = pl_main_flag & (~PL_DISABLED);
- pl_main_flag |= PL_ERR_I2C;
+ pl_main_flag |= PL_ERR_I2C;
+ PL_STATUS = 0x05;
pl_block[pl_next_index-1] &= (~UNEXECUTED); //changing exec_status
pl_block[pl_next_index-1] |= RETRY;
}
@@ -303,8 +309,10 @@
return;
uint8_t temp[3];
pl_main_flag|=PL_MAIN_STATUS; //Setting PL_MAIN_STATUS
+ PL_MAIN_status = 1;
PL_MAIN_COUNTER++;
pl_main_flag&=~(PL_LOW_POWER); //Clearing PL_LOW_POWER
+ PL_LOW_power = 0;
temp[0] = (pl_main_flag&STATE_SCIENCE)>>2;
temp[1] = (pl_main_flag&PL_DISABLED)>>4;
temp[2] = (PL_PREV_STATE & STATE_SCIENCE)>>2;
@@ -315,7 +323,9 @@
gPC.printf("\n\rDevice Disabled or OC Fault");
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_DISABLED; //setting PL_STATUS as PL_DISABLED
+ PL_STATUS = 0x07;
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing pl_main status
+ PL_MAIN_status = 0;
print_exit(temp);
return;
}
@@ -355,6 +365,7 @@
{
pl_main_flag = pl_main_flag & (~STATE_SCIENCE);
pl_main_flag |= STATE_HIBERNATE;
+ PL_STATE = 0x02;
}
else
{
@@ -386,27 +397,32 @@
{
pl_main_flag = pl_main_flag & (~STATE_SCIENCE);
pl_main_flag |= STATE_OFF;
+ PL_STATE = 0x00;
}
if((pl_block[pl_next_index-1] & 0x0000000C)==4)
{
pl_main_flag = pl_main_flag & (~STATE_SCIENCE);
pl_main_flag |= STATE_STANDBY;
+ PL_STATE = 0x01;
}
if((pl_block[pl_next_index-1] & 0x0000000C)==8)
{
pl_main_flag = pl_main_flag & (~STATE_SCIENCE);
pl_main_flag |= STATE_HIBERNATE;
+ PL_STATE = 0x02;
}
if((pl_block[pl_next_index-1] & 0x0000000C)==12)
{
pl_main_flag = pl_main_flag & (~STATE_SCIENCE);
pl_main_flag |= STATE_SCIENCE;
+ PL_STATE = 0x03;
}
}
else if((pl_block[pl_next_index-1] & UNEXECUTED)==1)
{
gPC.printf("\n\rElapsed block is executed");
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing pl_main status
+ PL_MAIN_status = 0;
print_exit(temp);
return;
}
@@ -414,6 +430,7 @@
{
gPC.printf("\n\rEmpty Schedule Block");
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing pl_main status
+ PL_MAIN_status = 0;
print_exit(temp);
return;
}
@@ -432,10 +449,12 @@
PL_STATUS=0;
}
pl_main_flag = pl_main_flag & (~PL_DISABLED);
- pl_main_flag |= PL_OFF;
+ pl_main_flag |= PL_OFF;
+ PL_STATUS = 0x00;
pl_block[pl_next_index-1] &= (~UNEXECUTED); //changing exec_status
pl_block[pl_next_index-1] |= EXECUTED;
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing PL_MAIN_STATUS
+ PL_MAIN_status = 0;
print_processed_block(pl_next_index-1);
print_exit(temp);
return;
@@ -456,8 +475,10 @@
{
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_STANDBY;
+ PL_STATUS = 0x01;
}
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing PL_MAIN_STATUS
+ PL_MAIN_status = 0;
print_processed_block(pl_next_index-1);
print_exit(temp);
return;
@@ -480,12 +501,14 @@
if((pl_main_flag & PL_DISABLED)==PL_SUCCESS_I2C)
{
pl_main_flag = pl_main_flag & (~PL_DISABLED);
- pl_main_flag |= PL_HIBERNATE;
+ pl_main_flag |= PL_HIBERNATE;
+ PL_STATUS = 0x02;
}
}
else
{
pl_main_flag |= PL_LOW_POWER;
+ PL_LOW_power = 1;
if(PL_STATUS==0)
{
gPC.printf("\n\rPowering on PL_BEE");
@@ -499,14 +522,17 @@
{
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_STANDBY;
+ PL_STATUS = 0x01;
}
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing PL_MAIN_STATUS
+ PL_MAIN_status = 0;
print_processed_block(pl_next_index-1);
print_exit(temp);
return;
//////DELETE THE TM AND TC LATER
}
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing PL_MAIN_STATUS
+ PL_MAIN_status = 0;
print_processed_block(pl_next_index-1);
print_exit(temp);
return;
@@ -531,8 +557,10 @@
{
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_SCIENCE;
+ PL_STATUS = 0x03;
}
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing PL_MAIN_STATUS
+ PL_MAIN_status = 0;
print_processed_block(pl_next_index-1);
print_exit(temp);
return;
@@ -541,6 +569,7 @@
{
gPC.printf("\n\rPower level = 2,3 or NA");
pl_main_flag |= PL_LOW_POWER;
+ PL_LOW_power = 1;
if(POWER_LEVEL==2 || POWER_LEVEL==3 || POWER_LEVEL==0)
{
if(PL_STATUS==0)
@@ -556,11 +585,13 @@
{
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_HIBERNATE;
+ PL_STATUS = 0x02;
}
}
else
{
pl_main_flag |= PL_LOW_POWER;
+ PL_LOW_power = 1;
if(PL_STATUS==0)
{
gPC.printf("\n\rPowering on PL_BEE");
@@ -574,14 +605,17 @@
{
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_STANDBY;
+ PL_STATUS = 0x01;
}
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing PL_MAIN_STATUS
+ PL_MAIN_status = 0;
print_processed_block(pl_next_index-1);
print_exit(temp);
return;
//////DELETE THE TM AND TC LATER
}
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing PL_MAIN_STATUS
+ PL_MAIN_status = 0;
print_processed_block(pl_next_index-1);
print_exit(temp);
return;
@@ -593,9 +627,11 @@
gPC.printf("\n\rInvalid PL_STATE in block at index = %d",pl_next_index-1);
pl_main_flag = pl_main_flag & (~PL_DISABLED);
pl_main_flag |= PL_INVALID_STATE;
+ PL_STATUS = 0x06;
pl_block[pl_next_index-1] &= (~UNEXECUTED); //changing exec_status
pl_block[pl_next_index-1] |= EXECUTED;
pl_main_flag = pl_main_flag & (~PL_MAIN_STATUS); //Clearing PL_MAIN_STATUS
+ PL_MAIN_status = 0;
print_processed_block(pl_next_index-1);
print_exit(temp);
return;
--- a/DefinitionsAndGlobals.h Sun Sep 04 11:12:00 2016 +0000
+++ b/DefinitionsAndGlobals.h Mon Sep 05 11:25:33 2016 +0000
@@ -1,7 +1,7 @@
///639+................................++.300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002025555.
// **************DEFINITIONS*********************
-#define dma 0
+#define dma 1
// COM_RX
#define RX_TIMEOUT_LIMIT 0.5
@@ -253,7 +253,7 @@
// CDMS HK
uint8_t CDMS_STANDBY;
uint8_t CDMS_HEALTH_DATA[128];
-uint8_t CDMS_RAM[59];
+uint8_t CDMS_RAM[59] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
uint16_t GPIO_STATUS;
uint8_t CDMS_HK_MAIN_STATUS;
uint8_t COMRX_STATUS;
@@ -332,7 +332,7 @@
//CDMS RAM parameters
uint8_t PL_INIT_STATUS = 0;
uint8_t PL_MAIN_status;
-uint8_t PL_LOW_POWER;
+uint8_t PL_LOW_power;
uint8_t PL_STATE;
uint8_t PL_RCV_SC_DATA_STATUS = 0;
uint8_t COM_SESSION;
--- a/FMS_all.h Sun Sep 04 11:12:00 2016 +0000
+++ b/FMS_all.h Mon Sep 05 11:25:33 2016 +0000
@@ -339,5 +339,8 @@
void FCTN_CDMS_RD_L_RAM(Base_tm *tm_pointer)
{
for(int i=0;i<128;i++)
- tm_pointer->TM_string[i+4] = CDMS_HEALTH_DATA[i];
+ {
+ //tm_pointer->TM_string[i] = 0;
+ tm_pointer->TM_string[i+4] = CDMS_HEALTH_DATA[i];
+ }
}
\ No newline at end of file
--- a/Structures.h Sun Sep 04 11:12:00 2016 +0000 +++ b/Structures.h Mon Sep 05 11:25:33 2016 +0000 @@ -144,8 +144,8 @@ // CDMS HK -#define tstart -40 -#define tstep 1 //to be finalized by thermal team +#define tstart -50 +#define tstep 1 //to be finalized by thermal team #define tstart_thermistor -40 #define tstep_thermistor 1
--- a/ThreadsAndFunctions.h Sun Sep 04 11:12:00 2016 +0000
+++ b/ThreadsAndFunctions.h Mon Sep 05 11:25:33 2016 +0000
@@ -14,7 +14,7 @@
gPAY_SPI->format(8,0);
gPC.printf("\n\rTest...........................");
gPAY_SPI->bulkRead_init(gPAYLOAD_BUFFER, PAYLOAD_BUFFER_LENGTH, &payload_isr_fun);
- //AY_SPI->bulkRead_start();
+ gPAY_SPI->bulkRead_start();
//AY_SPI->bulkRead_pause();
//AY_SPI->bulkRead_resume(&payload_isr_fun);
while(true){
@@ -31,6 +31,7 @@
wait(2);/*timeout to be decided*/
if(dma)
{
+ PL_RCV_SC_DATA_COUNTER++;
gPAY_SPI->bulkRead_start();
//gPAY_SPI->bulkRead_pause();
//gPAY_SPI->bulkRead_resume(&payload_isr_fun);
--- a/cdms_sd.h Sun Sep 04 11:12:00 2016 +0000
+++ b/cdms_sd.h Mon Sep 05 11:25:33 2016 +0000
@@ -30,7 +30,7 @@
uint32_t SD_HK_ARCH_LAST= 5000;
uint32_t LOG_FIRST =5001;
uint32_t LOG_LAST=6000;
-uint32_t SD_MNG_SECT=7000;
+uint32_t SD_MNG_SECT=8000;
extern uint8_t SD_INIT_FLAGS;
@@ -647,6 +647,7 @@
{
// set write address for single block (CMD24)
if (cmd(24, block_number * cdv) != 0) {
+ CDMS_WR_SD_FAULT_COUNTER++;
return 1;
}
@@ -679,6 +680,7 @@
if ((spi.write(0xFF) & 0x1F) != 0x05) {
cs_sd = 1;
spi.write(0xFF);
+ CDMS_WR_SD_FAULT_COUNTER++;
return 1;
}
--- a/i2c.h Sun Sep 04 11:12:00 2016 +0000
+++ b/i2c.h Mon Sep 05 11:25:33 2016 +0000
@@ -55,6 +55,7 @@
}
else if (read_ack == 1)
{
+ CDMS_I2C_ERR_SPEED_COUNTER++;
I2C_busreset();
}
PL_I2C_GPIO = 0;
@@ -89,6 +90,7 @@
if (write_ack == 1)
{
I2C_busreset();
+ CDMS_I2C_ERR_SPEED_COUNTER++;
}
i2c_count = 0;
return write_ack;
@@ -121,6 +123,8 @@
else if (read_ack == 1)
{
I2C_busreset();
+ CDMS_I2C_ERR_BAE_COUNTER++;
+
}
CDMS_I2C_GPIO = 0;
i2c_count = 0;
@@ -155,6 +159,7 @@
if (write_ack == 1)
{
I2C_busreset();
+ CDMS_I2C_ERR_BAE_COUNTER++;
}
CDMS_I2C_GPIO = 0;
i2c_count = 0;
--- a/main.cpp Sun Sep 04 11:12:00 2016 +0000
+++ b/main.cpp Mon Sep 05 11:25:33 2016 +0000
@@ -114,8 +114,8 @@
sys_reset_cdms_timer = new RtosTimer(sys_pwr_reset, osTimerPeriodic, (void * )NULL);
sys_reset_cdms_timer->start(cdms_reset_timeout);
- PL_wo_dma = new RtosTimer(payload_isr_fun_dma, osTimerPeriodic,(void * )NULL);
- PL_wo_dma->start(6000);
+ //PL_wo_dma = new RtosTimer(payload_isr_fun_dma, osTimerPeriodic,(void * )NULL);
+ //PL_wo_dma->start(6000);
//gSCIENCE_THREAD->signal_set(SCIENCE_SIGNAL);
/*Timeout flipper;
