Dheeraj M Pai
/
XXX_adf_rollingbuffer
ADF7023
main.cpp@0:40f50724ae89, 2015-06-26 (annotated)
- Committer:
- dheerajmpai23
- Date:
- Fri Jun 26 12:42:36 2015 +0000
- Revision:
- 0:40f50724ae89
- Child:
- 1:5a395f2fcdc8
ORIGINAL CODE GIVEN BY SHREESHA.; Please initiate the adf using the eval board and then run the code using mbed.; ; Thanks for Shreesha for the stud level code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dheerajmpai23 | 0:40f50724ae89 | 1 | #include "mbed.h" |
dheerajmpai23 | 0:40f50724ae89 | 2 | #include <iostream> |
dheerajmpai23 | 0:40f50724ae89 | 3 | using namespace std; |
dheerajmpai23 | 0:40f50724ae89 | 4 | #include <bitset> |
dheerajmpai23 | 0:40f50724ae89 | 5 | |
dheerajmpai23 | 0:40f50724ae89 | 6 | #define ENDL "\r" << endl; |
dheerajmpai23 | 0:40f50724ae89 | 7 | #define START_ADDRESS 0x020; |
dheerajmpai23 | 0:40f50724ae89 | 8 | |
dheerajmpai23 | 0:40f50724ae89 | 9 | SPI adf(PTD6, PTD7, PTD5); |
dheerajmpai23 | 0:40f50724ae89 | 10 | //MOSI, MISO, CLOCK |
dheerajmpai23 | 0:40f50724ae89 | 11 | |
dheerajmpai23 | 0:40f50724ae89 | 12 | DigitalOut CS(D10); |
dheerajmpai23 | 0:40f50724ae89 | 13 | Serial PC(USBTX, USBRX); |
dheerajmpai23 | 0:40f50724ae89 | 14 | DigitalOut ledr(LED_RED); |
dheerajmpai23 | 0:40f50724ae89 | 15 | |
dheerajmpai23 | 0:40f50724ae89 | 16 | #define SPI_NOP 0xFF |
dheerajmpai23 | 0:40f50724ae89 | 17 | |
dheerajmpai23 | 0:40f50724ae89 | 18 | enum con_type{ packet=0x18, bbram=0x19, mcr=0x1B, program=0x1E }; |
dheerajmpai23 | 0:40f50724ae89 | 19 | enum discon_type{ packet2=0x08, bbram2=0x09, mcr2=0x0B }; |
dheerajmpai23 | 0:40f50724ae89 | 20 | |
dheerajmpai23 | 0:40f50724ae89 | 21 | enum discon_type_RD{ packet3=0x28, bbram3=0x29, mcr3=0x2B }; |
dheerajmpai23 | 0:40f50724ae89 | 22 | |
dheerajmpai23 | 0:40f50724ae89 | 23 | void write_con(con_type ram, uint8_t address, uint8_t *data, int length){ |
dheerajmpai23 | 0:40f50724ae89 | 24 | |
dheerajmpai23 | 0:40f50724ae89 | 25 | int *response = new int[length]; |
dheerajmpai23 | 0:40f50724ae89 | 26 | |
dheerajmpai23 | 0:40f50724ae89 | 27 | CS = 0; |
dheerajmpai23 | 0:40f50724ae89 | 28 | |
dheerajmpai23 | 0:40f50724ae89 | 29 | // ignore recevived data |
dheerajmpai23 | 0:40f50724ae89 | 30 | adf.write( ram ); |
dheerajmpai23 | 0:40f50724ae89 | 31 | |
dheerajmpai23 | 0:40f50724ae89 | 32 | // write start address |
dheerajmpai23 | 0:40f50724ae89 | 33 | int r = adf.write( address ); |
dheerajmpai23 | 0:40f50724ae89 | 34 | |
dheerajmpai23 | 0:40f50724ae89 | 35 | // write data |
dheerajmpai23 | 0:40f50724ae89 | 36 | for(int i = 0 ; i < length ; ++i){ |
dheerajmpai23 | 0:40f50724ae89 | 37 | response[i] = adf.write( data[i] ); |
dheerajmpai23 | 0:40f50724ae89 | 38 | } |
dheerajmpai23 | 0:40f50724ae89 | 39 | |
dheerajmpai23 | 0:40f50724ae89 | 40 | CS = 1; |
dheerajmpai23 | 0:40f50724ae89 | 41 | |
dheerajmpai23 | 0:40f50724ae89 | 42 | cout << r << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 43 | for(int i = 0 ; i < length ; ++i){ |
dheerajmpai23 | 0:40f50724ae89 | 44 | cout << response[i] << " "; |
dheerajmpai23 | 0:40f50724ae89 | 45 | } |
dheerajmpai23 | 0:40f50724ae89 | 46 | cout << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 47 | |
dheerajmpai23 | 0:40f50724ae89 | 48 | } |
dheerajmpai23 | 0:40f50724ae89 | 49 | |
dheerajmpai23 | 0:40f50724ae89 | 50 | void write_discon(discon_type ram, uint8_t *address, uint8_t *data, int length){ |
dheerajmpai23 | 0:40f50724ae89 | 51 | |
dheerajmpai23 | 0:40f50724ae89 | 52 | int *response1 = new int[length]; |
dheerajmpai23 | 0:40f50724ae89 | 53 | int *response2 = new int[length]; |
dheerajmpai23 | 0:40f50724ae89 | 54 | |
dheerajmpai23 | 0:40f50724ae89 | 55 | CS = 0; |
dheerajmpai23 | 0:40f50724ae89 | 56 | |
dheerajmpai23 | 0:40f50724ae89 | 57 | // ignore recevived data |
dheerajmpai23 | 0:40f50724ae89 | 58 | adf.write( ram ); |
dheerajmpai23 | 0:40f50724ae89 | 59 | |
dheerajmpai23 | 0:40f50724ae89 | 60 | for(int i = 0 ; i < length ; ++i){ |
dheerajmpai23 | 0:40f50724ae89 | 61 | |
dheerajmpai23 | 0:40f50724ae89 | 62 | // address[7:0] next 8 bits |
dheerajmpai23 | 0:40f50724ae89 | 63 | response1[i] = adf.write( address[i] ); |
dheerajmpai23 | 0:40f50724ae89 | 64 | |
dheerajmpai23 | 0:40f50724ae89 | 65 | // data next 8 bits |
dheerajmpai23 | 0:40f50724ae89 | 66 | response2[i] = adf.write( data[i] ); |
dheerajmpai23 | 0:40f50724ae89 | 67 | |
dheerajmpai23 | 0:40f50724ae89 | 68 | } |
dheerajmpai23 | 0:40f50724ae89 | 69 | |
dheerajmpai23 | 0:40f50724ae89 | 70 | CS = 1; |
dheerajmpai23 | 0:40f50724ae89 | 71 | |
dheerajmpai23 | 0:40f50724ae89 | 72 | for(int i = 0 ; i < length ; ++i){ |
dheerajmpai23 | 0:40f50724ae89 | 73 | cout << response1[i] << "\t" << response2[i] << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 74 | } |
dheerajmpai23 | 0:40f50724ae89 | 75 | |
dheerajmpai23 | 0:40f50724ae89 | 76 | } |
dheerajmpai23 | 0:40f50724ae89 | 77 | |
dheerajmpai23 | 0:40f50724ae89 | 78 | int read_discon(discon_type_RD ram, uint8_t address){ |
dheerajmpai23 | 0:40f50724ae89 | 79 | |
dheerajmpai23 | 0:40f50724ae89 | 80 | CS = 0; |
dheerajmpai23 | 0:40f50724ae89 | 81 | |
dheerajmpai23 | 0:40f50724ae89 | 82 | // ignore the reply |
dheerajmpai23 | 0:40f50724ae89 | 83 | adf.write( ram ); |
dheerajmpai23 | 0:40f50724ae89 | 84 | |
dheerajmpai23 | 0:40f50724ae89 | 85 | int stat1 = adf.write( address ); |
dheerajmpai23 | 0:40f50724ae89 | 86 | int stat2 = adf.write( SPI_NOP ); |
dheerajmpai23 | 0:40f50724ae89 | 87 | int reply = adf.write( SPI_NOP ); |
dheerajmpai23 | 0:40f50724ae89 | 88 | |
dheerajmpai23 | 0:40f50724ae89 | 89 | CS = 1; |
dheerajmpai23 | 0:40f50724ae89 | 90 | |
dheerajmpai23 | 0:40f50724ae89 | 91 | return reply; |
dheerajmpai23 | 0:40f50724ae89 | 92 | } |
dheerajmpai23 | 0:40f50724ae89 | 93 | |
dheerajmpai23 | 0:40f50724ae89 | 94 | int main(){ |
dheerajmpai23 | 0:40f50724ae89 | 95 | |
dheerajmpai23 | 0:40f50724ae89 | 96 | CS = 1; |
dheerajmpai23 | 0:40f50724ae89 | 97 | adf.format(8,0); |
dheerajmpai23 | 0:40f50724ae89 | 98 | adf.frequency( 1000000 ); |
dheerajmpai23 | 0:40f50724ae89 | 99 | |
dheerajmpai23 | 0:40f50724ae89 | 100 | cout << "Press s" << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 101 | ledr = 1; |
dheerajmpai23 | 0:40f50724ae89 | 102 | char c = 'a'; |
dheerajmpai23 | 0:40f50724ae89 | 103 | while( c != 's'){ |
dheerajmpai23 | 0:40f50724ae89 | 104 | c = PC.getc(); |
dheerajmpai23 | 0:40f50724ae89 | 105 | PC.putc(c); |
dheerajmpai23 | 0:40f50724ae89 | 106 | } |
dheerajmpai23 | 0:40f50724ae89 | 107 | ledr = 0; |
dheerajmpai23 | 0:40f50724ae89 | 108 | int d=0; |
dheerajmpai23 | 0:40f50724ae89 | 109 | |
dheerajmpai23 | 0:40f50724ae89 | 110 | |
dheerajmpai23 | 0:40f50724ae89 | 111 | // while(true){ |
dheerajmpai23 | 0:40f50724ae89 | 112 | // ledr = !ledr; |
dheerajmpai23 | 0:40f50724ae89 | 113 | // wait(0.2f); |
dheerajmpai23 | 0:40f50724ae89 | 114 | // } |
dheerajmpai23 | 0:40f50724ae89 | 115 | |
dheerajmpai23 | 0:40f50724ae89 | 116 | |
dheerajmpai23 | 0:40f50724ae89 | 117 | while(true){ |
dheerajmpai23 | 0:40f50724ae89 | 118 | CS = 0; |
dheerajmpai23 | 0:40f50724ae89 | 119 | d++; |
dheerajmpai23 | 0:40f50724ae89 | 120 | cout<<d<<ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 121 | // wait_us(1); |
dheerajmpai23 | 0:40f50724ae89 | 122 | |
dheerajmpai23 | 0:40f50724ae89 | 123 | // wait_us(1); |
dheerajmpai23 | 0:40f50724ae89 | 124 | adf.write(0xB5); |
dheerajmpai23 | 0:40f50724ae89 | 125 | // adf.write(0xB5); |
dheerajmpai23 | 0:40f50724ae89 | 126 | // d=0; |
dheerajmpai23 | 0:40f50724ae89 | 127 | // wait_us(1); |
dheerajmpai23 | 0:40f50724ae89 | 128 | // CS = 1; |
dheerajmpai23 | 0:40f50724ae89 | 129 | // wait_ms(2); |
dheerajmpai23 | 0:40f50724ae89 | 130 | // CS=0; |
dheerajmpai23 | 0:40f50724ae89 | 131 | unsigned char reply1 = adf.write(0xFF); |
dheerajmpai23 | 0:40f50724ae89 | 132 | // d=0; |
dheerajmpai23 | 0:40f50724ae89 | 133 | unsigned char reply2 = adf.write(0xFF); |
dheerajmpai23 | 0:40f50724ae89 | 134 | // d=0; |
dheerajmpai23 | 0:40f50724ae89 | 135 | //wait_us(1); |
dheerajmpai23 | 0:40f50724ae89 | 136 | // unsigned char reply3 = adf.write(0xFF); |
dheerajmpai23 | 0:40f50724ae89 | 137 | // unsigned char reply4 = adf.write(0xFF); |
dheerajmpai23 | 0:40f50724ae89 | 138 | // CS = 1; |
dheerajmpai23 | 0:40f50724ae89 | 139 | |
dheerajmpai23 | 0:40f50724ae89 | 140 | std::bitset<8> b = reply1; |
dheerajmpai23 | 0:40f50724ae89 | 141 | cout << b << " \t "; |
dheerajmpai23 | 0:40f50724ae89 | 142 | b = reply2; |
dheerajmpai23 | 0:40f50724ae89 | 143 | cout << b << " \t " << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 144 | |
dheerajmpai23 | 0:40f50724ae89 | 145 | // wait_ms(10); |
dheerajmpai23 | 0:40f50724ae89 | 146 | } |
dheerajmpai23 | 0:40f50724ae89 | 147 | // b = reply3; |
dheerajmpai23 | 0:40f50724ae89 | 148 | // cout << b << "\t"; |
dheerajmpai23 | 0:40f50724ae89 | 149 | // b = reply4; |
dheerajmpai23 | 0:40f50724ae89 | 150 | // cout << b << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 151 | |
dheerajmpai23 | 0:40f50724ae89 | 152 | // wait_ms(330); |
dheerajmpai23 | 0:40f50724ae89 | 153 | // |
dheerajmpai23 | 0:40f50724ae89 | 154 | // CS = 0; |
dheerajmpai23 | 0:40f50724ae89 | 155 | // wait_us(10); |
dheerajmpai23 | 0:40f50724ae89 | 156 | // adf.write(0xff); |
dheerajmpai23 | 0:40f50724ae89 | 157 | // adf.write(0xff); |
dheerajmpai23 | 0:40f50724ae89 | 158 | // wait_us(10); |
dheerajmpai23 | 0:40f50724ae89 | 159 | // CS = 1; |
dheerajmpai23 | 0:40f50724ae89 | 160 | |
dheerajmpai23 | 0:40f50724ae89 | 161 | // cout << "SENT" << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 162 | // wait(1); |
dheerajmpai23 | 0:40f50724ae89 | 163 | // ledr = !ledr; |
dheerajmpai23 | 0:40f50724ae89 | 164 | // } |
dheerajmpai23 | 0:40f50724ae89 | 165 | |
dheerajmpai23 | 0:40f50724ae89 | 166 | // |
dheerajmpai23 | 0:40f50724ae89 | 167 | //// BUFFER SIGNAL AND SIZE AND BASE ADDRESS |
dheerajmpai23 | 0:40f50724ae89 | 168 | // discon_type ram_type = bbram2; |
dheerajmpai23 | 0:40f50724ae89 | 169 | // uint8_t *add = new uint8_t[3]; |
dheerajmpai23 | 0:40f50724ae89 | 170 | // add[0] = 0x36; |
dheerajmpai23 | 0:40f50724ae89 | 171 | // add[1] = 0x37; |
dheerajmpai23 | 0:40f50724ae89 | 172 | // add[2] = 0x24; |
dheerajmpai23 | 0:40f50724ae89 | 173 | // uint8_t *data = new uint8_t[3]; |
dheerajmpai23 | 0:40f50724ae89 | 174 | //// 110 |
dheerajmpai23 | 0:40f50724ae89 | 175 | // data[0] = 0x6E; |
dheerajmpai23 | 0:40f50724ae89 | 176 | //// 220 |
dheerajmpai23 | 0:40f50724ae89 | 177 | // data[1] = 0xDC; |
dheerajmpai23 | 0:40f50724ae89 | 178 | // data[2] = START_ADDRESS; |
dheerajmpai23 | 0:40f50724ae89 | 179 | // |
dheerajmpai23 | 0:40f50724ae89 | 180 | // cout << "BUFFER SIGNAL AND SIZE AND BASE ADDRESS" << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 181 | // write_discon( ram_type, add, data, 3 ); |
dheerajmpai23 | 0:40f50724ae89 | 182 | // wait(1); |
dheerajmpai23 | 0:40f50724ae89 | 183 | // |
dheerajmpai23 | 0:40f50724ae89 | 184 | // |
dheerajmpai23 | 0:40f50724ae89 | 185 | //// TESTMODES |
dheerajmpai23 | 0:40f50724ae89 | 186 | // discon_type_RD ram_rd = bbram3; |
dheerajmpai23 | 0:40f50724ae89 | 187 | // cout << "READ 139" << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 188 | // int dat139 = read_discon( ram_rd, 0x39 ); |
dheerajmpai23 | 0:40f50724ae89 | 189 | // wait(1); |
dheerajmpai23 | 0:40f50724ae89 | 190 | // cout << "dat139 = " << dat139 << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 191 | // dat139 |= (1 << 4); |
dheerajmpai23 | 0:40f50724ae89 | 192 | // dat139 &= ~(1 << 5); |
dheerajmpai23 | 0:40f50724ae89 | 193 | // |
dheerajmpai23 | 0:40f50724ae89 | 194 | // delete[] add; |
dheerajmpai23 | 0:40f50724ae89 | 195 | // delete[] data; |
dheerajmpai23 | 0:40f50724ae89 | 196 | // |
dheerajmpai23 | 0:40f50724ae89 | 197 | // add = new uint8_t[1]; |
dheerajmpai23 | 0:40f50724ae89 | 198 | // data = new uint8_t[1]; |
dheerajmpai23 | 0:40f50724ae89 | 199 | // add[0] = 0x39; |
dheerajmpai23 | 0:40f50724ae89 | 200 | // data[0] = dat139; |
dheerajmpai23 | 0:40f50724ae89 | 201 | // cout << "write testmode " << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 202 | // write_discon( ram_type, add, data, 1 ); |
dheerajmpai23 | 0:40f50724ae89 | 203 | // wait(1); |
dheerajmpai23 | 0:40f50724ae89 | 204 | // |
dheerajmpai23 | 0:40f50724ae89 | 205 | //// transmit size in bytes [268 = 0x010C] [220 = 0xDC] |
dheerajmpai23 | 0:40f50724ae89 | 206 | // ram_type = packet2; |
dheerajmpai23 | 0:40f50724ae89 | 207 | // delete[] add; |
dheerajmpai23 | 0:40f50724ae89 | 208 | // delete[] data; |
dheerajmpai23 | 0:40f50724ae89 | 209 | // add = new uint8_t[2]; |
dheerajmpai23 | 0:40f50724ae89 | 210 | // data = new uint8_t[2]; |
dheerajmpai23 | 0:40f50724ae89 | 211 | // add[0] = 0x14; |
dheerajmpai23 | 0:40f50724ae89 | 212 | // add[1] = 0x15; |
dheerajmpai23 | 0:40f50724ae89 | 213 | // data[0] = 0xDC; |
dheerajmpai23 | 0:40f50724ae89 | 214 | // data[1] = 0x00; |
dheerajmpai23 | 0:40f50724ae89 | 215 | // cout << "transmit size in packet ram" << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 216 | // write_discon( ram_type, add, data, 2 ); |
dheerajmpai23 | 0:40f50724ae89 | 217 | // |
dheerajmpai23 | 0:40f50724ae89 | 218 | //// START WRITING TO RAM HERE |
dheerajmpai23 | 0:40f50724ae89 | 219 | // con_type rt = packet; |
dheerajmpai23 | 0:40f50724ae89 | 220 | // delete[] data; |
dheerajmpai23 | 0:40f50724ae89 | 221 | // data = new uint8_t[220]; |
dheerajmpai23 | 0:40f50724ae89 | 222 | // |
dheerajmpai23 | 0:40f50724ae89 | 223 | // for(int i = 0 ; i < 220 ; ++i){ |
dheerajmpai23 | 0:40f50724ae89 | 224 | // data[i] = 0xff; |
dheerajmpai23 | 0:40f50724ae89 | 225 | // } |
dheerajmpai23 | 0:40f50724ae89 | 226 | // uint8_t haha = START_ADDRESS; |
dheerajmpai23 | 0:40f50724ae89 | 227 | // cout << "WRITE PAYLOAD " << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 228 | // write_con( rt, haha, data, 220 ); |
dheerajmpai23 | 0:40f50724ae89 | 229 | // cout << "FINISHED" << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 230 | // wait(1); |
dheerajmpai23 | 0:40f50724ae89 | 231 | // |
dheerajmpai23 | 0:40f50724ae89 | 232 | //// AND PUT INTO PHY_TX MODE |
dheerajmpai23 | 0:40f50724ae89 | 233 | // int reply = adf.write( 0xB5 ); |
dheerajmpai23 | 0:40f50724ae89 | 234 | // cout << reply << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 235 | // |
dheerajmpai23 | 0:40f50724ae89 | 236 | // wait(5); |
dheerajmpai23 | 0:40f50724ae89 | 237 | // |
dheerajmpai23 | 0:40f50724ae89 | 238 | // reply = adf.write( 0xB1 ); |
dheerajmpai23 | 0:40f50724ae89 | 239 | // cout << reply << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 240 | // |
dheerajmpai23 | 0:40f50724ae89 | 241 | // cout << "FINISHED !!" << ENDL; |
dheerajmpai23 | 0:40f50724ae89 | 242 | |
dheerajmpai23 | 0:40f50724ae89 | 243 | } |