lele

Dependencies:   mbed

Committer:
krishanprajapat
Date:
Fri Jul 31 12:52:23 2015 +0000
Revision:
1:90fd52655154
Parent:
0:984643af7d81
bro working fine and Sframe and EoS is also done , so put peace;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
krishanprajapat 0:984643af7d81 1 SPI adf(PTA16, PTA17, PTA15); //MOSI, MISO, CLOCK
krishanprajapat 0:984643af7d81 2 DigitalOut cs_adf(D10);
krishanprajapat 0:984643af7d81 3 DigitalOut led2(LED_RED);
krishanprajapat 0:984643af7d81 4 InterruptIn IRQ(D8);
krishanprajapat 0:984643af7d81 5 Ticker ticker;
krishanprajapat 0:984643af7d81 6 unsigned char buffer_half=1;
krishanprajapat 0:984643af7d81 7 unsigned char buffer_counter = 0;
krishanprajapat 0:984643af7d81 8 bool transmission_done = false;
krishanprajapat 0:984643af7d81 9 bool sent_tmfrom_SDcard;
krishanprajapat 0:984643af7d81 10 unsigned char bbram_buffer[66]={0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xF4,0xc2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,0x7F,0x00,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x10,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00};
krishanprajapat 0:984643af7d81 11 void bbram_write(){
krishanprajapat 0:984643af7d81 12
krishanprajapat 0:984643af7d81 13 cs_adf=0;
krishanprajapat 0:984643af7d81 14 adf.write(0xB0);//PHY_OFF
krishanprajapat 0:984643af7d81 15 wait_us(300);
krishanprajapat 0:984643af7d81 16 cs_adf=1;
krishanprajapat 0:984643af7d81 17
krishanprajapat 0:984643af7d81 18 // Write bbram
krishanprajapat 0:984643af7d81 19 cs_adf=0;
krishanprajapat 0:984643af7d81 20 for(int i=0;i<66;i++){
krishanprajapat 0:984643af7d81 21 adf.write(bbram_buffer[i]);
krishanprajapat 0:984643af7d81 22 }
krishanprajapat 0:984643af7d81 23 cs_adf=1;
krishanprajapat 0:984643af7d81 24
krishanprajapat 0:984643af7d81 25 }
krishanprajapat 0:984643af7d81 26
krishanprajapat 0:984643af7d81 27
krishanprajapat 0:984643af7d81 28 /******************************************************************************************/
krishanprajapat 0:984643af7d81 29
krishanprajapat 0:984643af7d81 30 void initiate(void){
krishanprajapat 0:984643af7d81 31 cs_adf=0;
krishanprajapat 0:984643af7d81 32 adf.write(0xFF);
krishanprajapat 0:984643af7d81 33 adf.write(0xFF);
krishanprajapat 0:984643af7d81 34 cs_adf=1;
krishanprajapat 0:984643af7d81 35 // wait_ms(2);
krishanprajapat 0:984643af7d81 36
krishanprajapat 0:984643af7d81 37 cs_adf=0;
krishanprajapat 0:984643af7d81 38 adf.write(0x08); // TRANSMIT_DATA LENGTH
krishanprajapat 0:984643af7d81 39 adf.write(0x14);
krishanprajapat 0:984643af7d81 40 adf.write(0xFF);
krishanprajapat 0:984643af7d81 41 cs_adf=1;
krishanprajapat 0:984643af7d81 42 // wait_ms(2);
krishanprajapat 0:984643af7d81 43 cs_adf=0;
krishanprajapat 0:984643af7d81 44 adf.write(0x08); // TRANSMIT_DATA LENGTH
krishanprajapat 0:984643af7d81 45 adf.write(0x15);
krishanprajapat 0:984643af7d81 46 adf.write(0xFF);
krishanprajapat 0:984643af7d81 47 cs_adf=1;
krishanprajapat 0:984643af7d81 48 // wait_ms(2);
krishanprajapat 0:984643af7d81 49
krishanprajapat 0:984643af7d81 50 cs_adf=0;
krishanprajapat 0:984643af7d81 51 adf.write(0x09);
krishanprajapat 0:984643af7d81 52 adf.write(0x24); // TX_BASE ADDRESS 0x20(starting Tx Byte)
krishanprajapat 0:984643af7d81 53 adf.write(0x20);
krishanprajapat 0:984643af7d81 54 cs_adf=1;
krishanprajapat 0:984643af7d81 55 // wait_ms(2);
krishanprajapat 0:984643af7d81 56
krishanprajapat 0:984643af7d81 57 cs_adf=0;
krishanprajapat 0:984643af7d81 58 adf.write(0x09);
krishanprajapat 0:984643af7d81 59 adf.write(0x37);// BUFFER SIZE 0xE0=224 Bytes 0x137 is adress of buffer size
krishanprajapat 0:984643af7d81 60 adf.write(0xE0);
krishanprajapat 0:984643af7d81 61 cs_adf=1;
krishanprajapat 0:984643af7d81 62 // wait_ms(2);
krishanprajapat 0:984643af7d81 63
krishanprajapat 0:984643af7d81 64 cs_adf=0;
krishanprajapat 0:984643af7d81 65 adf.write(0x09);
krishanprajapat 0:984643af7d81 66 adf.write(0x36);//BB_Tx_Buffer Signal when Buffer is half filled
krishanprajapat 0:984643af7d81 67 adf.write(0x70);//0x70 = 112 >> When Half buffer interrupt is given
krishanprajapat 0:984643af7d81 68 cs_adf=1;
krishanprajapat 0:984643af7d81 69 // wait_ms(2);
krishanprajapat 0:984643af7d81 70
krishanprajapat 0:984643af7d81 71
krishanprajapat 0:984643af7d81 72 cs_adf=0;
krishanprajapat 0:984643af7d81 73 adf.write(0x09);
krishanprajapat 0:984643af7d81 74 adf.write(0x39);//BB_Tx_Buffer Signal when Buffer is half filled
krishanprajapat 0:984643af7d81 75 adf.write(0x10);//0x70 = 112 >> When Half buffer interrupt is given
krishanprajapat 0:984643af7d81 76 cs_adf=1;
krishanprajapat 0:984643af7d81 77 // wait_ms(2);
krishanprajapat 0:984643af7d81 78 }
krishanprajapat 0:984643af7d81 79
krishanprajapat 0:984643af7d81 80
krishanprajapat 0:984643af7d81 81
krishanprajapat 0:984643af7d81 82 void write_data(void){
krishanprajapat 0:984643af7d81 83
krishanprajapat 0:984643af7d81 84 cs_adf=0;
krishanprajapat 0:984643af7d81 85 adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF
krishanprajapat 0:984643af7d81 86 adf.write(0x36);//Address : 0x336
krishanprajapat 0:984643af7d81 87 adf.write(0xFF);//Put Low
krishanprajapat 0:984643af7d81 88 cs_adf=1;
krishanprajapat 0:984643af7d81 89
krishanprajapat 0:984643af7d81 90 cs_adf=0;
krishanprajapat 0:984643af7d81 91 static bool first_2_time = true;
krishanprajapat 0:984643af7d81 92 buffer_counter=0;
krishanprajapat 0:984643af7d81 93
krishanprajapat 0:984643af7d81 94 if(first_2_time==false && last_buffer==false){
krishanprajapat 0:984643af7d81 95
krishanprajapat 0:984643af7d81 96 adf.write(0x18);
krishanprajapat 0:984643af7d81 97 if(buffer_half==1){
krishanprajapat 0:984643af7d81 98 adf.write(0x20);
krishanprajapat 0:984643af7d81 99 buffer_half = 2;
krishanprajapat 0:984643af7d81 100 }
krishanprajapat 0:984643af7d81 101 else if(buffer_half==2){
krishanprajapat 0:984643af7d81 102 adf.write(0x90);
krishanprajapat 0:984643af7d81 103 buffer_half = 1;
krishanprajapat 0:984643af7d81 104 }
krishanprajapat 0:984643af7d81 105
krishanprajapat 0:984643af7d81 106 buffer_counter = 0;
krishanprajapat 0:984643af7d81 107 while(buffer_counter<112){
krishanprajapat 0:984643af7d81 108 adf.write(buffer_112[buffer_counter]);
krishanprajapat 0:984643af7d81 109 buffer_counter++;
krishanprajapat 0:984643af7d81 110 }
krishanprajapat 0:984643af7d81 111
krishanprajapat 0:984643af7d81 112 }
krishanprajapat 0:984643af7d81 113
krishanprajapat 0:984643af7d81 114 if(first_2_time == true && last_buffer==false){
krishanprajapat 0:984643af7d81 115
krishanprajapat 0:984643af7d81 116 adf.write(0x18);
krishanprajapat 0:984643af7d81 117 if(buffer_half==1){
krishanprajapat 0:984643af7d81 118 adf.write(0x20);
krishanprajapat 0:984643af7d81 119 buffer_half=2;
krishanprajapat 0:984643af7d81 120 }
krishanprajapat 0:984643af7d81 121 else{
krishanprajapat 0:984643af7d81 122 adf.write(0x90);
krishanprajapat 0:984643af7d81 123 buffer_half=1;
krishanprajapat 0:984643af7d81 124 first_2_time = false;
krishanprajapat 0:984643af7d81 125 }
krishanprajapat 0:984643af7d81 126
krishanprajapat 0:984643af7d81 127 while(buffer_counter<112){
krishanprajapat 0:984643af7d81 128 adf.write(buffer_112[buffer_counter]);
krishanprajapat 0:984643af7d81 129 buffer_counter++;
krishanprajapat 0:984643af7d81 130 }
krishanprajapat 0:984643af7d81 131
krishanprajapat 0:984643af7d81 132 }
krishanprajapat 0:984643af7d81 133
krishanprajapat 0:984643af7d81 134 if(last_buffer){
krishanprajapat 0:984643af7d81 135 cs_adf=0;
krishanprajapat 0:984643af7d81 136 adf.write(0x18);
krishanprajapat 0:984643af7d81 137 adf.write(0x20);
krishanprajapat 0:984643af7d81 138
krishanprajapat 0:984643af7d81 139 while(buffer_counter<112){
krishanprajapat 0:984643af7d81 140 adf.write(buffer_112[buffer_counter]);
krishanprajapat 0:984643af7d81 141 buffer_counter++;
krishanprajapat 0:984643af7d81 142 }
krishanprajapat 0:984643af7d81 143 cs_adf=1;
krishanprajapat 0:984643af7d81 144
krishanprajapat 0:984643af7d81 145 ticker.detach();
krishanprajapat 0:984643af7d81 146 cs_adf=0;
krishanprajapat 0:984643af7d81 147 adf.write(0xB1);
krishanprajapat 0:984643af7d81 148 cs_adf=1;
krishanprajapat 0:984643af7d81 149 transmission_done=true;
krishanprajapat 0:984643af7d81 150 }
krishanprajapat 0:984643af7d81 151
krishanprajapat 0:984643af7d81 152 cs_adf=1;
krishanprajapat 0:984643af7d81 153 }
krishanprajapat 0:984643af7d81 154
krishanprajapat 0:984643af7d81 155
krishanprajapat 0:984643af7d81 156 void check(){
krishanprajapat 0:984643af7d81 157
krishanprajapat 0:984643af7d81 158 if(IRQ){
krishanprajapat 0:984643af7d81 159 write_data();
krishanprajapat 0:984643af7d81 160 if(sent_tmfrom_SDcard){
krishanprajapat 0:984643af7d81 161 send_tm_from_SD_card();
krishanprajapat 0:984643af7d81 162 }
krishanprajapat 0:984643af7d81 163
krishanprajapat 0:984643af7d81 164 else{
krishanprajapat 0:984643af7d81 165 snd_tm.transmit_data(buffer_112,&last_buffer);
krishanprajapat 0:984643af7d81 166 }
krishanprajapat 0:984643af7d81 167 }
krishanprajapat 0:984643af7d81 168 }
krishanprajapat 0:984643af7d81 169
krishanprajapat 0:984643af7d81 170
krishanprajapat 0:984643af7d81 171 void send_data(void){
krishanprajapat 0:984643af7d81 172
krishanprajapat 0:984643af7d81 173 cs_adf=0;
krishanprajapat 0:984643af7d81 174 adf.write(0xBB);
krishanprajapat 0:984643af7d81 175 cs_adf=1;
krishanprajapat 0:984643af7d81 176 // wait_us(300);
krishanprajapat 0:984643af7d81 177
krishanprajapat 0:984643af7d81 178 cs_adf=0;
krishanprajapat 0:984643af7d81 179 adf.write(0xFF);
krishanprajapat 0:984643af7d81 180 adf.write(0xFF);
krishanprajapat 0:984643af7d81 181 cs_adf=1;
krishanprajapat 0:984643af7d81 182 // wait_ms(2);
krishanprajapat 0:984643af7d81 183 if(sent_tmfrom_SDcard){
krishanprajapat 0:984643af7d81 184 send_tm_from_SD_card();
krishanprajapat 0:984643af7d81 185 }
krishanprajapat 0:984643af7d81 186 else{
krishanprajapat 0:984643af7d81 187 snd_tm.transmit_data(buffer_112,&last_buffer);
krishanprajapat 0:984643af7d81 188 }
krishanprajapat 0:984643af7d81 189 write_data();
krishanprajapat 0:984643af7d81 190 if(sent_tmfrom_SDcard)
krishanprajapat 0:984643af7d81 191 {
krishanprajapat 0:984643af7d81 192 send_tm_from_SD_card();
krishanprajapat 0:984643af7d81 193 }
krishanprajapat 0:984643af7d81 194 else
krishanprajapat 0:984643af7d81 195 {
krishanprajapat 0:984643af7d81 196 snd_tm.transmit_data(buffer_112,&last_buffer);
krishanprajapat 0:984643af7d81 197 }
krishanprajapat 0:984643af7d81 198 write_data();
krishanprajapat 0:984643af7d81 199 if(sent_tmfrom_SDcard)
krishanprajapat 0:984643af7d81 200 {
krishanprajapat 0:984643af7d81 201 send_tm_from_SD_card();
krishanprajapat 0:984643af7d81 202 }
krishanprajapat 0:984643af7d81 203 else
krishanprajapat 0:984643af7d81 204 {
krishanprajapat 0:984643af7d81 205 snd_tm.transmit_data(buffer_112,&last_buffer);
krishanprajapat 0:984643af7d81 206 }
krishanprajapat 0:984643af7d81 207
krishanprajapat 0:984643af7d81 208 cs_adf=0;
krishanprajapat 0:984643af7d81 209 adf.write(0xB1);
krishanprajapat 0:984643af7d81 210 cs_adf=1;
krishanprajapat 0:984643af7d81 211 wait_us(300);
krishanprajapat 0:984643af7d81 212
krishanprajapat 0:984643af7d81 213 cs_adf=0;
krishanprajapat 0:984643af7d81 214 adf.write(0xFF);
krishanprajapat 0:984643af7d81 215 adf.write(0xFF);
krishanprajapat 0:984643af7d81 216 cs_adf=1;
krishanprajapat 0:984643af7d81 217 // wait_ms(2);
krishanprajapat 0:984643af7d81 218
krishanprajapat 0:984643af7d81 219 cs_adf=0;
krishanprajapat 0:984643af7d81 220 adf.write(0xB5);
krishanprajapat 0:984643af7d81 221 cs_adf=1;
krishanprajapat 0:984643af7d81 222 // cout<<"B5 given"<<ENDL;
krishanprajapat 0:984643af7d81 223 wait_us(300);
krishanprajapat 0:984643af7d81 224 // int b5=t.read_us();
krishanprajapat 0:984643af7d81 225 cs_adf=0;
krishanprajapat 0:984643af7d81 226 adf.write(0xFF);
krishanprajapat 0:984643af7d81 227 adf.write(0xFF);
krishanprajapat 0:984643af7d81 228 cs_adf=1;
krishanprajapat 0:984643af7d81 229 // wait_ms(2);
krishanprajapat 0:984643af7d81 230 ticker.attach_us(&check,32000);
krishanprajapat 0:984643af7d81 231
krishanprajapat 0:984643af7d81 232 while(!transmission_done){
krishanprajapat 0:984643af7d81 233 led2=!led2;
krishanprajapat 0:984643af7d81 234 wait(.1);
krishanprajapat 0:984643af7d81 235 }
krishanprajapat 0:984643af7d81 236
krishanprajapat 0:984643af7d81 237 }
krishanprajapat 0:984643af7d81 238
krishanprajapat 0:984643af7d81 239
krishanprajapat 0:984643af7d81 240
krishanprajapat 0:984643af7d81 241 void inline adf_SND_SDCard(uint64_t x,uint64_t y ){
krishanprajapat 0:984643af7d81 242 start_block_num = x;
krishanprajapat 0:984643af7d81 243 end_block_num = y;
krishanprajapat 0:984643af7d81 244 sent_tmfrom_SDcard = true;
krishanprajapat 0:984643af7d81 245 adf.format(8,0);
krishanprajapat 0:984643af7d81 246 adf.frequency(1000000);
krishanprajapat 0:984643af7d81 247
krishanprajapat 0:984643af7d81 248 bbram_write();
krishanprajapat 0:984643af7d81 249 initiate();
krishanprajapat 0:984643af7d81 250 send_data();
krishanprajapat 0:984643af7d81 251
krishanprajapat 0:984643af7d81 252 }
krishanprajapat 0:984643af7d81 253
krishanprajapat 0:984643af7d81 254 void read_TC(TC_list* TC_ptr){
krishanprajapat 0:984643af7d81 255 unsigned char service_subtype = 0;
krishanprajapat 0:984643af7d81 256 uint64_t starting_add = 0, ending_add = 0;
krishanprajapat 0:984643af7d81 257 service_subtype = (TC_ptr->TC_string[2])&0x0f;
krishanprajapat 0:984643af7d81 258 starting_add = (TC_ptr->TC_string[5]) + ( (TC_ptr->TC_string[4])<<8 ) + ( (TC_ptr->TC_string[3]) <<16);
krishanprajapat 0:984643af7d81 259 ending_add = (TC_ptr->TC_string[8]) + ( (TC_ptr->TC_string[7])<<8 ) + ( (TC_ptr->TC_string[6]) <<16);
krishanprajapat 0:984643af7d81 260 adf_SND_SDCard(starting_add , ending_add);
krishanprajapat 0:984643af7d81 261 }
krishanprajapat 0:984643af7d81 262
krishanprajapat 0:984643af7d81 263
krishanprajapat 0:984643af7d81 264 void adf_not_SDcard(){
krishanprajapat 0:984643af7d81 265 adf.format(8,0);
krishanprajapat 0:984643af7d81 266 adf.frequency(1000000);
krishanprajapat 0:984643af7d81 267 sent_tmfrom_SDcard = false;
krishanprajapat 0:984643af7d81 268
krishanprajapat 0:984643af7d81 269 bbram_write();
krishanprajapat 0:984643af7d81 270 initiate();
krishanprajapat 0:984643af7d81 271 send_data();
krishanprajapat 0:984643af7d81 272
krishanprajapat 0:984643af7d81 273 }
krishanprajapat 0:984643af7d81 274