krishan prajapat
/
sd_card_making_header_sss2
v2.0 working
adf.h
- Committer:
- krishanprajapat
- Date:
- 2015-07-30
- Revision:
- 2:2b08032d9678
- Parent:
- 1:436d836f2b8e
File content as of revision 2:2b08032d9678:
#define START_ADDRESS 0x020; SPI adf(PTA16, PTA17, PTA15); //MOSI, MISO, CLOCK DigitalOut cs_adf(D10); DigitalOut led2(LED_RED); InterruptIn IRQ(D8); Ticker ticker; int t1,t2; // remove unsigned char d = 0,c=1; int x = IRQ; unsigned char k = 0; bool transmission_done = false; void bbram_write() { cs_adf=0; adf.write(0xB0);//PHY_OFF wait_us(300); cs_adf=1; // Write bbram cs_adf=0; adf.write(0x19); adf.write(0x00); adf.write(0x60); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x33); adf.write(0x00); adf.write(0xF4);//Frequency Register F9 = 435.802 MHz F4 = 435.800 MHz adf.write(0xC2); adf.write(0x10); adf.write(0xC0); adf.write(0x00); adf.write(0x30); adf.write(0x31); adf.write(0x07); adf.write(0x00); adf.write(0x01); adf.write(0x00); adf.write(0x7F); adf.write(0x00); adf.write(0x0B); adf.write(0x37); adf.write(0x00); adf.write(0x00); adf.write(0x40); adf.write(0x0C); adf.write(0x00); adf.write(0x05); adf.write(0x00); adf.write(0x00); adf.write(0x18); adf.write(0x12); adf.write(0x34); adf.write(0x56); adf.write(0x10); adf.write(0x10); adf.write(0xC4); // Different adf.write(0x14); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x04); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); cs_adf=1; // wait(1); } /******************************************************************************************/ void initiate(void){ // printf("initiate"); cs_adf=0; adf.write(0xFF); adf.write(0xFF); cs_adf=1; // wait_ms(2); cs_adf=0; adf.write(0x08); // TRANSMIT_DATA LENGTH adf.write(0x14); adf.write(0xFF); cs_adf=1; // wait_ms(2); cs_adf=0; adf.write(0x08); // TRANSMIT_DATA LENGTH adf.write(0x15); adf.write(0xFF); cs_adf=1; // wait_ms(2); cs_adf=0; adf.write(0x09); adf.write(0x24); // TX_BASE ADDRESS 0x20(starting Tx Byte) adf.write(0x20); cs_adf=1; // wait_ms(2); cs_adf=0; adf.write(0x09); adf.write(0x37);// BUFFER SIZE 0xE0=224 Bytes 0x137 is adress of buffer size adf.write(0xE0); cs_adf=1; // wait_ms(2); cs_adf=0; adf.write(0x09); adf.write(0x36);//BB_Tx_Buffer Signal when Buffer is half filled adf.write(0x70);//0x70 = 112 >> When Half buffer interrupt is given cs_adf=1; // wait_ms(2); cs_adf=0; adf.write(0x09); adf.write(0x39);//BB_Tx_Buffer Signal when Buffer is half filled adf.write(0x10);//0x70 = 112 >> When Half buffer interrupt is given cs_adf=1; // wait_ms(2); } void write_data(void){ // wait_ms(0); cs_adf=0; adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF adf.write(0x36);//Address : 0x336 adf.write(0xFF);//Put Low cs_adf=1; // wait_us(80); cs_adf=0; static bool first_2_time = true; k=0; if(!first_2_time){ if(d==1 && last_buffer==false){ // cout<<"3"<<endl; adf.write(0x18); adf.write(0x20); while(k<112){ adf.write(buffer_112[k]); k++; } d=2; } else if(d==2 && last_buffer==false){ // cout<<"4"<<endl; adf.write(0x18); adf.write(0x90); while(k<112) { adf.write(buffer_112[k]); k++; } d=1; } } if(first_2_time){ switch(c){ case 1: // cout<<"1"<<endl; adf.write(0x18); adf.write(0x20); while(k<112) { adf.write(buffer_112[k]); k++; } c++; break; case 2: // cout<<"2"<<endl; adf.write(0x18); adf.write(0x90); while(k<112) { adf.write(buffer_112[k]); k++; } c++; d=1; first_2_time = false; break; } } if(last_buffer){ cs_adf=0; adf.write(0x18); adf.write(0x20); while(k<112){ adf.write(buffer_112[k]); k++; } cs_adf=1; ticker.detach(); cs_adf=0; adf.write(0xB1); cs_adf=1; printf("stopped"); cout<<"_"<<t1<<"_"<<t1<<"_"<<t1<<"_"<<t1<<"_"<<t1<<"_____________"<<t2<<"_"<<t2<<"_"<<t2<<"_"<<t2<<"_"<<t2<<"_"<<t2<<"_"<<t2<<endl; transmission_done=true; } cs_adf=1; // wait_us(1); } void check() { x = IRQ; // cout<<"t"<<endl; if(x){ // cout<<"if"<<endl; write_data(); send_tm_from_SD_card(); } } void send_data(void){ cs_adf=0; adf.write(0xBB); cs_adf=1; // wait_us(300); cs_adf=0; adf.write(0xFF); adf.write(0xFF); cs_adf=1; // wait_ms(2); send_tm_from_SD_card(); // wait_ms(1); // for(int i=0; i<112;i++){ // printf("%02X ",buffer_112[i]); // } // printf("\n"); write_data(); // wait_ms(1); send_tm_from_SD_card(); // wait_ms(1); //for(int i=0; i<112;i++){ // printf("%02X ",buffer_112[i]); // } // printf("\n"); write_data(); send_tm_from_SD_card(); // for(int i=0; i<112;i++){ // printf("%02X ",buffer_112[i]); // } // printf("\n"); // snd_tm_from_SD_card(); // write_data(); // wait_ms(2); cs_adf=0; adf.write(0xB1); cs_adf=1; wait_us(300); cs_adf=0; adf.write(0xFF); adf.write(0xFF); cs_adf=1; // wait_ms(2); cs_adf=0; adf.write(0xB5); cs_adf=1; // cout<<"B5 given"<<endl; wait_us(300); // int b5=t.read_us(); cs_adf=0; adf.write(0xFF); adf.write(0xFF); cs_adf=1; // wait_ms(2); ticker.attach_us(&check,32000); } void adf_SND_SDCard(uint64_t x,uint64_t y ){ start_block_num = x; end_block_num = y; adf.format(8,0); adf.frequency(1000000); // printf("yoyoyoyoyoyoyoyoyo "); // cout<<"ko"<<start_block_num<<"yo"<<endl; // printf("yoyoyoyoyoyoyoyoyo "); // printf("yoyoyoyoyoyoyoyoyo "); bbram_write(); initiate(); send_data(); while(! transmission_done) { // printf("what the hell "); led2=!led2; wait(.1); } }