for publishing

Dependencies:   mbed

main.cpp

Committer:
dheerajmpai23
Date:
2015-07-01
Revision:
0:f22e17465b15

File content as of revision 0:f22e17465b15:

//Krishans Code using Timer

#include "mbed.h"
#define ENDL "\r" << endl
#include<iostream>
DigitalOut led(LED_RED);
DigitalOut CS(D10);
Timer t;
float a= 0.046666666;
int i=0,j=2;
SPI adf(PTA16, PTA17, PTA15); // mosi, miso, sclk
 
unsigned int data[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
void bbram_write()
{   
    CS=0;
    // To bring in off state
    adf.write(0xB0);
    wait(0.1);
    CS=1;
    
    // Write bbram
    CS=0;
    adf.write(0x19);
    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(0x33);
    adf.write(0x00);
    adf.write(0xF4);
    
    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=1;
    wait(0.1);
    
    // Testmode register
    CS=0;
    adf.write(0x09);
    adf.write(0x39);
    adf.write(0x10);
    CS=1;
    wait(0.1);
    
    //CMD_CONFIG_DEV
    CS=0;
    adf.write(0xBB);
    CS=1;
    wait(0.1);
    CS=0;
    adf.write(0xFF);
    adf.write(0xFF);
    CS=1;
    wait(0.1);    
}
 
void data_write()
{
     // PHY_ON
    CS=0;
    adf.write(0xB1);
    CS=1;
    wait(0.1);
    CS=0;
    adf.write(0xFF);
    adf.write(0xFF);
    CS=1;
    wait(0.1);
    // TRANSMIT_DATA LENGTH
    CS=0;
    adf.write(0x08);
    adf.write(0x14);
    adf.write(0xC0);
    CS=1;
    wait(0.1);
    CS=0;
    adf.write(0x08);
    adf.write(0x15);
    adf.write(0x01);
    CS=1;
    wait(0.1);
    // TX_BASE ADDRESS
    CS=0;
    adf.write(0x09);
    adf.write(0x24);
    adf.write(0x20);
    CS=1;
    wait(0.1);
    // BUFFER SIZE
    CS=0;
    adf.write(0x09);
    adf.write(0x37);
    adf.write(0xE0);
    CS=1;
    wait(0.1);
    CS=0;
    adf.write(0x09);
    adf.write(0x36);
    adf.write(0x70);
    CS=1;
    wait(0.1);
    // PACKET WRITE
    
    CS=0;
    adf.write(0x18);
    adf.write(0x20);
    for(i=0;i<224;i++)
    {
         adf.write(data[i]);   
         cout<<"kkkkkk"<<data[i]<<ENDL;
         wait_us(1);
    }
    CS=1;
    
    
    
    // TX MODE
    CS=0;
    adf.write(0xB5);
    t.start();
    
    CS=1;
    while(1){
//    wait_us(46666);
    cout<<"in while"<<ENDL;
    
    if(t.read_us()>=46666*(j-1))
    {
//        cout<<"in if1"<<ENDL;
//    cout<<"time= "<<t.read_us()<<ENDL;
        cout<<t.read_us()<<ENDL;
        CS=0;
        if(!(j%2))
        {    cout<<"in if2"<<ENDL;
             adf.write(0x18);
             adf.write(0x20);
        }
        else
        {
            adf.write(0x18);
            adf.write(0x90);
            
            }
        
            for(i=112*j;i<112*(j+1);i++)
            {
                 adf.write(data[i]);
//                 cout<<"in for i= "<<i<<"_"<<data[i]<<"_"<<t.read_us()<<ENDL;
                    
            }
        CS=1;    
        j++;
        
        if(j==4)  
        break;
        
        if(t.read()>1.3)
        break;
     }
    } 
    
}
 
 
 
int main()
{
    cout<<"in the main"<<ENDL;
    bbram_write();
    cout<<"bbram written"<<ENDL;
    data_write();
    
}