ADF7023-mbed

Dependencies:   mbed

Committer:
dheerajmpai23
Date:
Thu Jul 09 06:46:10 2015 +0000
Revision:
3:09638e7d0923
Parent:
2:9958a83be730
FOr Publishing

Who changed what in which revision?

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