pl ack in tmtc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE_pl123 by shubham c

Committer:
pradeepvk2208
Date:
Sat Apr 02 04:17:20 2016 +0000
Revision:
140:4feeb1163bb6
Parent:
139:17353d6311ce
included ack for pl_tc_tm

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aniruddhv 52:0bd68655c651 1 #define tm_len 134
aniruddhv 52:0bd68655c651 2 #define tc_len 135
aniruddhv 52:0bd68655c651 3 #define tc_test_len 135
aniruddhv 52:0bd68655c651 4
shreeshas95 105:5ce0337e7c15 5 InterruptIn irpt_4m_slv(D3); //I2c interrupt from CDMS
shreeshas95 105:5ce0337e7c15 6 DigitalOut irpt_2_slv(D4); //I2C interrupt to CDMS
ee12b079 130:d5b53088270b 7 //I2C master(PTC9,PTC8);
aniruddhv 52:0bd68655c651 8 const int addr = 0x20; //slave address
ee12b079 130:d5b53088270b 9 const int addr_pl = 0x20<<1; //PL slave address
ee12b079 132:d4a4461214ad 10
aniruddhv 52:0bd68655c651 11 bool write_ack = true;
aniruddhv 52:0bd68655c651 12 bool read_ack = true;
aniruddhv 52:0bd68655c651 13
ee12b079 132:d4a4461214ad 14
Piasiv1206 138:71ed56f2ec50 15
ee12b079 132:d4a4461214ad 16 uint8_t PL_TM_SIZE;//size of data to bev read from i2c
aniruddhv 52:0bd68655c651 17
pradeepvk2208 140:4feeb1163bb6 18 int FCTN_I2C_WRITE_PL(char *data2,uint8_t tc_len2)
aniruddhv 52:0bd68655c651 19 {
ee12b079 130:d5b53088270b 20 write_ack = master.write(addr_pl|0x00,data2,tc_len2);//address to be defined in payload
ee12b079 132:d4a4461214ad 21 if(write_ack == 1)
ee12b079 130:d5b53088270b 22 {
ee12b079 132:d4a4461214ad 23 printf("\n\rdata not sent\n");
pradeepvk2208 140:4feeb1163bb6 24 }
pradeepvk2208 140:4feeb1163bb6 25 return write_ack;
pradeepvk2208 140:4feeb1163bb6 26
ee12b079 130:d5b53088270b 27 }
ee12b079 130:d5b53088270b 28 void FCTN_I2C_READ_PL(char *data,int length)
ee12b079 130:d5b53088270b 29 {
ee12b079 130:d5b53088270b 30 //t_read.start();
ee12b079 130:d5b53088270b 31 read_ack = master.read(addr_pl|1,data,length);
ee12b079 130:d5b53088270b 32 //t_read.stop();
ee12b079 132:d4a4461214ad 33 uint8_t len = 0;
ee12b079 130:d5b53088270b 34
ee12b079 132:d4a4461214ad 35 printf("\n\r i2c data : \n\n\r\r");
ee12b079 132:d4a4461214ad 36 while(len != length) printf("%c",data[len]);
ee12b079 132:d4a4461214ad 37 printf(" \n\n\r\r");
ee12b079 132:d4a4461214ad 38 if(read_ack == 0)
ee12b079 132:d4a4461214ad 39 printf("\n\rData received from PL %s \n",data);
ee12b079 132:d4a4461214ad 40 if (read_ack == 1)
ee12b079 132:d4a4461214ad 41 {
ee12b079 130:d5b53088270b 42 // gLEDR = 1;
ee12b079 132:d4a4461214ad 43 printf("\n \r data not received from PL\n");
ee12b079 130:d5b53088270b 44 // gLEDR = 0;
ee12b079 132:d4a4461214ad 45 }
ee12b079 130:d5b53088270b 46 //if(read_ack == 1)
ee12b079 130:d5b53088270b 47 //pc.printf("\n \r data not received \n");
ee12b079 130:d5b53088270b 48 //printf("\n\r %d \n",t.read_us());
aniruddhv 52:0bd68655c651 49 //t.reset();
aniruddhv 52:0bd68655c651 50 }
aniruddhv 52:0bd68655c651 51
ee12b079 130:d5b53088270b 52 void FCTN_I2C_READ(char *data,int length, int addr)
ee12b079 130:d5b53088270b 53 {
shreeshas95 103:b55559925dc1 54 irpt_2_slv = 1;
shreeshas95 103:b55559925dc1 55 //t_read.start();
shreeshas95 103:b55559925dc1 56 read_ack = master.read(addr|1,data,length);
shreeshas95 103:b55559925dc1 57 //t_read.stop();
shreeshas95 103:b55559925dc1 58
aniruddhv 52:0bd68655c651 59 //if(read_ack == 0)
shreeshas95 103:b55559925dc1 60 // printf("\n\rData received from BAE %s \n",data);
aniruddhv 52:0bd68655c651 61 if (read_ack == 1)
aniruddhv 52:0bd68655c651 62 {
shreeshas95 103:b55559925dc1 63 printf("\n \r data not received \n");
aniruddhv 52:0bd68655c651 64 }
aniruddhv 52:0bd68655c651 65 //if(read_ack == 1)
shreeshas95 103:b55559925dc1 66 //pc.printf("\n \r data not received \n");
aniruddhv 52:0bd68655c651 67
aniruddhv 52:0bd68655c651 68 irpt_2_slv = 0;
shreeshas95 103:b55559925dc1 69 //printf("\n\r %d \n",t.read_us());
aniruddhv 52:0bd68655c651 70 //t.reset();
ee12b079 130:d5b53088270b 71 }
ee12b079 130:d5b53088270b 72
ee12b079 130:d5b53088270b 73 void FCTN_I2C_WRITE(char *data)
ee12b079 130:d5b53088270b 74 {
ee12b079 130:d5b53088270b 75 irpt_2_slv = 1;
ee12b079 130:d5b53088270b 76 //t.start();
ee12b079 130:d5b53088270b 77 write_ack = master.write(addr|0x00,data,tc_len);
ee12b079 130:d5b53088270b 78 //t.stop();
ee12b079 130:d5b53088270b 79 //if(write_ack == 0)
ee12b079 130:d5b53088270b 80 //gPC.printf("\n\r data not sent \n");
ee12b079 130:d5b53088270b 81
ee12b079 130:d5b53088270b 82 if (write_ack == 0)
ee12b079 130:d5b53088270b 83 {
ee12b079 130:d5b53088270b 84 // led2 = 1;
ee12b079 130:d5b53088270b 85 //gPC.printf("\n\r data not sent \n");
ee12b079 130:d5b53088270b 86 // led2 = 0;
ee12b079 130:d5b53088270b 87 }
ee12b079 130:d5b53088270b 88 irpt_2_slv = 0;
ee12b079 130:d5b53088270b 89 //gPC.printf("\n\r %d \n",t.read_us());
ee12b079 130:d5b53088270b 90 //t.reset();
ee12b079 132:d4a4461214ad 91 }
ee12b079 132:d4a4461214ad 92
ee12b079 132:d4a4461214ad 93
Piasiv1206 138:71ed56f2ec50 94 const int addr1 = (0x20<<1|0);
Piasiv1206 138:71ed56f2ec50 95 const int addr2 = (0x20<<1|1);
ee12b079 132:d4a4461214ad 96
ee12b079 132:d4a4461214ad 97
ee12b079 132:d4a4461214ad 98
ee12b079 132:d4a4461214ad 99
ee12b079 132:d4a4461214ad 100
ee12b079 132:d4a4461214ad 101
ee12b079 132:d4a4461214ad 102
ee12b079 132:d4a4461214ad 103
ee12b079 132:d4a4461214ad 104 void isr_pyldtm()
ee12b079 132:d4a4461214ad 105 {
ee12b079 132:d4a4461214ad 106 gLEDR=!gLEDR;
ee12b079 139:17353d6311ce 107 read_ack = master.read(addr1,PL_I2C_DATA,134);
ee12b079 132:d4a4461214ad 108 rcv_isr = 1;
aniruddhv 52:0bd68655c651 109 }