ADF7023

Dependencies:   mbed

Committer:
dheerajmpai23
Date:
Thu Jul 09 06:53:14 2015 +0000
Revision:
0:daa68006b0d9
PUBli

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dheerajmpai23 0:daa68006b0d9 1 #include "mbed.h"
dheerajmpai23 0:daa68006b0d9 2 #include <iostream>
dheerajmpai23 0:daa68006b0d9 3 using namespace std;
dheerajmpai23 0:daa68006b0d9 4 #include <bitset>
dheerajmpai23 0:daa68006b0d9 5
dheerajmpai23 0:daa68006b0d9 6 #define ENDL "\r" << endl;
dheerajmpai23 0:daa68006b0d9 7 #define START_ADDRESS 0x020;
dheerajmpai23 0:daa68006b0d9 8
dheerajmpai23 0:daa68006b0d9 9
dheerajmpai23 0:daa68006b0d9 10
dheerajmpai23 0:daa68006b0d9 11 //SPI
dheerajmpai23 0:daa68006b0d9 12
dheerajmpai23 0:daa68006b0d9 13 SPI adf(PTD6, PTD7, PTD5);
dheerajmpai23 0:daa68006b0d9 14 //MOSI, MISO, CLOCK
dheerajmpai23 0:daa68006b0d9 15
dheerajmpai23 0:daa68006b0d9 16 DigitalOut CS(D10);
dheerajmpai23 0:daa68006b0d9 17 Serial PC(USBTX, USBRX);
dheerajmpai23 0:daa68006b0d9 18 DigitalOut ledr(LED_RED);
dheerajmpai23 0:daa68006b0d9 19
dheerajmpai23 0:daa68006b0d9 20 #define SPI_NOP 0xFF
dheerajmpai23 0:daa68006b0d9 21 //
dheerajmpai23 0:daa68006b0d9 22 //enum con_type{ packet=0x18, bbram=0x19, mcr=0x1B, program=0x1E };
dheerajmpai23 0:daa68006b0d9 23 //enum discon_type{ packet2=0x08, bbram2=0x09, mcr2=0x0B };
dheerajmpai23 0:daa68006b0d9 24 //
dheerajmpai23 0:daa68006b0d9 25 //enum discon_type_RD{ packet3=0x28, bbram3=0x29, mcr3=0x2B };
dheerajmpai23 0:daa68006b0d9 26 //
dheerajmpai23 0:daa68006b0d9 27 // void write_con(con_type ram, uint8_t address, uint8_t *data, int length){
dheerajmpai23 0:daa68006b0d9 28 //
dheerajmpai23 0:daa68006b0d9 29 // int *response = new int[length];
dheerajmpai23 0:daa68006b0d9 30 //
dheerajmpai23 0:daa68006b0d9 31 // CS = 0;
dheerajmpai23 0:daa68006b0d9 32 //
dheerajmpai23 0:daa68006b0d9 33 //// ignore recevived data
dheerajmpai23 0:daa68006b0d9 34 // adf.write( ram );
dheerajmpai23 0:daa68006b0d9 35 //
dheerajmpai23 0:daa68006b0d9 36 //// write start address
dheerajmpai23 0:daa68006b0d9 37 // int r = adf.write( address );
dheerajmpai23 0:daa68006b0d9 38 //
dheerajmpai23 0:daa68006b0d9 39 //// write data
dheerajmpai23 0:daa68006b0d9 40 // for(int i = 0 ; i < length ; ++i){
dheerajmpai23 0:daa68006b0d9 41 // response[i] = adf.write( data[i] );
dheerajmpai23 0:daa68006b0d9 42 // }
dheerajmpai23 0:daa68006b0d9 43 //
dheerajmpai23 0:daa68006b0d9 44 // CS = 1;
dheerajmpai23 0:daa68006b0d9 45 //
dheerajmpai23 0:daa68006b0d9 46 // cout << r << ENDL;
dheerajmpai23 0:daa68006b0d9 47 // for(int i = 0 ; i < length ; ++i){
dheerajmpai23 0:daa68006b0d9 48 // cout << response[i] << " ";
dheerajmpai23 0:daa68006b0d9 49 // }
dheerajmpai23 0:daa68006b0d9 50 // cout << ENDL;
dheerajmpai23 0:daa68006b0d9 51 //
dheerajmpai23 0:daa68006b0d9 52 //}
dheerajmpai23 0:daa68006b0d9 53 //
dheerajmpai23 0:daa68006b0d9 54 //void write_discon(discon_type ram, uint8_t *address, uint8_t *data, int length){
dheerajmpai23 0:daa68006b0d9 55 //
dheerajmpai23 0:daa68006b0d9 56 // int *response1 = new int[length];
dheerajmpai23 0:daa68006b0d9 57 // int *response2 = new int[length];
dheerajmpai23 0:daa68006b0d9 58 //
dheerajmpai23 0:daa68006b0d9 59 // CS = 0;
dheerajmpai23 0:daa68006b0d9 60 //
dheerajmpai23 0:daa68006b0d9 61 //// ignore recevived data
dheerajmpai23 0:daa68006b0d9 62 // adf.write( ram );
dheerajmpai23 0:daa68006b0d9 63 //
dheerajmpai23 0:daa68006b0d9 64 // for(int i = 0 ; i < length ; ++i){
dheerajmpai23 0:daa68006b0d9 65 //
dheerajmpai23 0:daa68006b0d9 66 //// address[7:0] next 8 bits
dheerajmpai23 0:daa68006b0d9 67 // response1[i] = adf.write( address[i] );
dheerajmpai23 0:daa68006b0d9 68 //
dheerajmpai23 0:daa68006b0d9 69 //// data next 8 bits
dheerajmpai23 0:daa68006b0d9 70 // response2[i] = adf.write( data[i] );
dheerajmpai23 0:daa68006b0d9 71 //
dheerajmpai23 0:daa68006b0d9 72 // }
dheerajmpai23 0:daa68006b0d9 73 //
dheerajmpai23 0:daa68006b0d9 74 // CS = 1;
dheerajmpai23 0:daa68006b0d9 75 //
dheerajmpai23 0:daa68006b0d9 76 // for(int i = 0 ; i < length ; ++i){
dheerajmpai23 0:daa68006b0d9 77 // cout << response1[i] << "\t" << response2[i] << ENDL;
dheerajmpai23 0:daa68006b0d9 78 // }
dheerajmpai23 0:daa68006b0d9 79 //
dheerajmpai23 0:daa68006b0d9 80 //}
dheerajmpai23 0:daa68006b0d9 81 //
dheerajmpai23 0:daa68006b0d9 82 //int read_discon(discon_type_RD ram, uint8_t address){
dheerajmpai23 0:daa68006b0d9 83 //
dheerajmpai23 0:daa68006b0d9 84 // CS = 0;
dheerajmpai23 0:daa68006b0d9 85 //
dheerajmpai23 0:daa68006b0d9 86 //// ignore the reply
dheerajmpai23 0:daa68006b0d9 87 // adf.write( ram );
dheerajmpai23 0:daa68006b0d9 88 //
dheerajmpai23 0:daa68006b0d9 89 // int stat1 = adf.write( address );
dheerajmpai23 0:daa68006b0d9 90 // int stat2 = adf.write( SPI_NOP );
dheerajmpai23 0:daa68006b0d9 91 // int reply = adf.write( SPI_NOP );
dheerajmpai23 0:daa68006b0d9 92 ////
dheerajmpai23 0:daa68006b0d9 93 // CS = 1;
dheerajmpai23 0:daa68006b0d9 94 //
dheerajmpai23 0:daa68006b0d9 95 // return reply;
dheerajmpai23 0:daa68006b0d9 96 //}
dheerajmpai23 0:daa68006b0d9 97
dheerajmpai23 0:daa68006b0d9 98 void write_bbram_sequence_sprt_mode(void){
dheerajmpai23 0:daa68006b0d9 99
dheerajmpai23 0:daa68006b0d9 100 adf.write(0x19);
dheerajmpai23 0:daa68006b0d9 101 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 102 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 103 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 104
dheerajmpai23 0:daa68006b0d9 105 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 106 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 107 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 108 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 109
dheerajmpai23 0:daa68006b0d9 110 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 111 adf.write(0x33);
dheerajmpai23 0:daa68006b0d9 112 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 113 adf.write(0xF9);
dheerajmpai23 0:daa68006b0d9 114
dheerajmpai23 0:daa68006b0d9 115 adf.write(0xC2);
dheerajmpai23 0:daa68006b0d9 116 adf.write(0x10);
dheerajmpai23 0:daa68006b0d9 117 adf.write(0xC0);
dheerajmpai23 0:daa68006b0d9 118 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 119
dheerajmpai23 0:daa68006b0d9 120 adf.write(0x30);
dheerajmpai23 0:daa68006b0d9 121 adf.write(0x31);
dheerajmpai23 0:daa68006b0d9 122 adf.write(0x07);
dheerajmpai23 0:daa68006b0d9 123 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 124
dheerajmpai23 0:daa68006b0d9 125 adf.write(0x01);
dheerajmpai23 0:daa68006b0d9 126 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 127 adf.write(0x7F);
dheerajmpai23 0:daa68006b0d9 128 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 129
dheerajmpai23 0:daa68006b0d9 130 adf.write(0x0B);
dheerajmpai23 0:daa68006b0d9 131 adf.write(0x37);
dheerajmpai23 0:daa68006b0d9 132 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 133 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 134
dheerajmpai23 0:daa68006b0d9 135 adf.write(0x40);
dheerajmpai23 0:daa68006b0d9 136 adf.write(0x0C);
dheerajmpai23 0:daa68006b0d9 137 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 138 adf.write(0x05);
dheerajmpai23 0:daa68006b0d9 139
dheerajmpai23 0:daa68006b0d9 140 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 141 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 142 adf.write(0x18);
dheerajmpai23 0:daa68006b0d9 143 adf.write(0x12);
dheerajmpai23 0:daa68006b0d9 144
dheerajmpai23 0:daa68006b0d9 145 adf.write(0x34);
dheerajmpai23 0:daa68006b0d9 146 adf.write(0x56);
dheerajmpai23 0:daa68006b0d9 147 adf.write(0x10);
dheerajmpai23 0:daa68006b0d9 148 adf.write(0x10);
dheerajmpai23 0:daa68006b0d9 149
dheerajmpai23 0:daa68006b0d9 150 adf.write(0x08);
dheerajmpai23 0:daa68006b0d9 151 adf.write(0x14);
dheerajmpai23 0:daa68006b0d9 152 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 153 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 154
dheerajmpai23 0:daa68006b0d9 155 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 156 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 157 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 158 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 159
dheerajmpai23 0:daa68006b0d9 160 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 161 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 162 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 163 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 164
dheerajmpai23 0:daa68006b0d9 165 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 166 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 167 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 168 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 169
dheerajmpai23 0:daa68006b0d9 170 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 171 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 172 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 173 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 174
dheerajmpai23 0:daa68006b0d9 175 adf.write(0x04);
dheerajmpai23 0:daa68006b0d9 176 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 177 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 178 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 179
dheerajmpai23 0:daa68006b0d9 180 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 181 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 182
dheerajmpai23 0:daa68006b0d9 183 }
dheerajmpai23 0:daa68006b0d9 184
dheerajmpai23 0:daa68006b0d9 185 void initiate(void){
dheerajmpai23 0:daa68006b0d9 186
dheerajmpai23 0:daa68006b0d9 187 CS=0;
dheerajmpai23 0:daa68006b0d9 188 adf.write(0x1B);//sport mode
dheerajmpai23 0:daa68006b0d9 189 adf.write(0xFA);
dheerajmpai23 0:daa68006b0d9 190 adf.write(0xA0);
dheerajmpai23 0:daa68006b0d9 191 CS=1;
dheerajmpai23 0:daa68006b0d9 192 wait(2);
dheerajmpai23 0:daa68006b0d9 193
dheerajmpai23 0:daa68006b0d9 194
dheerajmpai23 0:daa68006b0d9 195 CS=0;
dheerajmpai23 0:daa68006b0d9 196 adf.write(0x18);//sprt mode
dheerajmpai23 0:daa68006b0d9 197 adf.write(0x0D);
dheerajmpai23 0:daa68006b0d9 198 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 199 CS=1;
dheerajmpai23 0:daa68006b0d9 200 wait(2);
dheerajmpai23 0:daa68006b0d9 201
dheerajmpai23 0:daa68006b0d9 202 CS=0;
dheerajmpai23 0:daa68006b0d9 203 adf.write(0xB0);
dheerajmpai23 0:daa68006b0d9 204 CS=1;
dheerajmpai23 0:daa68006b0d9 205 wait(2);
dheerajmpai23 0:daa68006b0d9 206
dheerajmpai23 0:daa68006b0d9 207 CS=0;
dheerajmpai23 0:daa68006b0d9 208 adf.write(0xB0);
dheerajmpai23 0:daa68006b0d9 209 CS=1;
dheerajmpai23 0:daa68006b0d9 210 wait(2);
dheerajmpai23 0:daa68006b0d9 211
dheerajmpai23 0:daa68006b0d9 212
dheerajmpai23 0:daa68006b0d9 213 CS=0;
dheerajmpai23 0:daa68006b0d9 214 adf.write(0x1B);
dheerajmpai23 0:daa68006b0d9 215 adf.write(0xFA);
dheerajmpai23 0:daa68006b0d9 216 adf.write(0xA0);
dheerajmpai23 0:daa68006b0d9 217 CS=1;
dheerajmpai23 0:daa68006b0d9 218 wait(2);
dheerajmpai23 0:daa68006b0d9 219
dheerajmpai23 0:daa68006b0d9 220 CS=0;
dheerajmpai23 0:daa68006b0d9 221 adf.write(0x18);
dheerajmpai23 0:daa68006b0d9 222 adf.write(0x0D);
dheerajmpai23 0:daa68006b0d9 223 adf.write(0x00);
dheerajmpai23 0:daa68006b0d9 224 CS=1;
dheerajmpai23 0:daa68006b0d9 225 wait(2);
dheerajmpai23 0:daa68006b0d9 226
dheerajmpai23 0:daa68006b0d9 227 CS=0;
dheerajmpai23 0:daa68006b0d9 228 write_bbram_sequence_sprt_mode();
dheerajmpai23 0:daa68006b0d9 229 CS=1;
dheerajmpai23 0:daa68006b0d9 230 wait(8);
dheerajmpai23 0:daa68006b0d9 231
dheerajmpai23 0:daa68006b0d9 232 cout<<"BBRAM_SEQUENCE WRITTEN"<<ENDL;
dheerajmpai23 0:daa68006b0d9 233
dheerajmpai23 0:daa68006b0d9 234 CS=0;
dheerajmpai23 0:daa68006b0d9 235 adf.write(0xBB);//CONFIGURE_DEV
dheerajmpai23 0:daa68006b0d9 236 CS=1;
dheerajmpai23 0:daa68006b0d9 237 wait(5);
dheerajmpai23 0:daa68006b0d9 238
dheerajmpai23 0:daa68006b0d9 239 cout<<"CONFIG_DEV"<<ENDL;
dheerajmpai23 0:daa68006b0d9 240
dheerajmpai23 0:daa68006b0d9 241 CS=0;
dheerajmpai23 0:daa68006b0d9 242 adf.write(0xB1);//PHY_ON
dheerajmpai23 0:daa68006b0d9 243 CS=1;
dheerajmpai23 0:daa68006b0d9 244 wait(2);
dheerajmpai23 0:daa68006b0d9 245
dheerajmpai23 0:daa68006b0d9 246
dheerajmpai23 0:daa68006b0d9 247 CS=0;
dheerajmpai23 0:daa68006b0d9 248 adf.write(0xFF);//Status Return
dheerajmpai23 0:daa68006b0d9 249 adf.write(0xFF);
dheerajmpai23 0:daa68006b0d9 250 CS=1;
dheerajmpai23 0:daa68006b0d9 251 wait(2);
dheerajmpai23 0:daa68006b0d9 252
dheerajmpai23 0:daa68006b0d9 253 CS=0;
dheerajmpai23 0:daa68006b0d9 254 adf.write(0xB5);//PHY_TX
dheerajmpai23 0:daa68006b0d9 255 CS=1;
dheerajmpai23 0:daa68006b0d9 256 wait(2);
dheerajmpai23 0:daa68006b0d9 257
dheerajmpai23 0:daa68006b0d9 258
dheerajmpai23 0:daa68006b0d9 259 CS=0;
dheerajmpai23 0:daa68006b0d9 260 adf.write(0xFF);//Status Return
dheerajmpai23 0:daa68006b0d9 261 adf.write(0xFF);
dheerajmpai23 0:daa68006b0d9 262 CS=1;
dheerajmpai23 0:daa68006b0d9 263 wait(2);
dheerajmpai23 0:daa68006b0d9 264
dheerajmpai23 0:daa68006b0d9 265 cout<<"Transmitting at 435.802Mhz"<<ENDL;
dheerajmpai23 0:daa68006b0d9 266 }
dheerajmpai23 0:daa68006b0d9 267
dheerajmpai23 0:daa68006b0d9 268
dheerajmpai23 0:daa68006b0d9 269
dheerajmpai23 0:daa68006b0d9 270
dheerajmpai23 0:daa68006b0d9 271 int main(){
dheerajmpai23 0:daa68006b0d9 272
dheerajmpai23 0:daa68006b0d9 273
dheerajmpai23 0:daa68006b0d9 274 CS = 1;
dheerajmpai23 0:daa68006b0d9 275 adf.format(8,3);
dheerajmpai23 0:daa68006b0d9 276 adf.frequency( 1000000 );
dheerajmpai23 0:daa68006b0d9 277
dheerajmpai23 0:daa68006b0d9 278 cout << "Press s" << ENDL;
dheerajmpai23 0:daa68006b0d9 279 ledr = 1;
dheerajmpai23 0:daa68006b0d9 280 char c = 'a';
dheerajmpai23 0:daa68006b0d9 281 while( c != 's'){
dheerajmpai23 0:daa68006b0d9 282 c = PC.getc();
dheerajmpai23 0:daa68006b0d9 283 PC.putc(c);
dheerajmpai23 0:daa68006b0d9 284 }
dheerajmpai23 0:daa68006b0d9 285 ledr = 0;
dheerajmpai23 0:daa68006b0d9 286
dheerajmpai23 0:daa68006b0d9 287 initiate();
dheerajmpai23 0:daa68006b0d9 288
dheerajmpai23 0:daa68006b0d9 289 }
dheerajmpai23 0:daa68006b0d9 290
dheerajmpai23 0:daa68006b0d9 291
dheerajmpai23 0:daa68006b0d9 292