![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Everything working except ticker. Ticker is not working. Please make sure all the ground are connected. INterrupt and CS pin are changed. Please take care of that. Thank You
Fork of October_22_11AM____Worksproperly_till_bbram by
main.cpp
- Committer:
- dheerajmpai23
- Date:
- 2015-10-22
- Revision:
- 3:5ce3971c1545
- Parent:
- 2:3ad3165e4d6c
File content as of revision 3:5ce3971c1545:
///ADF7023 From BIT BUCKET //TO DO SPI and CMD CHeck #include "mbed.h" #include <iostream> #include <stdio.h> using namespace std; #include <bitset> #define ENDL "\r" << endl; #define MISO_PIN PTA17 #define THRS 20 #define STATE_ERR_THRS 20 #define PHY_OFF_EXEC_TIME 300 #define PHY_ON_EXEC_TIME 300 #define PHY_TX_EXEC_TIME 600 /******DEFINING OMMANDS*********/ #define CMD_HW_RESET 0xC8 #define CMD_PHY_ON 0xB1 #define CMD_PHY_OFF 0xB0 #define CMD_PHY_TX 0xB5 #define CMD_CONFIG_DEV 0xBB /*****FUNCTION Declaration********************/ bool assrt_phy_off( int, int, int); bool assrt_phy_on( int,int,int); bool assrt_phy_tx(int,int,int); /****************************/ SPI adf(PTA16, MISO_PIN, PTA15); //MOSI, MISO, CLOCK DigitalOut CS(D7); //DigitalOut CS(PTD4);//D10==PTD4 Serial PC(USBTX, USBRX); DigitalOut ledr(LED1); DigitalOut led2(LED2); InterruptIn IRQ(D8); //InterruptIn IRQ(PTA13);//D8==PTA13 Ticker ticker; //Timer t; //Timer stop; int x=IRQ; int src=0; int irqsrc = 0; int j = 0; int k = 0; int irq1=0; int r = 0; unsigned char data[]={0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; int a[100]; int b[100]; int c[100]; /*****ERROR CHECKING ALGO*****/ unsigned char status =0; unsigned int cmd_err_cnt=0; unsigned int state_err_cnt=0; unsigned int miso_err_cnt=0; unsigned int hw_reset_err_cnt=0; /*Err_check Flags*/ bool bcn_flag=0; bool bbram_flag=0; /***********/ #define SPI_NOP 0xFF /***********************************************************************************/ void bbram_write() { /* CS=0; adf.write(0xB0);//PHY_OFF wait_ms(2); CS=1; *///Commented on 21st October debugging // Write bbram CS=0; adf.write(0x19); adf.write(0x00); adf.write(0x60); 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);//Frequency Register F9 = 435.802 MHz F4 = 435.800 MHz 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); } /******************************************************************************************/ void initiate(void){ CS=0; adf.write(0xFF); adf.write(0xFF); CS=1; wait_ms(2); CS=0; adf.write(0x08); // TRANSMIT_DATA LENGTH adf.write(0x14); adf.write(0xFF); CS=1; wait_ms(2); CS=0; adf.write(0x08); // TRANSMIT_DATA LENGTH adf.write(0x15); adf.write(0xFF); CS=1; wait_ms(2); CS=0; adf.write(0x09); adf.write(0x24); // TX_BASE ADDRESS 0x20(starting Tx Byte) adf.write(0x20); CS=1; wait_ms(2); CS=0; adf.write(0x09); adf.write(0x37);// BUFFER SIZE 0xE0=224 Bytes 0x137 is adress of buffer size adf.write(0xE0); CS=1; wait_ms(2); CS=0; adf.write(0x09); adf.write(0x36);//BB_Tx_Buffer Signal when Buffer is half filled adf.write(0x70);//0x70 = 112 >> When Half buffer interrupt is given CS=1; wait_ms(2); CS=0; adf.write(0x09); adf.write(0x39);//BB_Tx_Buffer Signal when Buffer is half filled adf.write(0x10);//0x70 = 112 >> When Half buffer interrupt is given CS=1; wait_ms(2); } /*int irq_src(void){ adf.write(0x2B); adf.write(0x36); adf.write(0xFF); irqsrc = adf.write(0xFF); irqsrc &= 0x60; if (irqsrc == 0x20) return 1;//Buffer is almost full else if (irqsrc == 0x40) return 2;// Buffer is Full else return 0; } */ int p=112; int count = 0; int intcount =0; int siz= sizeof(data); void write_data(void){ // t.reset(); // count++; // cout<<"3"<<ENDL; // ledr=!ledr; // cout<<"irq detected"<<ENDL; // src = irq_src(); p+=112; //CS=0; // adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF // adf.write(0x36);//Address : 0x336 // adf.write(0xFF);//Put Low // CS=1; // wait_us(80); // CS=0; // k=0; if(!j){ adf.write(0x18); adf.write(0x20); while(k<=223){ adf.write(data[k]); k++; } } else if(k<siz){ // if(src == 1){ if(j%2){ //src== Buffer Half Full src == 1 adf.write(0x18); adf.write(0x20); } // else if(src==2){ else{ //src== Buffer is Full src==2 adf.write(0x18); adf.write(0x90); } while(k<p){ adf.write(data[k]); k++; } // if((k)>=sizeof(data)) // { // ticker.detach();//Stop interrupt detection // cout<<src<<ENDL; // } } else if(k>=siz ){ k=0; j=1; p=0; // cout<<count<<" "<<sizeof(data)/112<<ENDL; } CS=0; adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF adf.write(0x36);//Address : 0x336 adf.write(0xFF);//Put Low CS=1; wait_us(80); // CS=0; // a[r]=t.read_us(); j++; // r++; // CS=1; wait_us(1); } void Interrupt(){ x = IRQ; CS=0; adf.write(0xFF); adf.write(0xFF); CS=1; // intcount++; if(x) { write_data(); } } void send_data(void){ CS=0; adf.write(CMD_CONFIG_DEV); CS=1; wait_ms(2); CS=0; adf.write(0xFF); adf.write(0xFF); CS=1; wait_ms(2); write_data(); CS=0; adf.write(0xB1); CS=1; wait_ms(2); assrt_phy_on(0,0,0); CS=0; adf.write(0xFF); adf.write(0xFF); CS=1; wait_ms(2); CS=0; adf.write(CMD_PHY_TX); CS=1; wait_ms(2); assrt_phy_tx(0,0,0); CS=0; adf.write(0xFF); adf.write(0xFF); CS=1; wait_ms(2); } /*******ADDITIONAL STUFF****************/ unsigned char check_status(void){ unsigned char stat=0; CS=0; adf.write(0xFF); stat = adf.write(0xFF); CS=1; return stat; } /*****************************************/ bool assrt_phy_off(int cmd_err_cnt,int spi_err_cnt,int state_err_cnt){ status=check_status(); if(status==0xB1){ return 0; } else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){ return 1;//You need to Reset the hardware } else if(state_err_cnt>STATE_ERR_THRS){ return 1;//Again reset the hardware } else if((status&0xA0)==0xA0){ //If Status' first three bit ore 0b1X1 =>SPI ready, Dont care interrupt and CMD Ready. CS=0; adf.write(CMD_PHY_OFF); //CMD_PHY_OFF=0xB0 CS=1; wait_us(PHY_OFF_EXEC_TIME);// Typical = 24us We are giving 300us return assrt_phy_off(cmd_err_cnt,spi_err_cnt,state_err_cnt+1); } else if(status&0x80==0x00){ wait_ms(5); //Error: SPI=0 Not ready CMD= Dont care return assrt_phy_off(cmd_err_cnt,spi_err_cnt+1,state_err_cnt); } else {//if(status&0xA0==0x80){ wait_ms(1); //Error: Command Not ready SPI Ready cmd_err_cnt is a global variable return assrt_phy_off(cmd_err_cnt+1,spi_err_cnt,state_err_cnt); } } /*****************************/ bool assrt_phy_on(int cmd_err_cnt,int spi_err_cnt,int state_err_cnt){ status=check_status(); if((status&0x1F)==0x12){ return 0; } else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){ return 1;//You need to Reset the hardware } else if(state_err_cnt>STATE_ERR_THRS){ return 1;//Again reset the hardware } else if((status&0xA0)==0xA0){ //If Status' first three bit ore 0b1X1 =>SPI ready, Dont care interrupt and CMD Ready. CS=0; adf.write(0xB1); //CMD_PHY_OFF CS=1; wait_us(PHY_ON_EXEC_TIME);// Typical = 24us We are giving 300us return assrt_phy_on(cmd_err_cnt,spi_err_cnt,state_err_cnt+1); } else if(status&0x80==0x00){ wait_ms(5); //Error: SPI=0 Not ready CMD= Dont care return assrt_phy_on(cmd_err_cnt,spi_err_cnt+1,state_err_cnt); } else if(status&0xA0==0x80){ wait_ms(1); //Error: Command Not ready SPI Ready cmd_err_cnt is a global variable return assrt_phy_on(cmd_err_cnt+1,spi_err_cnt,state_err_cnt); } } /*****************************/ bool assrt_phy_tx(int cmd_err_cnt,int spi_err_cnt,int state_err_cnt){ status=check_status(); if((status & 0x1F) == 0x14){ return 0; } else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){ return 1;//You need to Reset the hardware } else if(state_err_cnt>STATE_ERR_THRS){ return 1;//Again reset the hardware } else if((status&0xA0)==0xA0){ //If Status' first three bit ore 0b1X1 =>SPI ready, Dont care interrupt and CMD Ready. CS=0; adf.write(0xB1); //CMD_PHY_OFF CS=1; wait_us(PHY_TX_EXEC_TIME);// Typical = 24us We are giving 300us return assrt_phy_tx(cmd_err_cnt,spi_err_cnt,state_err_cnt+1); } else if(status&0x80==0x00){ wait_ms(1); //Error: SPI=0 Not ready CMD= Dont care return assrt_phy_tx(cmd_err_cnt,spi_err_cnt+1,state_err_cnt); } else if(status&0xA0==0x80){ wait_us(50); //Error: Command Not ready SPI Ready cmd_err_cnt is a global variable return assrt_phy_tx(cmd_err_cnt+1,spi_err_cnt,state_err_cnt); } } /***************************/ bool hardware_reset(int bcn_call){ if (bcn_call>20){//Worst Case 20seconds will be lost ! return 1; } int count=0; CS=0; adf.write(CMD_HW_RESET); CS=1; wait_ms(2);// Typically 1 ms while(count<10 && miso_err_cnt<10){ if(MISO_PIN){ if(!assrt_phy_off(0,0,0)){ break; } count++; } else{ wait_us(50); miso_err_cnt++; } } if(count==10 ||miso_err_cnt==10){ return hardware_reset(bcn_call+1); } else return 0; } /*******************************************/ int main() { adf.format(8,0); adf.frequency(1000000); /**ADDED On 21/10/2015 ***/ /******************/ /***********/ bool state_0=0; adf.write(CMD_PHY_OFF); //0xB0 while(hw_reset_err_cnt<2){ if(!assrt_phy_off(0,0,0)){ //assrt_phy_off () returns 0 if state is PHY_OFF , returns 1 if couldn't go to PHY_OFF bbram_write(); bbram_flag=1; break; } else{ hardware_reset(0); // Asserts Hardware for 20sec(20times). PHY_OFF for 20,000 times hw_reset_err_cnt++; } } state_0=assrt_phy_off(0,0,0);// We actually do not need this but make sure "we do not need this" if(!bbram_flag){ //Switch to beacon bcn_flag=1; } initiate(); send_data(); cout<<"Work"<<ENDL; CS=0; adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF adf.write(0x36);//Address : 0x336 adf.write(0xFF);//Put Low Clearing the MCR Value of the Source Register CS=1; ticker.attach_us(&Interrupt,3200); }