CDMS_CODE_samp_23SEP_DMA_flag

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE_samp_23SEP_DMA by iitm sat

Files at this revision

API Documentation at this revision

Comitter:
aniruddhv
Date:
Thu Jul 14 23:05:09 2016 +0000
Parent:
263:3b872778b8c7
Child:
265:ab1b6b569b69
Child:
266:ae588e75cfa4
Commit message:
Latest_code - Partially Integrated aniruddh's revision, made changes in i2c , PA_HOT, OC_SW to be tested later, Long Beacon not received somtimes alternatively

Changed in this revision

CDMS_HK.h Show annotated file Show diff for this revision Revisions of this file
COM_MNG_TMTC.h Show annotated file Show diff for this revision Revisions of this file
COM_POWER_OFF_TX.h Show annotated file Show diff for this revision Revisions of this file
COM_POWER_ON_TX.h Show annotated file Show diff for this revision Revisions of this file
DefinitionsAndGlobals.h Show annotated file Show diff for this revision Revisions of this file
ThreadsAndFunctions.h Show annotated file Show diff for this revision Revisions of this file
common_functions.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/CDMS_HK.h	Thu Jul 14 19:54:27 2016 +0000
+++ b/CDMS_HK.h	Thu Jul 14 23:05:09 2016 +0000
@@ -147,7 +147,12 @@
     crc = crc16_gen(SC_HK_LBM_0,133);
     SC_HK_LBM_0[132] = crc;
     SC_HK_LBM_0[133] = crc >> 8;
-    FCTN_I2C_WRITE((char *)SC_HK_LBM_0,135);
+    bool y;
+    y = FCTN_I2C_WRITE((char *)SC_HK_LBM_0,135);
+    if(y == 0)
+        gPC.printf("long Bcn sent\n\r");
+        else
+        gPC.printf("long Bcn not sent\r\n");
     gPC.printf("\rCompleted Beacon\n");
     gMutex.unlock();
     }
--- a/COM_MNG_TMTC.h	Thu Jul 14 19:54:27 2016 +0000
+++ b/COM_MNG_TMTC.h	Thu Jul 14 23:05:09 2016 +0000
@@ -365,19 +365,22 @@
             y = FCTN_I2C_WRITE((char*)tc_ptr->TC_string,TC_LONG_SIZE);                         // Check for SHORT and LONG TC and then send
                 
             if(y==1)                                                            
