I2C code testing

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE_pl123 by Siva ram

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 void 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     else
00026     {
00027         
00028         }
00029 }
00030 void FCTN_I2C_READ_PL(char *data,int length)
00031 {   
00032     //t_read.start();
00033     read_ack = master.read(addr_pl|1,data,length);
00034     //t_read.stop();
00035     uint8_t len = 0;
00036   
00037   printf("\n\r i2c data : \n\n\r\r");
00038   while(len != length) printf("%c",data[len]);
00039   printf(" \n\n\r\r"); 
00040     if(read_ack == 0)
00041       printf("\n\rData received from PL %s \n",data);
00042  if (read_ack == 1)
00043     {
00044 //        gLEDR = 1;
00045         printf("\n \r data not received from PL\n");
00046 //        gLEDR = 0;
00047     }
00048 //if(read_ack == 1)
00049 //pc.printf("\n \r data not received \n");
00050     //printf("\n\r %d \n",t.read_us());
00051     //t.reset();
00052 }
00053 
00054 void FCTN_I2C_READ(char *data,int length, int addr)
00055 {   
00056     irpt_2_slv = 1;
00057     //t_read.start();
00058     read_ack = master.read(addr|1,data,length);
00059     //t_read.stop();
00060   
00061     //if(read_ack == 0)
00062       //  printf("\n\rData received from BAE %s \n",data);
00063  if (read_ack == 1)
00064     {
00065         printf("\n \r data not received \n");
00066     }
00067 //if(read_ack == 1)
00068 //pc.printf("\n \r data not received \n");
00069 
00070     irpt_2_slv = 0;
00071     //printf("\n\r %d \n",t.read_us());
00072     //t.reset();
00073 }
00074 
00075 void FCTN_I2C_WRITE(char *data)
00076 {
00077     irpt_2_slv = 1;
00078     //t.start();
00079     write_ack = master.write(addr|0x00,data,tc_len);
00080     //t.stop();
00081     //if(write_ack == 0)
00082         //gPC.printf("\n\r data not sent \n");
00083        
00084 if (write_ack == 0)
00085     {
00086 //        led2 = 1;
00087         //gPC.printf("\n\r data not sent \n");
00088 //        led2 = 0;    
00089     }
00090     irpt_2_slv = 0;
00091     //gPC.printf("\n\r %d \n",t.read_us());
00092     //t.reset();
00093 }
00094 
00095 
00096 const int addr1 = (0x20<<1|0);
00097 const int addr2 = (0x20<<1|1);
00098 
00099 
00100 
00101 
00102 
00103 
00104 
00105 
00106 void isr_pyldtm()
00107 {
00108     gLEDR=!gLEDR;
00109     read_ack = master.read(addr1,PL_I2C_DATA,134);
00110     rcv_isr = 1;
00111 }