pl ack in tmtc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE_pl123 by shubham c

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers i2c.h Source File

i2c.h

00001 #define tm_len 134
00002 #define tc_len 135
00003 #define tc_test_len 135
00004 
00005 InterruptIn irpt_4m_slv(D3);                                      //I2c interrupt from CDMS
00006 DigitalOut irpt_2_slv(D4);                                        //I2C interrupt to CDMS
00007 //I2C master(PTC9,PTC8);
00008 const int addr = 0x20;                                            //slave address 
00009 const int addr_pl = 0x20<<1;                                            //PL slave address
00010 
00011 bool write_ack = true;
00012 bool read_ack = true;
00013 
00014 
00015 
00016 uint8_t PL_TM_SIZE;//size of data to bev read from i2c
00017 
00018 int FCTN_I2C_WRITE_PL(char *data2,uint8_t tc_len2)
00019 {
00020     write_ack = master.write(addr_pl|0x00,data2,tc_len2);//address to be defined in payload
00021     if(write_ack == 1)
00022     {
00023         printf("\n\rdata not sent\n");
00024      }
00025      return write_ack;
00026     
00027 }
00028 void FCTN_I2C_READ_PL(char *data,int length)
00029 {   
00030     //t_read.start();
00031     read_ack = master.read(addr_pl|1,data,length);
00032     //t_read.stop();
00033     uint8_t len = 0;
00034   
00035   printf("\n\r i2c data : \n\n\r\r");
00036   while(len != length) printf("%c",data[len]);
00037   printf(" \n\n\r\r"); 
00038     if(read_ack == 0)
00039       printf("\n\rData received from PL %s \n",data);
00040  if (read_ack == 1)
00041     {
00042 //        gLEDR = 1;
00043         printf("\n \r data not received from PL\n");
00044 //        gLEDR = 0;
00045     }
00046 //if(read_ack == 1)
00047 //pc.printf("\n \r data not received \n");
00048     //printf("\n\r %d \n",t.read_us());
00049     //t.reset();
00050 }
00051 
00052 void FCTN_I2C_READ(char *data,int length, int addr)
00053 {   
00054     irpt_2_slv = 1;
00055     //t_read.start();
00056     read_ack = master.read(addr|1,data,length);
00057     //t_read.stop();
00058   
00059     //if(read_ack == 0)
00060       //  printf("\n\rData received from BAE %s \n",data);
00061  if (read_ack == 1)
00062     {
00063         printf("\n \r data not received \n");
00064     }
00065 //if(read_ack == 1)
00066 //pc.printf("\n \r data not received \n");
00067 
00068     irpt_2_slv = 0;
00069     //printf("\n\r %d \n",t.read_us());
00070     //t.reset();
00071 }
00072 
00073 void FCTN_I2C_WRITE(char *data)
00074 {
00075     irpt_2_slv = 1;
00076     //t.start();
00077     write_ack = master.write(addr|0x00,data,tc_len);
00078     //t.stop();
00079     //if(write_ack == 0)
00080         //gPC.printf("\n\r data not sent \n");
00081        
00082 if (write_ack == 0)
00083     {
00084 //        led2 = 1;
00085         //gPC.printf("\n\r data not sent \n");
00086 //        led2 = 0;    
00087     }
00088     irpt_2_slv = 0;
00089     //gPC.printf("\n\r %d \n",t.read_us());
00090     //t.reset();
00091 }
00092 
00093 
00094 const int addr1 = (0x20<<1|0);
00095 const int addr2 = (0x20<<1|1);
00096 
00097 
00098 
00099 
00100 
00101 
00102 
00103 
00104 void isr_pyldtm()
00105 {
00106     gLEDR=!gLEDR;
00107     read_ack = master.read(addr1,PL_I2C_DATA,134);
00108     rcv_isr = 1;
00109 }