Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
adf.h
00001 #define START_ADDRESS 0x020; 00002 00003 00004 SPI adf(PTA16, PTA17, PTA15); //MOSI, MISO, CLOCK 00005 DigitalOut cs_adf(D10); 00006 DigitalOut led2(LED_RED); 00007 InterruptIn IRQ(D8); 00008 Ticker ticker; 00009 int t1,t2; // remove 00010 unsigned char d = 0,c=1; 00011 int x = IRQ; 00012 unsigned char k = 0; 00013 bool transmission_done = false; 00014 00015 void bbram_write() 00016 { 00017 cs_adf=0; 00018 adf.write(0xB0);//PHY_OFF 00019 wait_us(300); 00020 cs_adf=1; 00021 00022 // Write bbram 00023 cs_adf=0; 00024 adf.write(0x19); 00025 adf.write(0x00); 00026 adf.write(0x60); 00027 adf.write(0x00); 00028 00029 adf.write(0x00); 00030 adf.write(0x00); 00031 adf.write(0x00); 00032 adf.write(0x00); 00033 00034 adf.write(0x00); 00035 adf.write(0x33); 00036 adf.write(0x00); 00037 adf.write(0xF4);//Frequency Register F9 = 435.802 MHz F4 = 435.800 MHz 00038 00039 adf.write(0xC2); 00040 adf.write(0x10); 00041 adf.write(0xC0); 00042 adf.write(0x00); 00043 00044 adf.write(0x30); 00045 adf.write(0x31); 00046 adf.write(0x07); 00047 adf.write(0x00); 00048 00049 adf.write(0x01); 00050 adf.write(0x00); 00051 adf.write(0x7F); 00052 adf.write(0x00); 00053 00054 adf.write(0x0B); 00055 adf.write(0x37); 00056 adf.write(0x00); 00057 adf.write(0x00); 00058 00059 adf.write(0x40); 00060 adf.write(0x0C); 00061 adf.write(0x00); 00062 adf.write(0x05); 00063 00064 adf.write(0x00); 00065 adf.write(0x00); 00066 adf.write(0x18); 00067 adf.write(0x12); 00068 00069 adf.write(0x34); 00070 adf.write(0x56); 00071 adf.write(0x10); 00072 adf.write(0x10); 00073 00074 adf.write(0xC4); // Different 00075 adf.write(0x14); 00076 adf.write(0x00); 00077 adf.write(0x00); 00078 00079 adf.write(0x00); 00080 adf.write(0x00); 00081 adf.write(0x00); 00082 adf.write(0x00); 00083 00084 adf.write(0x00); 00085 adf.write(0x00); 00086 adf.write(0x00); 00087 adf.write(0x00); 00088 00089 adf.write(0x00); 00090 adf.write(0x00); 00091 adf.write(0x00); 00092 adf.write(0x00); 00093 00094 adf.write(0x00); 00095 adf.write(0x00); 00096 adf.write(0x00); 00097 adf.write(0x00); 00098 00099 adf.write(0x04); 00100 adf.write(0x00); 00101 adf.write(0x00); 00102 adf.write(0x00); 00103 00104 adf.write(0x00); 00105 adf.write(0x00); 00106 cs_adf=1; 00107 // wait(1); 00108 00109 } 00110 00111 00112 /******************************************************************************************/ 00113 00114 void initiate(void){ 00115 // printf("initiate"); 00116 cs_adf=0; 00117 adf.write(0xFF); 00118 adf.write(0xFF); 00119 cs_adf=1; 00120 // wait_ms(2); 00121 00122 cs_adf=0; 00123 adf.write(0x08); // TRANSMIT_DATA LENGTH 00124 adf.write(0x14); 00125 adf.write(0xFF); 00126 cs_adf=1; 00127 // wait_ms(2); 00128 cs_adf=0; 00129 adf.write(0x08); // TRANSMIT_DATA LENGTH 00130 adf.write(0x15); 00131 adf.write(0xFF); 00132 cs_adf=1; 00133 // wait_ms(2); 00134 00135 cs_adf=0; 00136 adf.write(0x09); 00137 adf.write(0x24); // TX_BASE ADDRESS 0x20(starting Tx Byte) 00138 adf.write(0x20); 00139 cs_adf=1; 00140 // wait_ms(2); 00141 00142 cs_adf=0; 00143 adf.write(0x09); 00144 adf.write(0x37);// BUFFER SIZE 0xE0=224 Bytes 0x137 is adress of buffer size 00145 adf.write(0xE0); 00146 cs_adf=1; 00147 // wait_ms(2); 00148 00149 cs_adf=0; 00150 adf.write(0x09); 00151 adf.write(0x36);//BB_Tx_Buffer Signal when Buffer is half filled 00152 adf.write(0x70);//0x70 = 112 >> When Half buffer interrupt is given 00153 cs_adf=1; 00154 // wait_ms(2); 00155 00156 00157 cs_adf=0; 00158 adf.write(0x09); 00159 adf.write(0x39);//BB_Tx_Buffer Signal when Buffer is half filled 00160 adf.write(0x10);//0x70 = 112 >> When Half buffer interrupt is given 00161 cs_adf=1; 00162 // wait_ms(2); 00163 } 00164 00165 00166 00167 void write_data(void){ 00168 00169 // wait_ms(0); 00170 cs_adf=0; 00171 adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF 00172 adf.write(0x36);//Address : 0x336 00173 adf.write(0xFF);//Put Low 00174 cs_adf=1; 00175 // wait_us(80); 00176 cs_adf=0; 00177 static bool first_2_time = true; 00178 k=0; 00179 00180 if(!first_2_time){ 00181 if(d==1 && last_buffer==false){ 00182 // cout<<"3"<<endl; 00183 adf.write(0x18); 00184 adf.write(0x20); 00185 00186 while(k<112){ 00187 adf.write(buffer_112[k]); 00188 k++; 00189 } 00190 d=2; 00191 } 00192 00193 00194 else if(d==2 && last_buffer==false){ 00195 // cout<<"4"<<endl; 00196 adf.write(0x18); 00197 adf.write(0x90); 00198 while(k<112) 00199 { 00200 adf.write(buffer_112[k]); 00201 k++; 00202 } 00203 d=1; 00204 00205 } 00206 00207 00208 } 00209 00210 if(first_2_time){ 00211 switch(c){ 00212 case 1: 00213 // cout<<"1"<<endl; 00214 adf.write(0x18); 00215 adf.write(0x20); 00216 while(k<112) 00217 { 00218 adf.write(buffer_112[k]); 00219 k++; 00220 } 00221 c++; 00222 break; 00223 00224 case 2: 00225 // cout<<"2"<<endl; 00226 adf.write(0x18); 00227 adf.write(0x90); 00228 while(k<112) 00229 { 00230 adf.write(buffer_112[k]); 00231 k++; 00232 } 00233 c++; 00234 d=1; 00235 first_2_time = false; 00236 break; 00237 } 00238 00239 } 00240 00241 00242 00243 if(last_buffer){ 00244 cs_adf=0; 00245 adf.write(0x18); 00246 adf.write(0x20); 00247 00248 while(k<112){ 00249 adf.write(buffer_112[k]); 00250 k++; 00251 } 00252 cs_adf=1; 00253 00254 ticker.detach(); 00255 cs_adf=0; 00256 adf.write(0xB1); 00257 cs_adf=1; 00258 printf("stopped"); 00259 cout<<"_"<<t1<<"_"<<t1<<"_"<<t1<<"_"<<t1<<"_"<<t1<<"_____________"<<t2<<"_"<<t2<<"_"<<t2<<"_"<<t2<<"_"<<t2<<"_"<<t2<<"_"<<t2<<endl; 00260 transmission_done=true; 00261 } 00262 00263 cs_adf=1; 00264 // wait_us(1); 00265 } 00266 00267 00268 00269 void check() 00270 { 00271 x = IRQ; 00272 // cout<<"t"<<endl; 00273 if(x){ 00274 // cout<<"if"<<endl; 00275 write_data(); 00276 00277 send_tm_from_SD_card(); 00278 00279 00280 00281 } 00282 } 00283 00284 void send_data(void){ 00285 00286 cs_adf=0; 00287 adf.write(0xBB); 00288 cs_adf=1; 00289 // wait_us(300); 00290 00291 cs_adf=0; 00292 adf.write(0xFF); 00293 adf.write(0xFF); 00294 cs_adf=1; 00295 // wait_ms(2); 00296 send_tm_from_SD_card(); 00297 // wait_ms(1); 00298 // for(int i=0; i<112;i++){ 00299 // printf("%02X ",buffer_112[i]); 00300 // } 00301 // printf("\n"); 00302 write_data(); 00303 // wait_ms(1); 00304 send_tm_from_SD_card(); 00305 // wait_ms(1); 00306 //for(int i=0; i<112;i++){ 00307 // printf("%02X ",buffer_112[i]); 00308 // } 00309 // printf("\n"); 00310 write_data(); 00311 send_tm_from_SD_card(); 00312 // for(int i=0; i<112;i++){ 00313 // printf("%02X ",buffer_112[i]); 00314 // } 00315 // printf("\n"); 00316 // snd_tm_from_SD_card(); 00317 // write_data(); 00318 // wait_ms(2); 00319 cs_adf=0; 00320 adf.write(0xB1); 00321 cs_adf=1; 00322 wait_us(300); 00323 00324 cs_adf=0; 00325 adf.write(0xFF); 00326 adf.write(0xFF); 00327 cs_adf=1; 00328 // wait_ms(2); 00329 cs_adf=0; 00330 adf.write(0xB5); 00331 cs_adf=1; 00332 00333 // cout<<"B5 given"<<endl; 00334 wait_us(300); 00335 // int b5=t.read_us(); 00336 cs_adf=0; 00337 adf.write(0xFF); 00338 adf.write(0xFF); 00339 cs_adf=1; 00340 // wait_ms(2); 00341 00342 ticker.attach_us(&check,32000); 00343 } 00344 00345 void adf_SND_SDCard(uint64_t x,uint64_t y ){ 00346 start_block_num = x; 00347 end_block_num = y; 00348 00349 adf.format(8,0); 00350 adf.frequency(1000000); 00351 // printf("yoyoyoyoyoyoyoyoyo "); 00352 // cout<<"ko"<<start_block_num<<"yo"<<endl; 00353 // printf("yoyoyoyoyoyoyoyoyo "); 00354 // printf("yoyoyoyoyoyoyoyoyo "); 00355 00356 00357 bbram_write(); 00358 initiate(); 00359 send_data(); 00360 00361 while(! transmission_done) 00362 { 00363 // printf("what the hell "); 00364 led2=!led2; 00365 wait(.1); 00366 } 00367 }
Generated on Mon Jul 18 2022 08:46:33 by
1.7.2