krishan prajapat
/
adfHeadercombining
lele
adfHeader.h@0:984643af7d81, 2015-07-31 (annotated)
- Committer:
- krishanprajapat
- Date:
- Fri Jul 31 12:30:28 2015 +0000
- Revision:
- 0:984643af7d81
bro was working .......next step to reducr 2 sframes and eos to 1
Who changed what in which revision?
User | Revision | Line number | New 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 |