-            {                                                                               
+            {        
+                gPC.printf("BAE write fail\r\n");                                                                       
                 ACK_L234(tm_ptr_short,0x03,GETpacket_seq_count(tc_ptr));
                 return tm_ptr_short;
             }                                  
             else if(y==0)
             {
+                gPC.printf("BAE write succe\r\n");
                 //wait(0.2);
-                uint8_t poll=0;
-                while(poll<60 && BAE_I2C_GPIO==0)
+                int poll=0;
+                while(poll<9000 && BAE_I2C_GPIO==0)
                 {
-                    wait_ms(50);
+                    wait_us(10);
                     poll+=1;
-                }    
+                }
+                //while(BAE_I2C_GPIO==0){}   
                 if(BAE_I2C_GPIO == 1)                                            //name to be changed later
                 {
                     gPC.printf("BAE_I2C_GPIO is high\r\n");
@@ -385,11 +388,13 @@
                     y=FCTN_I2C_READ((char*)tm_pointer->TM_string,TM_LONG_SIZE);            //rify later about the size
                     if(y==0)
                     {
+                        gPC.printf("BAE read success\r\n");
                         tm_pointer->next_TM=NULL;
                         return tm_ptr;
                     }
                     else if(y==1)
                     {
+                        gPC.printf("BAE read fail\r\n");
                         ACK_L234(tm_ptr_short,0x85,GETpacket_seq_count(tc_ptr));                
                         //gPC.printf("\n\rPTE->PDIR = 0x%08X",PTE->PDIR);
                         return tm_ptr_short;
@@ -1074,10 +1079,10 @@
             else if(y==0)
             {
                 //wait(0.2);
-                uint8_t poll=0;
-                while(poll<60 && PL_I2C_Intr==0)
+                int poll=0;
+                while(poll<900 && PL_I2C_Intr==0)
                 {
-                    wait_ms(50);
+                    wait_us(10);
                     poll+=1;
                 }    
                 if(PL_I2C_Intr == 1)                                            //name to be changed later
--- a/COM_POWER_OFF_TX.h	Thu Jul 14 19:54:27 2016 +0000
+++ b/COM_POWER_OFF_TX.h	Thu Jul 14 23:05:09 2016 +0000
@@ -70,7 +70,7 @@
 }
 
 #define COM_POWER_OFF_TX {\
-    /*gPC.puts("Inside COM_POWER_OFF_TX\r\n");*/\
+    gPC.puts("Inside COM_POWER_OFF_TX\r\n");\
     COM_TX_CNTRL = 0;\
     RX1M.attach(&rx_read, Serial::RxIrq);\
     gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);\
@@ -79,12 +79,15 @@
     RF_SW_CNTRL_BCN = 0;\
     gFLAGS = gFLAGS | RF_SW_STATUS_FLAG;\
     if( gFLAGS & COM_AUTO_POWER_OFF_BAE_FLAG ){\
+        gPC.puts("powering on bae\r\n");\
         SW_ON_BAE;\
         gFLAGS & (~COM_AUTO_POWER_OFF_BAE_FLAG);\
+        gPC.puts("resumning bcn\r\n");\
         resume_bcn;\
     }\
     else{\
-        if( gFLAGS & BAE_SW_EN_FLAG ){\
+        if( /*gFLAGS & BAE_SW_EN_FLAG*/true ){\
+        gPC.puts("resumning bcn2\r\n");\
             resume_bcn;\
         }\
     }\
@@ -93,5 +96,5 @@
     gCOM_PA_COOLING_TIMEOUT.detach();\
     gFLAGS = gFLAGS & (~COM_TX_FLAG);\
     gFLAGS = gFLAGS & (~COM_SESSION_TIMEOUT_FLAG);\
-    /*gPC.puts("completed com_power_off tx\r\n");*/\
+    gPC.puts("completed com_power_off tx\r\n");\
 }
\ No newline at end of file
--- a/COM_POWER_ON_TX.h	Thu Jul 14 19:54:27 2016 +0000
+++ b/COM_POWER_ON_TX.h	Thu Jul 14 23:05:09 2016 +0000
@@ -115,16 +115,22 @@
     gPC.puts("Inside COM_POWER_ON_TX\r\n");
     if( !(gFLAGS & COM_TX_FLAG) ){
         gFLAGS = gFLAGS | COM_TX_FLAG;
+        gPC.puts("Inside COM_TX_FLAG\r\n");
+        gFLAGS = gFLAGS | BAE_SW_EN_FLAG ;
         if( gFLAGS & BAE_SW_EN_FLAG ){
             /*WARNING: INFINITE WHILE LOOP POSSIBLE: if standby ack received and bcn tx main status = 0*/
             bool retryFlag = true;
             while( retryFlag == true ){
                 Base_tm *tm_ptr = NULL;
+                gPC.puts("setting Bcn off\r\n");
+                wait(1);
                 SET_BCN_STANDBY(tm_ptr);
+                gPC.puts("set Bcn off\r\n");
                 uint8_t bcn_main_status = (tm_ptr->TM_string[2] & 0xEF);
                 if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
                     /*ACK RECCEIVED*/
                     if( bcn_main_status == 0xA0 ){
+                        gPC.puts("A0\r\n");
                         retryFlag = false;
                         RF_SW_CNTRL_TX = 1;
                         Thread::wait(25);
@@ -132,17 +138,22 @@
                         gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
                     }
                     else{
+                        gPC.puts("diff\r\n");
                         Thread::wait(5000);
                     }
                 }
                 else{
+                    gPC.puts("not A0\r\n");
                     SW_RST_BAE();
                     Base_tm *tm_ptr2 = NULL;
+                    gPC.puts("set bcn off\r\n");
                     SET_BCN_STANDBY(tm_ptr2);
+                    gPC.puts("bcn off\r\n");
                     uint8_t standbyAck2 = 0;
                     uint8_t bcn_main_status2 = (tm_ptr2->TM_string[2] & 0xEF);
                     if( ( bcn_main_status2 == 0xC0 )||( bcn_main_status2 == 0xA0 ) ){
                         if( bcn_main_status2 == 0xA0 ){
+                            gPC.puts("ack = A0\r\n");
                             retryFlag = false;
                             RF_SW_CNTRL_TX = 1;
                             Thread::wait(25);
@@ -150,12 +161,15 @@
                             gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);
                         }
                         else{
+                            gPC.puts("ack = C0\r\n");
                             Thread::wait(5000);
                         }                           
                     }
                     else{
+                        gPC.puts("sw off BAE\r\n");
                         retryFlag = false;
                         SW_OFF_BAE();
+                        gPC.puts("swd off BAE\r\n");
                         gFLAGS = gFLAGS | COM_AUTO_POWER_OFF_BAE_FLAG;
                         RF_SW_CNTRL_TX = 1;
                         Thread::wait(25);
@@ -196,12 +210,14 @@
             }
         }
         else{
+            gPC.puts("RF_SW_CNTRL_TX\r\n");
             RF_SW_CNTRL_TX = 1;
             Thread::wait(25);
             RF_SW_CNTRL_TX = 0;
             gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
         }
     }
+    gPC.puts("swd off BAE\r\n");
     COM_TX_CNTRL = 1;
     uint8_t adfConfigPass = 0xFF;
     for( int i = 0 ; i < COM_TX_CONFIG_LIMIT ; ++i ){
@@ -362,5 +378,5 @@
         }
         RESET_CDMS_TC;
     }
-    /*gPC.puts("COMPLETED COM_POWER_ON_TX\r\n");*/
+    gPC.puts("COMPLETED COM_POWER_ON_TX\r\n");
 }
