
publishing to check changes in cdms code
Dependencies: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of CDMS_CODE_samp_23SEP_DMA_flag by
Revision 306:7c3872365d58, committed 2016-10-09
- Comitter:
- spacelab
- Date:
- Sun Oct 09 07:08:34 2016 +0000
- Parent:
- 305:beb148fe97dc
- Child:
- 307:6ed5535ac465
- Commit message:
- 23_sep code from samp
Changed in this revision
--- a/CDMS_HK.h Sat Sep 10 07:06:59 2016 +0000 +++ b/CDMS_HK.h Sun Oct 09 07:08:34 2016 +0000 @@ -63,8 +63,8 @@ FCTN_CDMS_PL_MAIN((void const *)NULL); hk_count = 2; } - gPC.printf("\n\rEntering HK thread\n"); - + // gPC.printf("\n\rEntering HK thread\n"); + gPC.printf("\n\r%d\n",CDMS_WR_SD_FAULT_COUNTER); if(EN_CDMS_HK == 0x00) continue; CDMS_HK_MAIN_STATUS = 0x01; @@ -72,7 +72,7 @@ FCTN_CDMS_HK(); //collects temperatures RSSI_volatge = COMRX_RSSI_volatge.read() * 3.3;//to be checked - gPC.printf("\n\rRSSI voltage = %f",RSSI_volatge); + //gPC.printf("\n\rRSSI voltage = %f",RSSI_volatge); VERIFY_COMRX(); VERIFY_RTC(); HANDLE_HW_FAULTS(); @@ -117,18 +117,18 @@ uint64_t time = FCTN_CDMS_RD_RTC() >> 7; //Reading Time from RTC for(int i = 124; i<128; i++) CDMS_HEALTH_DATA[i] = time >> i*8; - gPC.printf("0x%d\n",time); - //FCTN_SD_MNGR(); //Adding FSC & TMID to TM frame + //gPC.printf("0x%d\n",time); + FCTN_SD_MNGR(); //Adding FSC & TMID to TM frame CDMS_HK_FRAME[0] = 0x20; 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; - gPC.printf("\n"); + // 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("%02x",CDMS_HEALTH_DATA[i]); } - gPC.printf("\n"); + // 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; @@ -136,27 +136,29 @@ exor(CDMS_HK_FRAME); CDMS_HEALTH.convolutionEncode(CDMS_HK_FRAME , convoluted_CDMS_HK); CDMS_HEALTH.convolutionEncode(CDMS_HK_FRAME + 67, convoluted_CDMS_HK + 135); + //gPC.printf("\n\r reached here"); interleave(convoluted_CDMS_HK , interleave_CDMS_HK); interleave(convoluted_CDMS_HK +135, interleave_CDMS_HK + 144); + //gPC.printf("\n\r reached here"); for(int i=0; i<288; i++) CDMS_HEALTH_FINAL[i] = interleave_CDMS_HK[i]; - + //gPC.printf("\n\r reached here"); sd_stat = SD_WRITE(CDMS_HEALTH_FINAL,FSC_CURRENT[4]+1,4); if(sd_stat) { - gPC.puts("sd write failure"); + gPC.puts("sd write failure $*&^@!~!"); // break; } - gPC.printf("Completed CDMS HK\t"); + // gPC.printf("Completed CDMS HK\t"); /*---------------------------------- BAE HK --------------------------------------------*/ BAE_HK_I2C = FCTN_I2C_READ(BAE_HK,134); - gPC.printf("Entering BAE HK\t"); + // gPC.printf("Entering BAE HK\t"); if(BAE_HK_I2C == 0) { crc = crc16_gen((unsigned char *)BAE_HK,132); if(crc == ((uint16_t)BAE_HK[132] << 8) | (uint16_t)BAE_HK[133]){ - gPC.printf("BAE HK data recieved through I2C\t"); + //gPC.printf("BAE HK data recieved through I2C\t"); TIME_LATEST_I2C_BAE = FCTN_CDMS_RD_RTC() >> 7; /*for(int i = 0; i<15; i++) gPC.printf("\r 0x%02X\n",BAE_HK[i]);*/ @@ -191,7 +193,7 @@ for(int i = 0; i<134; i++) BAE_HK[i] = 0; } - gPC.printf("Completed BAE HK\n"); + // gPC.printf("Completed BAE HK\n"); /*----------------------------------Beacon message--------------------------------------*/ @@ -228,10 +230,10 @@ bool y; y = FCTN_I2C_WRITE((char *)beacon_array,134); if(y == 0) - gPC.printf("long Bcn sent\n\r"); + gPC.printf("long Bcn sent\n\r"); else gPC.printf("long Bcn not sent\r\n"); - gPC.printf("\rCompleted Beacon\n"); + //gPC.printf("\rCompleted Beacon\n"); gMutex.unlock(); } } @@ -280,13 +282,13 @@ { int Iteration=0; - int resistance; + float resistance; SelectLinec0=0; SelectLinec1=0; SelectLinec2=0; SelectLinec3=0; - gPC.printf("\r%d %d %d %d\n",SelectLinec3.read(),SelectLinec2.read(),SelectLinec1.read(),SelectLinec0.read()); + //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(); @@ -298,25 +300,25 @@ SelectLinec2=!(SelectLinec2); if(Iteration%8==7) SelectLinec3=!(SelectLinec3); - gPC.printf("\r%d %d %d %d\n",SelectLinec3.read(),SelectLinec2.read(),SelectLinec1.read(),SelectLinec0.read()); + //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); +// gPC.printf("\rRaw Temp = %f\n",actual_data.temp_actual[15]*3.3); for(Iteration=0; Iteration<16; Iteration++) { if(Iteration<4) - actual_data.temp_actual[Iteration]=actual_data.temp_actual[Iteration]*3.3*2; + actual_data.temp_actual[Iteration]=actual_data.temp_actual[Iteration]*3.3*20; else if(Iteration<14){ - resistance=10000*actual_data.temp_actual[Iteration]*3.3/(3.3-actual_data.temp_actual[Iteration]*3.3); + resistance=24300*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); + actual_data.temp_actual[Iteration]=3694/log(24.032242*resistance/10); else - actual_data.temp_actual[Iteration]=3365.4/log(7.60573*resistance); + actual_data.temp_actual[Iteration]=3365.4/log(7.60573*resistance/10); } else actual_data.temp_actual[Iteration]=(-90.7*3.3*actual_data.temp_actual[Iteration])+190.1543; @@ -365,7 +367,7 @@ 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))); - gPC.printf("%04x\n",GPIO_STATUS); + // gPC.printf("%04x\n",GPIO_STATUS); } void VERIFY_COMRX() @@ -512,9 +514,9 @@ 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); - 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]); + //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;
--- a/CDMS_PL.h Sat Sep 10 07:06:59 2016 +0000 +++ b/CDMS_PL.h Sun Oct 09 07:08:34 2016 +0000 @@ -169,7 +169,7 @@ temp2[0] = (pl_main_flag&STATE_SCIENCE)>>2; temp2[1] = (pl_main_flag&PL_DISABLED)>>4; temp2[2] = (PL_PREV_STATE & STATE_SCIENCE)>>2; - gPC.printf("\n\rAt exit"); + //gPC.printf("\n\rAt exit"); char state[][17] = {"STATE_OFF","STATE_STANDBY","STATE_HIBERNATE","STATE_SCIENCE"}; char status[][17] = {"PL_OFF","PL_STANDBY","PL_HIBERNATE","PL_SCIENCE","PL_SUCCESS_I2C","PL_ERR_I2C","PL_INVALID_STATE","PL_DISABLED"}; //gPC.printf("\n\rPL_state:%s -> %s",state[(uint8_t)temp[0]],state[(uint8_t)temp2[0]]); @@ -348,7 +348,7 @@ if(pl_time!=0) //RTC read successful { // run the loop until end of schedule is reached or month and day are both zeros or future block is found - gPC.printf("\n\rRTC read success"); + //gPC.printf("\n\rRTC read success"); for(i=0;(i<192)&&(((uint16_t)((pl_block[i] & 0x3FE00000)>>21))!=0);i++) { if(((pl_block[i]>>4) & 0x0FFFFFFF)>pl_time) //Checking for future blocks @@ -428,7 +428,7 @@ } else if((pl_block[pl_next_index-1] & UNEXECUTED)==0) { - gPC.printf("\n\rEmpty Schedule Block"); + //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);
--- a/Compression.h Sat Sep 10 07:06:59 2016 +0000 +++ b/Compression.h Sun Oct 09 07:08:34 2016 +0000 @@ -1270,6 +1270,6 @@ position_tm_frame[id] = position_tm_starting[id]; } #endif - gPC.printf("fsc = %d, %d,%d\n\r", FSC_CURRENT[1],FSC_CURRENT[2],FSC_CURRENT[3]); - gPC.printf("\n\rEndSRP"); + gPC.printf("fsc = %u, %u,%u\n\r", FSC_CURRENT[1],FSC_CURRENT[2],FSC_CURRENT[3]); + //gPC.printf("\n\rEndSRP"); } \ No newline at end of file
--- a/DefinitionsAndGlobals.h Sat Sep 10 07:06:59 2016 +0000 +++ b/DefinitionsAndGlobals.h Sun Oct 09 07:08:34 2016 +0000 @@ -17,8 +17,8 @@ #define SPI_CLK PTE2 #define SPI_CS_ADF PTA15 #define SPI_CS_SDC PIN20 - //#define SPI_CS_RTC PIN26 - #define SPI_CS_RTC PIN60 + //#define SPI_CS_RTC PIN26 // actual + #define SPI_CS_RTC PIN60 // sbc with jumper v1.0 // COM_TX #define COM_TX_CONFIG_LIMIT 3 @@ -137,7 +137,7 @@ #define OBOSC_SUB_RESET 0x07 // PAYLOAD or SCIENCE - #define PAYLOAD_BUFFER_LENGTH 6723 + #define PAYLOAD_BUFFER_LENGTH 6723 // 6723 #define PAY_SPI_MOSI PTE18 #define PAY_SPI_MISO PTE19 #define PAY_SPI_CLK PTE17 @@ -306,6 +306,8 @@ DigitalOut RESET_TO_BAE(PIN93,1);//RESET_BAE_FROM_CDMS DigitalOut RESET_TO_PYLD(PIN21,1);//RESET_PYLD +DigitalOut DMA_LED1(PIN61,0); + //SD HK uint32_t FSC_CURRENT[6]; uint32_t FSC_LAST[6];
--- a/ThreadsAndFunctions.h Sat Sep 10 07:06:59 2016 +0000 +++ b/ThreadsAndFunctions.h Sun Oct 09 07:08:34 2016 +0000 @@ -10,29 +10,30 @@ void SCIENCE_FUN(void const *args){ gPAY_SPI = new dmaSPISlave(PAY_SPI_MOSI, PAY_SPI_MISO, PAY_SPI_CLK, PAY_SPI_CS); - gPAY_SPI->frequency(1000000); - gPAY_SPI->format(8,0); + // gPAY_SPI->frequency(1000000); //1000000 + gPAY_SPI->format(8,0); gPC.printf("\n\rTest..........................."); gPAY_SPI->bulkRead_init(gPAYLOAD_BUFFER, PAYLOAD_BUFFER_LENGTH, &payload_isr_fun); gPAY_SPI->bulkRead_start(); //AY_SPI->bulkRead_pause(); //AY_SPI->bulkRead_resume(&payload_isr_fun); while(true){ - gPC.puts("entering sci\r\n"); + //gPC.puts("entering sci\r\n"); gSCIENCE_THREAD->signal_wait(SCIENCE_SIGNAL); gMutex.lock(); PL_RCV_SC_DATA_STATUS = 1; - gPC.puts("sig_set\r\n"); + //gPC.puts("sig_set\r\n"); //for(int i =0; i<PAYLOAD_BUFFER_LENGTH; i++) //if (gPAYLOAD_BUFFER[i] != 0x01) gPC.printf("%d = 0x%02X\n\r",i,gPAYLOAD_BUFFER[i]); //gPAY_SPI->bulkRead_start(); srp(gPAYLOAD_BUFFER);//skip one apcket when cdms resets - gPC.puts("exit_srp\r\n"); - wait(2);/*timeout to be decided*/ + //gPC.puts("exit_srp\r\n"); + //wait(2);/*timeout to be decided*/ if(dma) { PL_RCV_SC_DATA_COUNTER++; gPAY_SPI->bulkRead_start(); + DMA_LED1 = !DMA_LED1; // added by samp //gPAY_SPI->bulkRead_pause(); //gPAY_SPI->bulkRead_resume(&payload_isr_fun); }
--- a/cdms_sd.h Sat Sep 10 07:06:59 2016 +0000 +++ b/cdms_sd.h Sun Oct 09 07:08:34 2016 +0000 @@ -127,8 +127,15 @@ uint32_t start_fsc; int i; uint8_t buffer[512]; + + disk_read(buffer,SD_MNG_SECT); SD_MNG_SECT += SD_LIB_WRITES/(int)0xFFFF; SD_LIB_WRITES = SD_LIB_WRITES%(int)0xFFFF; + disk_write(buffer,SD_MNG_SECT); + // gPC.printf("in increment_SD_LIB = %d, %d,%d\n\r", FSC_CURRENT[1],FSC_CURRENT[2],FSC_CURRENT[3]); + // SD_MNG_SECT += SD_LIB_WRITES/(int)0xFFFF; + // SD_LIB_WRITES = SD_LIB_WRITES%(int)0xFFFF; + disk_read(buffer,SD_MNG_SECT); if(sid==0x01) { @@ -262,13 +269,13 @@ int SD_WRITE(uint8_t* buffer,uint32_t fsc,uint8_t sid) { - /*uint32_t block_number; + uint32_t block_number; int result = 10; if(SD_STATUS == DEVICE_POWERED){ if(sid==0x01) { - //block_number=SD_SCP_FIRST+(fsc%(SD_SCP_LAST-SD_SCP_FIRST+1))-1; - block_number=SD_SCP_FIRST+fsc; + block_number=SD_SCP_FIRST+(fsc%(SD_SCP_LAST-SD_SCP_FIRST+1))-1; + //block_number=SD_SCP_FIRST+fsc; result= disk_write(buffer,block_number); if(result == 0) { @@ -279,8 +286,8 @@ } if(sid==0x02) { - //block_number= SD_SFF_AT_FIRST+(fsc%(SD_SFF_AT_LAST - SD_SFF_AT_FIRST+1))-1; - block_number= SD_SFF_AT_FIRST+fsc; + block_number= SD_SFF_AT_FIRST+(fsc%(SD_SFF_AT_LAST - SD_SFF_AT_FIRST+1))-1; + //block_number= SD_SFF_AT_FIRST+fsc; result= disk_write(buffer,block_number); if(result == 0) { @@ -291,8 +298,8 @@ } if(sid==0x03) { - //block_number= SD_SFF_BT_FIRST +(fsc%(SD_SFF_BT_LAST - SD_SFF_BT_FIRST +1))-1; - block_number= SD_SFF_BT_FIRST +fsc; + block_number= SD_SFF_BT_FIRST +(fsc%(SD_SFF_BT_LAST - SD_SFF_BT_FIRST +1))-1; + //block_number= SD_SFF_BT_FIRST +fsc; result= disk_write(buffer,block_number); if(result == 0) { @@ -303,8 +310,8 @@ } if(sid==0x04) { - //block_number=SD_HK_ARCH_FIRST +(fsc%(SD_HK_ARCH_LAST - SD_HK_ARCH_FIRST +1))-1; - block_number=SD_HK_ARCH_FIRST +fsc; + block_number=SD_HK_ARCH_FIRST +(fsc%(SD_HK_ARCH_LAST - SD_HK_ARCH_FIRST +1))-1; + //block_number=SD_HK_ARCH_FIRST +fsc; result= disk_write(buffer,block_number); if(result == 0) { @@ -315,8 +322,8 @@ } if(sid==0x05) { - //block_number= LOG_FIRST +(fsc%(LOG_FIRST - LOG_FIRST +1))-1; - block_number= LOG_FIRST +fsc; + block_number= LOG_FIRST +(fsc%(LOG_FIRST - LOG_FIRST +1))-1; + //block_number= LOG_FIRST +fsc; result= disk_write(buffer,block_number); if(result == 0) { @@ -325,13 +332,13 @@ } return result; } - }*/ - return 1; + } + // return 1; } uint8_t SD_READ(uint8_t* buffer,uint32_t fsc,uint8_t sid) { - /*FCTN_SD_MNGR(); + FCTN_SD_MNGR(); uint32_t block_number; int result; //if(SD_SW_EN_DS == 1) @@ -341,7 +348,7 @@ if(!(FSC_LAST[1]<=fsc && fsc<=FSC_CURRENT[1])){ return 0x86; } - block_number=SD_SCP_FIRST + fsc; + block_number=SD_SCP_FIRST+(fsc%(SD_SCP_LAST-SD_SCP_FIRST+1))-1; result= disk_read(buffer,block_number); } else if(sid==0x02) @@ -349,7 +356,7 @@ if(!(FSC_LAST[2]<=fsc && fsc<=FSC_CURRENT[2])){ return 0x86; } - block_number=SD_SFF_AT_FIRST + fsc; + block_number= SD_SFF_AT_FIRST+(fsc%(SD_SFF_AT_LAST - SD_SFF_AT_FIRST+1))-1; result= disk_read(buffer,block_number); } else if(sid==0x03) @@ -357,7 +364,7 @@ if(!(FSC_LAST[3]<=fsc && fsc<=FSC_CURRENT[3])){ return 0x86; } - block_number=SD_SFF_BT_FIRST + fsc; + block_number= SD_SFF_BT_FIRST +(fsc%(SD_SFF_BT_LAST - SD_SFF_BT_FIRST +1))-1; result= disk_read(buffer,block_number); } else if(sid==0x04) @@ -365,7 +372,7 @@ if(!(FSC_LAST[4]<=fsc && fsc<=FSC_CURRENT[4])){ return 0x86; } - block_number=SD_HK_ARCH_FIRST + fsc; + block_number=SD_HK_ARCH_FIRST +(fsc%(SD_HK_ARCH_LAST - SD_HK_ARCH_FIRST +1))-1; result= disk_read(buffer,block_number); } else if(sid==0x05) @@ -373,7 +380,7 @@ if(!(FSC_LAST[5]<=fsc && fsc<=FSC_CURRENT[5])){ return 0x86; } - block_number=LOG_FIRST +fsc; + block_number= LOG_FIRST +(fsc%(LOG_FIRST - LOG_FIRST +1))-1; result= disk_read(buffer,block_number); } else @@ -383,7 +390,7 @@ if(result == 0) return 0xA0; else - return 0x88;*/ + return 0x88; return 0xA0; }
--- a/main.cpp Sat Sep 10 07:06:59 2016 +0000 +++ b/main.cpp Sun Oct 09 07:08:34 2016 +0000 @@ -69,17 +69,21 @@ spi.format(8,0); spi.frequency(500000); + SD_SW_EN_DS = 0; + wait(1); + SD_SW_EN_DS = 1; + wait(1); // SD CARD cs_sd = 1; gCS_RTC = 1; gCS_ADF = 1; FCTN_CDMS_INIT_RTC();/* rtc initialization*/ - //FCTN_CDMS_SD_INIT();/* sd card initialization*/ + FCTN_CDMS_SD_INIT();/* sd card initialization*/ uint8_t test[512] = {0}; - //disk_write(test,7000); //to be used only just before launch + disk_write(test,8000); //to be used only just before launch #if DEBUG gPC.puts("welcome to mng_tmtc\r\n"); @@ -93,13 +97,13 @@ // COM_MNG_TMTC THREAD gCOM_MNG_TMTC_THREAD = new Thread(COM_MNG_TMTC_FUN); - gCOM_MNG_TMTC_THREAD->set_priority(osPriorityHigh); + gCOM_MNG_TMTC_THREAD->set_priority(osPriorityRealtime); gHK_THREAD = new Thread(FCTN_CDMS_HK_MAIN); gHK_THREAD->set_priority(osPriorityAboveNormal); gSCIENCE_THREAD = new Thread(SCIENCE_FUN); - gSCIENCE_THREAD->set_priority(osPriorityAboveNormal); + gSCIENCE_THREAD->set_priority(osPriorityHigh); #if DEBUG gPC.puts("completed allocating threads\r\n"); @@ -108,7 +112,7 @@ master.frequency(400000); HK_counter = new RtosTimer(hk_isr, osTimerPeriodic,(void * )NULL); - //gHK_THREAD->signal_set(HK_SIGNAL); + gHK_THREAD->signal_set(HK_SIGNAL); HK_counter->start(10000); sys_reset_cdms_timer = new RtosTimer(sys_pwr_reset, osTimerPeriodic, (void * )NULL);