ADF7023-mbed

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
dheerajmpai23
Date:
Thu Jul 09 06:42:51 2015 +0000
Commit message:
For Publishing

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 7270d2dd2213 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jul 09 06:42:51 2015 +0000
@@ -0,0 +1,292 @@
+#include "mbed.h"
+#define ENDL "\r" << endl
+#include<iostream>
+
+using namespace std;
+DigitalOut led(LED_RED);
+DigitalOut CS(D10);
+InterruptIn IRQ();
+
+SPI adf(PTD6, PTD7, PTD5); // mosi, miso, sclk
+
+
+void bbram_write()
+{   
+    CS=0;
+    // To bring in off state
+    adf.write(0xB0);
+    wait_ms(2);
+    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(1);
+    
+  //CMD_CONFIG_DEV  
+    CS=0;
+    adf.write(0xBB);
+    CS=1;
+    wait_ms(2);
+    
+    
+}
+
+
+void initiate_rolling_buffer(void){
+    // Testmode register
+    CS=0;
+    adf.write(0x09);
+    adf.write(0x39);
+    adf.write(0x10);
+    CS=1;
+    wait_ms(2);
+    
+    //CMD_CONFIG_DEV
+    CS=0;
+    adf.write(0xBB);
+    CS=1;
+    wait_ms(2);
+    
+    //Status ReadBack
+    CS=0;
+    adf.write(0xFF);
+    adf.write(0xFF);
+    CS=1;
+    wait_ms(2);    
+    
+     // PHY_Off
+    CS=0;
+    adf.write(0xB0);
+    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(0x05);//<--------Changed fromm FF to 05
+    CS=1;
+    wait_ms(2);
+    CS=0;
+    adf.write(0x08);
+    adf.write(0x15);
+    adf.write(0x40);//<------------Changed frok FF to 40
+    CS=1;
+    wait_ms(2);
+    // TX_BASE ADDRESS
+    CS=0;
+    adf.write(0x09);
+    adf.write(0x24);
+    adf.write(0x20);
+    CS=1;
+    wait_ms(2);
+    // BUFFER SIZE
+    CS=0;
+    adf.write(0x09);
+    adf.write(0x37);
+    adf.write(0xE0);
+    CS=1;
+    wait_ms(2);
+    CS=0;
+    adf.write(0x09);
+    adf.write(0x36);
+    adf.write(0x70);
+    CS=1;
+    wait_ms(2);
+    }
+
+void data_write()
+{
+    CS=0;
+    adf.write(0xB1);
+    CS=1;
+    wait_ms(2);
+    
+    CS=0;
+    adf.write(0xB5);
+    CS=1;
+    wait_ms(20);    
+    
+}    
+//    while(1)
+//    {
+//        pool_irq();
+//        CS=0;
+//         adf.write(0x2B);
+//         adf.write(0x36);
+//    int irq1 = adf.write(0xFF);
+//    int irq2 = adf.write(0xFF);
+//         CS=1;    
+//         wait_us(500);
+//         cout<<irq1<<"/t"<<irq2<<ENDL; 
+//    }
+    
+}
+
+
+
+
+int reply1 =0;//Temp
+int reply2 =0;//TEMP
+void temp_read_all(void){
+    
+    adf.write(0x29);
+    adf.write(0x00);
+    adf.write(0x00);
+    reply1adf.write(0x00);
+    adf.write(0xFF);
+    adf.write(0xFF);
+    
+    cout<<""<<reply1<<""<<reply2<<ENDL;
+ 
+ 
+    adf.write();
+    adf.write();
+    adf.write();
+    adf.write();
+    adf.write();
+    adf.write();
+    
+    cout<<""<<reply1<<""<<reply2<<ENDL;   
+    }
+void temp_read_irqsrc(void){
+    
+    adf.write();//Read 0x336
+    status read1 = adf.write();
+    status read2 = adf.write();
+    irq336 = adf.write();
+    adf.write();
+
+    irq336 &=  0x60;
+    
+    if (irq336 == 0x40){
+        
+        tx_half();
+        put_irq_zero();
+        
+        }
+    else if (irq336 == 0x20){
+        
+        tx_full();
+        put_irq_zero();
+        
+        }    
+    else if (irq336 == 0x00){
+        cout<<"error due to other interrupts"<<ENDL;
+        put_irq_zero();
+        }
+    else
+    cout<<"Bitwise and not working check your code"<<ENDL;
+    }
+
+void put_irq_zero(void){
+    
+    
+    adf.write(0x0B);
+    adf.write(0x36);
+    adf.write(0x00);
+    adf.write(0x37);
+    adf.write(0x00);//incase not written write multiple times
+//    temp_read_all();
+    }
+
+    
+
+
+int main()
+{
+    adf.format(8,0);
+    adf.frequency(1000000);
+    bbram_write();
+    data_write();
+    while(true){
+    temp_read_all();
+}
\ No newline at end of file
diff -r 000000000000 -r 7270d2dd2213 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Jul 09 06:42:51 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/7cff1c4259d7
\ No newline at end of file