ADF7023-mbed

Dependencies:   mbed

Committer:
dheerajmpai23
Date:
Thu Jul 09 06:42:51 2015 +0000
Revision:
0:7270d2dd2213
For Publishing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dheerajmpai23 0:7270d2dd2213 1 #include "mbed.h"
dheerajmpai23 0:7270d2dd2213 2 #define ENDL "\r" << endl
dheerajmpai23 0:7270d2dd2213 3 #include<iostream>
dheerajmpai23 0:7270d2dd2213 4
dheerajmpai23 0:7270d2dd2213 5 using namespace std;
dheerajmpai23 0:7270d2dd2213 6 DigitalOut led(LED_RED);
dheerajmpai23 0:7270d2dd2213 7 DigitalOut CS(D10);
dheerajmpai23 0:7270d2dd2213 8 InterruptIn IRQ();
dheerajmpai23 0:7270d2dd2213 9
dheerajmpai23 0:7270d2dd2213 10 SPI adf(PTD6, PTD7, PTD5); // mosi, miso, sclk
dheerajmpai23 0:7270d2dd2213 11
dheerajmpai23 0:7270d2dd2213 12
dheerajmpai23 0:7270d2dd2213 13 void bbram_write()
dheerajmpai23 0:7270d2dd2213 14 {
dheerajmpai23 0:7270d2dd2213 15 CS=0;
dheerajmpai23 0:7270d2dd2213 16 // To bring in off state
dheerajmpai23 0:7270d2dd2213 17 adf.write(0xB0);
dheerajmpai23 0:7270d2dd2213 18 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 19 CS=1;
dheerajmpai23 0:7270d2dd2213 20
dheerajmpai23 0:7270d2dd2213 21 // Write bbram
dheerajmpai23 0:7270d2dd2213 22 CS=0;
dheerajmpai23 0:7270d2dd2213 23 adf.write(0x19);
dheerajmpai23 0:7270d2dd2213 24 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 25 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 26 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 27
dheerajmpai23 0:7270d2dd2213 28 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 29 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 30 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 31 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 32
dheerajmpai23 0:7270d2dd2213 33 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 34 adf.write(0x33);
dheerajmpai23 0:7270d2dd2213 35 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 36 adf.write(0xF4);
dheerajmpai23 0:7270d2dd2213 37
dheerajmpai23 0:7270d2dd2213 38 adf.write(0xC2);
dheerajmpai23 0:7270d2dd2213 39 adf.write(0x10);
dheerajmpai23 0:7270d2dd2213 40 adf.write(0xC0);
dheerajmpai23 0:7270d2dd2213 41 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 42
dheerajmpai23 0:7270d2dd2213 43 adf.write(0x30);
dheerajmpai23 0:7270d2dd2213 44 adf.write(0x31);
dheerajmpai23 0:7270d2dd2213 45 adf.write(0x07);
dheerajmpai23 0:7270d2dd2213 46 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 47
dheerajmpai23 0:7270d2dd2213 48 adf.write(0x01);
dheerajmpai23 0:7270d2dd2213 49 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 50 adf.write(0x7F);
dheerajmpai23 0:7270d2dd2213 51 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 52
dheerajmpai23 0:7270d2dd2213 53 adf.write(0x0B);
dheerajmpai23 0:7270d2dd2213 54 adf.write(0x37);
dheerajmpai23 0:7270d2dd2213 55 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 56 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 57
dheerajmpai23 0:7270d2dd2213 58 adf.write(0x40);
dheerajmpai23 0:7270d2dd2213 59 adf.write(0x0C);
dheerajmpai23 0:7270d2dd2213 60 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 61 adf.write(0x05);
dheerajmpai23 0:7270d2dd2213 62
dheerajmpai23 0:7270d2dd2213 63 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 64 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 65 adf.write(0x18);
dheerajmpai23 0:7270d2dd2213 66 adf.write(0x12);
dheerajmpai23 0:7270d2dd2213 67
dheerajmpai23 0:7270d2dd2213 68 adf.write(0x34);
dheerajmpai23 0:7270d2dd2213 69 adf.write(0x56);
dheerajmpai23 0:7270d2dd2213 70 adf.write(0x10);
dheerajmpai23 0:7270d2dd2213 71 adf.write(0x10);
dheerajmpai23 0:7270d2dd2213 72
dheerajmpai23 0:7270d2dd2213 73 adf.write(0xC4); // Different
dheerajmpai23 0:7270d2dd2213 74 adf.write(0x14);
dheerajmpai23 0:7270d2dd2213 75 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 76 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 77
dheerajmpai23 0:7270d2dd2213 78 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 79 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 80 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 81 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 82
dheerajmpai23 0:7270d2dd2213 83 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 84 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 85 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 86 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 87
dheerajmpai23 0:7270d2dd2213 88 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 89 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 90 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 91 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 92
dheerajmpai23 0:7270d2dd2213 93 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 94 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 95 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 96 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 97
dheerajmpai23 0:7270d2dd2213 98 adf.write(0x04);
dheerajmpai23 0:7270d2dd2213 99 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 100 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 101 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 102
dheerajmpai23 0:7270d2dd2213 103 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 104 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 105 CS=1;
dheerajmpai23 0:7270d2dd2213 106 wait(1);
dheerajmpai23 0:7270d2dd2213 107
dheerajmpai23 0:7270d2dd2213 108 //CMD_CONFIG_DEV
dheerajmpai23 0:7270d2dd2213 109 CS=0;
dheerajmpai23 0:7270d2dd2213 110 adf.write(0xBB);
dheerajmpai23 0:7270d2dd2213 111 CS=1;
dheerajmpai23 0:7270d2dd2213 112 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 113
dheerajmpai23 0:7270d2dd2213 114
dheerajmpai23 0:7270d2dd2213 115 }
dheerajmpai23 0:7270d2dd2213 116
dheerajmpai23 0:7270d2dd2213 117
dheerajmpai23 0:7270d2dd2213 118 void initiate_rolling_buffer(void){
dheerajmpai23 0:7270d2dd2213 119 // Testmode register
dheerajmpai23 0:7270d2dd2213 120 CS=0;
dheerajmpai23 0:7270d2dd2213 121 adf.write(0x09);
dheerajmpai23 0:7270d2dd2213 122 adf.write(0x39);
dheerajmpai23 0:7270d2dd2213 123 adf.write(0x10);
dheerajmpai23 0:7270d2dd2213 124 CS=1;
dheerajmpai23 0:7270d2dd2213 125 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 126
dheerajmpai23 0:7270d2dd2213 127 //CMD_CONFIG_DEV
dheerajmpai23 0:7270d2dd2213 128 CS=0;
dheerajmpai23 0:7270d2dd2213 129 adf.write(0xBB);
dheerajmpai23 0:7270d2dd2213 130 CS=1;
dheerajmpai23 0:7270d2dd2213 131 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 132
dheerajmpai23 0:7270d2dd2213 133 //Status ReadBack
dheerajmpai23 0:7270d2dd2213 134 CS=0;
dheerajmpai23 0:7270d2dd2213 135 adf.write(0xFF);
dheerajmpai23 0:7270d2dd2213 136 adf.write(0xFF);
dheerajmpai23 0:7270d2dd2213 137 CS=1;
dheerajmpai23 0:7270d2dd2213 138 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 139
dheerajmpai23 0:7270d2dd2213 140 // PHY_Off
dheerajmpai23 0:7270d2dd2213 141 CS=0;
dheerajmpai23 0:7270d2dd2213 142 adf.write(0xB0);
dheerajmpai23 0:7270d2dd2213 143 CS=1;
dheerajmpai23 0:7270d2dd2213 144 wait(0.1);
dheerajmpai23 0:7270d2dd2213 145 CS=0;
dheerajmpai23 0:7270d2dd2213 146 adf.write(0xFF);
dheerajmpai23 0:7270d2dd2213 147 adf.write(0xFF);
dheerajmpai23 0:7270d2dd2213 148 CS=1;
dheerajmpai23 0:7270d2dd2213 149 wait(0.1);
dheerajmpai23 0:7270d2dd2213 150
dheerajmpai23 0:7270d2dd2213 151 // TRANSMIT_DATA LENGTH
dheerajmpai23 0:7270d2dd2213 152 CS=0;
dheerajmpai23 0:7270d2dd2213 153 adf.write(0x08);
dheerajmpai23 0:7270d2dd2213 154 adf.write(0x14);
dheerajmpai23 0:7270d2dd2213 155 adf.write(0x05);//<--------Changed fromm FF to 05
dheerajmpai23 0:7270d2dd2213 156 CS=1;
dheerajmpai23 0:7270d2dd2213 157 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 158 CS=0;
dheerajmpai23 0:7270d2dd2213 159 adf.write(0x08);
dheerajmpai23 0:7270d2dd2213 160 adf.write(0x15);
dheerajmpai23 0:7270d2dd2213 161 adf.write(0x40);//<------------Changed frok FF to 40
dheerajmpai23 0:7270d2dd2213 162 CS=1;
dheerajmpai23 0:7270d2dd2213 163 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 164 // TX_BASE ADDRESS
dheerajmpai23 0:7270d2dd2213 165 CS=0;
dheerajmpai23 0:7270d2dd2213 166 adf.write(0x09);
dheerajmpai23 0:7270d2dd2213 167 adf.write(0x24);
dheerajmpai23 0:7270d2dd2213 168 adf.write(0x20);
dheerajmpai23 0:7270d2dd2213 169 CS=1;
dheerajmpai23 0:7270d2dd2213 170 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 171 // BUFFER SIZE
dheerajmpai23 0:7270d2dd2213 172 CS=0;
dheerajmpai23 0:7270d2dd2213 173 adf.write(0x09);
dheerajmpai23 0:7270d2dd2213 174 adf.write(0x37);
dheerajmpai23 0:7270d2dd2213 175 adf.write(0xE0);
dheerajmpai23 0:7270d2dd2213 176 CS=1;
dheerajmpai23 0:7270d2dd2213 177 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 178 CS=0;
dheerajmpai23 0:7270d2dd2213 179 adf.write(0x09);
dheerajmpai23 0:7270d2dd2213 180 adf.write(0x36);
dheerajmpai23 0:7270d2dd2213 181 adf.write(0x70);
dheerajmpai23 0:7270d2dd2213 182 CS=1;
dheerajmpai23 0:7270d2dd2213 183 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 184 }
dheerajmpai23 0:7270d2dd2213 185
dheerajmpai23 0:7270d2dd2213 186 void data_write()
dheerajmpai23 0:7270d2dd2213 187 {
dheerajmpai23 0:7270d2dd2213 188 CS=0;
dheerajmpai23 0:7270d2dd2213 189 adf.write(0xB1);
dheerajmpai23 0:7270d2dd2213 190 CS=1;
dheerajmpai23 0:7270d2dd2213 191 wait_ms(2);
dheerajmpai23 0:7270d2dd2213 192
dheerajmpai23 0:7270d2dd2213 193 CS=0;
dheerajmpai23 0:7270d2dd2213 194 adf.write(0xB5);
dheerajmpai23 0:7270d2dd2213 195 CS=1;
dheerajmpai23 0:7270d2dd2213 196 wait_ms(20);
dheerajmpai23 0:7270d2dd2213 197
dheerajmpai23 0:7270d2dd2213 198 }
dheerajmpai23 0:7270d2dd2213 199 // while(1)
dheerajmpai23 0:7270d2dd2213 200 // {
dheerajmpai23 0:7270d2dd2213 201 // pool_irq();
dheerajmpai23 0:7270d2dd2213 202 // CS=0;
dheerajmpai23 0:7270d2dd2213 203 // adf.write(0x2B);
dheerajmpai23 0:7270d2dd2213 204 // adf.write(0x36);
dheerajmpai23 0:7270d2dd2213 205 // int irq1 = adf.write(0xFF);
dheerajmpai23 0:7270d2dd2213 206 // int irq2 = adf.write(0xFF);
dheerajmpai23 0:7270d2dd2213 207 // CS=1;
dheerajmpai23 0:7270d2dd2213 208 // wait_us(500);
dheerajmpai23 0:7270d2dd2213 209 // cout<<irq1<<"/t"<<irq2<<ENDL;
dheerajmpai23 0:7270d2dd2213 210 // }
dheerajmpai23 0:7270d2dd2213 211
dheerajmpai23 0:7270d2dd2213 212 }
dheerajmpai23 0:7270d2dd2213 213
dheerajmpai23 0:7270d2dd2213 214
dheerajmpai23 0:7270d2dd2213 215
dheerajmpai23 0:7270d2dd2213 216
dheerajmpai23 0:7270d2dd2213 217 int reply1 =0;//Temp
dheerajmpai23 0:7270d2dd2213 218 int reply2 =0;//TEMP
dheerajmpai23 0:7270d2dd2213 219 void temp_read_all(void){
dheerajmpai23 0:7270d2dd2213 220
dheerajmpai23 0:7270d2dd2213 221 adf.write(0x29);
dheerajmpai23 0:7270d2dd2213 222 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 223 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 224 reply1adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 225 adf.write(0xFF);
dheerajmpai23 0:7270d2dd2213 226 adf.write(0xFF);
dheerajmpai23 0:7270d2dd2213 227
dheerajmpai23 0:7270d2dd2213 228 cout<<""<<reply1<<""<<reply2<<ENDL;
dheerajmpai23 0:7270d2dd2213 229
dheerajmpai23 0:7270d2dd2213 230
dheerajmpai23 0:7270d2dd2213 231 adf.write();
dheerajmpai23 0:7270d2dd2213 232 adf.write();
dheerajmpai23 0:7270d2dd2213 233 adf.write();
dheerajmpai23 0:7270d2dd2213 234 adf.write();
dheerajmpai23 0:7270d2dd2213 235 adf.write();
dheerajmpai23 0:7270d2dd2213 236 adf.write();
dheerajmpai23 0:7270d2dd2213 237
dheerajmpai23 0:7270d2dd2213 238 cout<<""<<reply1<<""<<reply2<<ENDL;
dheerajmpai23 0:7270d2dd2213 239 }
dheerajmpai23 0:7270d2dd2213 240 void temp_read_irqsrc(void){
dheerajmpai23 0:7270d2dd2213 241
dheerajmpai23 0:7270d2dd2213 242 adf.write();//Read 0x336
dheerajmpai23 0:7270d2dd2213 243 status read1 = adf.write();
dheerajmpai23 0:7270d2dd2213 244 status read2 = adf.write();
dheerajmpai23 0:7270d2dd2213 245 irq336 = adf.write();
dheerajmpai23 0:7270d2dd2213 246 adf.write();
dheerajmpai23 0:7270d2dd2213 247
dheerajmpai23 0:7270d2dd2213 248 irq336 &= 0x60;
dheerajmpai23 0:7270d2dd2213 249
dheerajmpai23 0:7270d2dd2213 250 if (irq336 == 0x40){
dheerajmpai23 0:7270d2dd2213 251
dheerajmpai23 0:7270d2dd2213 252 tx_half();
dheerajmpai23 0:7270d2dd2213 253 put_irq_zero();
dheerajmpai23 0:7270d2dd2213 254
dheerajmpai23 0:7270d2dd2213 255 }
dheerajmpai23 0:7270d2dd2213 256 else if (irq336 == 0x20){
dheerajmpai23 0:7270d2dd2213 257
dheerajmpai23 0:7270d2dd2213 258 tx_full();
dheerajmpai23 0:7270d2dd2213 259 put_irq_zero();
dheerajmpai23 0:7270d2dd2213 260
dheerajmpai23 0:7270d2dd2213 261 }
dheerajmpai23 0:7270d2dd2213 262 else if (irq336 == 0x00){
dheerajmpai23 0:7270d2dd2213 263 cout<<"error due to other interrupts"<<ENDL;
dheerajmpai23 0:7270d2dd2213 264 put_irq_zero();
dheerajmpai23 0:7270d2dd2213 265 }
dheerajmpai23 0:7270d2dd2213 266 else
dheerajmpai23 0:7270d2dd2213 267 cout<<"Bitwise and not working check your code"<<ENDL;
dheerajmpai23 0:7270d2dd2213 268 }
dheerajmpai23 0:7270d2dd2213 269
dheerajmpai23 0:7270d2dd2213 270 void put_irq_zero(void){
dheerajmpai23 0:7270d2dd2213 271
dheerajmpai23 0:7270d2dd2213 272
dheerajmpai23 0:7270d2dd2213 273 adf.write(0x0B);
dheerajmpai23 0:7270d2dd2213 274 adf.write(0x36);
dheerajmpai23 0:7270d2dd2213 275 adf.write(0x00);
dheerajmpai23 0:7270d2dd2213 276 adf.write(0x37);
dheerajmpai23 0:7270d2dd2213 277 adf.write(0x00);//incase not written write multiple times
dheerajmpai23 0:7270d2dd2213 278 // temp_read_all();
dheerajmpai23 0:7270d2dd2213 279 }
dheerajmpai23 0:7270d2dd2213 280
dheerajmpai23 0:7270d2dd2213 281
dheerajmpai23 0:7270d2dd2213 282
dheerajmpai23 0:7270d2dd2213 283
dheerajmpai23 0:7270d2dd2213 284 int main()
dheerajmpai23 0:7270d2dd2213 285 {
dheerajmpai23 0:7270d2dd2213 286 adf.format(8,0);
dheerajmpai23 0:7270d2dd2213 287 adf.frequency(1000000);
dheerajmpai23 0:7270d2dd2213 288 bbram_write();
dheerajmpai23 0:7270d2dd2213 289 data_write();
dheerajmpai23 0:7270d2dd2213 290 while(true){
dheerajmpai23 0:7270d2dd2213 291 temp_read_all();
dheerajmpai23 0:7270d2dd2213 292 }