\ No newline at end of file
--- a/DefinitionsAndGlobals.h	Thu Jul 14 19:54:27 2016 +0000
+++ b/DefinitionsAndGlobals.h	Thu Jul 14 23:05:09 2016 +0000
@@ -33,8 +33,20 @@
     DigitalOut PL_I2C_GPIO(PTC1);
             
 //I2C - CDMS to BAE
-    DigitalIn BAE_I2C_GPIO(PIN67);//PTB21 from bae to cdms
-    DigitalOut CDMS_I2C_GPIO(PIN39);//PTA5 from cdms to bae 
+    //DigitalIn BAE_I2C_GPIO(PIN67);//PTB21 from bae to cdms
+    //DigitalOut CDMS_I2C_GPIO(PIN39);//PTA5 from cdms to bae 
+    
+    #define SBC 1
+    
+    #if SBC
+    DigitalOut CDMS_I2C_GPIO(PIN67);
+    DigitalIn BAE_I2C_GPIO(PIN1);
+    #endif
+    
+    #if !SBC
+    DigitalIn BAE_I2C_GPIO(PIN67);
+    DigitalOut CDMS_I2C_GPIO(PIN39);    
+    #endif
 
 // TC LIST
     #define TCL_STATE_INCOMPLETE 0x00
--- a/ThreadsAndFunctions.h	Thu Jul 14 19:54:27 2016 +0000
+++ b/ThreadsAndFunctions.h	Thu Jul 14 23:05:09 2016 +0000
@@ -194,8 +194,11 @@
                             gFLAGS = gFLAGS | COM_SESSION_VALIDITY;
                             //sys_reset_cdms_timer->start(cdms_reset_timeout);
                             COM_POWER_ON_TX();
+                            gPC.puts("P_com_hk !!\r\n");
                             P_COM_HK;
+                            gPC.puts("P_com_hk !!\r\n");
                             if( (gFLAGS & COM_PA_HOT_FLAG) || ( gFLAGS & COM_PA_OC_FLAG ) ){
+                                gPC.puts("Pahot or paoc !!\r\n");
                                 COM_TX_CNTRL = 0;
                                 gCOM_PA_COOLING_TIMEOUT.attach(&after_cooling_pa, COM_PA_COOLING_TIME_LIMIT);
                                 gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);
--- a/common_functions.h	Thu Jul 14 19:54:27 2016 +0000
+++ b/common_functions.h	Thu Jul 14 23:05:09 2016 +0000
@@ -138,18 +138,18 @@
     uint8_t returnHere;\
     isPAhot(returnHere);\
     if (returnHere == 0xFF)\
-        gFLAGS = gFLAGS & ~(COM_PA_HOT_FLAG);\
+        gFLAGS = gFLAGS | COM_PA_HOT_FLAG;\
     else\
-        gFLAGS = gFLAGS | COM_PA_HOT_FLAG;\
+        gFLAGS = gFLAGS & ~(COM_PA_HOT_FLAG);\        
     if (gFLAGS & COM_PA_OC_FLAG){\
         COM_TX_CNTRL = 1;\
         wait_ms(5);\
     }\
     isPAoc(returnHere);\
     if (returnHere == 0xFF)\
-        gFLAGS = gFLAGS & ~(COM_PA_OC_FLAG);\
+        gFLAGS = gFLAGS | COM_PA_OC_FLAG;\
     else\
-        gFLAGS = gFLAGS | COM_PA_OC_FLAG;\
+        gFLAGS = gFLAGS & ~(COM_PA_OC_FLAG);\
     /*P_CDMS_HANDLE_HW_FAULTS*/\
 }
 
@@ -171,19 +171,25 @@
         pa_temp = 3365.4/log(7.60573*resistance);\
     }\
     pa_temp_quant = quantiz(tstart_thermistor,tstep_thermistor,pa_temp);\
+    pa_temp_quant = 0;\
     if (pa_temp_quant > COM_PA_TMP_HIGH){\
-        returnHere = 0;\
+        returnHere = 0xFF;\
+        gPC.puts("PA is measured HOT\r\n");\
     }\
     else{\
-        returnHere = 0xFF;\
+        returnHere = 0;\
+        gPC.puts("PA is measured not HOT\r\n");\
     }\
 }
 
 #define isPAoc(returnHere){\
-    if (COM_TX_OC_FAULT)\
+    if (COM_TX_OC_FAULT){\
+        returnHere = 0xFF;\
+    }\
+    else{\
         returnHere = 0;\
-    else\
-        returnHere = 0xFF;\
+    }\
+    returnHere = 0;\
 }
 
 #define get_call_sign(tm_ptr) {\
--- a/main.cpp	Thu Jul 14 19:54:27 2016 +0000
+++ b/main.cpp	Thu Jul 14 23:05:09 2016 +0000
@@ -165,6 +165,8 @@
     gPC.puts("allocating threads\r\n");
     #endif
     
+    // COM_POWER_ON_TX();
+    
     // COM_MNG_TMTC THREAD
     gCOM_MNG_TMTC_THREAD = new Thread(COM_MNG_TMTC_FUN);
     gCOM_MNG_TMTC_THREAD->set_priority(osPriorityHigh);