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

Dependencies:   mbed

Fork of October_22_11AM____Worksproperly_till_bbram by Dheeraj M Pai

Committer:
dheerajmpai23
Date:
Thu Oct 22 12:26:17 2015 +0000
Revision:
3:5ce3971c1545
Parent:
2:3ad3165e4d6c
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

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dheerajmpai23 0:cb8104f3ae71 1 ///ADF7023 From BIT BUCKET
dheerajmpai23 0:cb8104f3ae71 2 //TO DO SPI and CMD CHeck
dheerajmpai23 0:cb8104f3ae71 3 #include "mbed.h"
dheerajmpai23 0:cb8104f3ae71 4 #include <iostream>
dheerajmpai23 0:cb8104f3ae71 5 #include <stdio.h>
dheerajmpai23 0:cb8104f3ae71 6 using namespace std;
dheerajmpai23 0:cb8104f3ae71 7 #include <bitset>
dheerajmpai23 0:cb8104f3ae71 8 #define ENDL "\r" << endl;
dheerajmpai23 0:cb8104f3ae71 9
dheerajmpai23 0:cb8104f3ae71 10 #define MISO_PIN PTA17
dheerajmpai23 0:cb8104f3ae71 11 #define THRS 20
dheerajmpai23 0:cb8104f3ae71 12 #define STATE_ERR_THRS 20
dheerajmpai23 0:cb8104f3ae71 13 #define PHY_OFF_EXEC_TIME 300
dheerajmpai23 0:cb8104f3ae71 14 #define PHY_ON_EXEC_TIME 300
dheerajmpai23 0:cb8104f3ae71 15 #define PHY_TX_EXEC_TIME 600
dheerajmpai23 0:cb8104f3ae71 16 /******DEFINING OMMANDS*********/
dheerajmpai23 0:cb8104f3ae71 17
dheerajmpai23 0:cb8104f3ae71 18 #define CMD_HW_RESET 0xC8
dheerajmpai23 0:cb8104f3ae71 19 #define CMD_PHY_ON 0xB1
dheerajmpai23 0:cb8104f3ae71 20 #define CMD_PHY_OFF 0xB0
dheerajmpai23 0:cb8104f3ae71 21 #define CMD_PHY_TX 0xB5
dheerajmpai23 0:cb8104f3ae71 22 #define CMD_CONFIG_DEV 0xBB
dheerajmpai23 0:cb8104f3ae71 23
dheerajmpai23 0:cb8104f3ae71 24 /*****FUNCTION Declaration********************/
dheerajmpai23 0:cb8104f3ae71 25 bool assrt_phy_off( int, int, int);
dheerajmpai23 0:cb8104f3ae71 26 bool assrt_phy_on( int,int,int);
dheerajmpai23 0:cb8104f3ae71 27 bool assrt_phy_tx(int,int,int);
dheerajmpai23 0:cb8104f3ae71 28 /****************************/
dheerajmpai23 0:cb8104f3ae71 29 SPI adf(PTA16, MISO_PIN, PTA15);
dheerajmpai23 0:cb8104f3ae71 30 //MOSI, MISO, CLOCK
dheerajmpai23 1:9cd986151b11 31 DigitalOut CS(D7);
dheerajmpai23 0:cb8104f3ae71 32 //DigitalOut CS(PTD4);//D10==PTD4
dheerajmpai23 0:cb8104f3ae71 33 Serial PC(USBTX, USBRX);
dheerajmpai23 0:cb8104f3ae71 34 DigitalOut ledr(LED1);
dheerajmpai23 0:cb8104f3ae71 35 DigitalOut led2(LED2);
dheerajmpai23 0:cb8104f3ae71 36 InterruptIn IRQ(D8);
dheerajmpai23 0:cb8104f3ae71 37 //InterruptIn IRQ(PTA13);//D8==PTA13
dheerajmpai23 0:cb8104f3ae71 38 Ticker ticker;
dheerajmpai23 0:cb8104f3ae71 39 //Timer t;
dheerajmpai23 0:cb8104f3ae71 40 //Timer stop;
dheerajmpai23 0:cb8104f3ae71 41 int x=IRQ;
dheerajmpai23 0:cb8104f3ae71 42 int src=0;
dheerajmpai23 0:cb8104f3ae71 43 int irqsrc = 0;
dheerajmpai23 0:cb8104f3ae71 44 int j = 0;
dheerajmpai23 0:cb8104f3ae71 45 int k = 0;
dheerajmpai23 0:cb8104f3ae71 46 int irq1=0;
dheerajmpai23 0:cb8104f3ae71 47 int r = 0;
dheerajmpai23 3:5ce3971c1545 48 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};
dheerajmpai23 0:cb8104f3ae71 49 int a[100];
dheerajmpai23 0:cb8104f3ae71 50 int b[100];
dheerajmpai23 0:cb8104f3ae71 51 int c[100];
dheerajmpai23 0:cb8104f3ae71 52
dheerajmpai23 0:cb8104f3ae71 53 /*****ERROR CHECKING ALGO*****/
dheerajmpai23 0:cb8104f3ae71 54 unsigned char status =0;
dheerajmpai23 0:cb8104f3ae71 55 unsigned int cmd_err_cnt=0;
dheerajmpai23 0:cb8104f3ae71 56 unsigned int state_err_cnt=0;
dheerajmpai23 0:cb8104f3ae71 57 unsigned int miso_err_cnt=0;
dheerajmpai23 0:cb8104f3ae71 58 unsigned int hw_reset_err_cnt=0;
dheerajmpai23 0:cb8104f3ae71 59 /*Err_check Flags*/
dheerajmpai23 0:cb8104f3ae71 60 bool bcn_flag=0;
dheerajmpai23 0:cb8104f3ae71 61 bool bbram_flag=0;
dheerajmpai23 0:cb8104f3ae71 62 /***********/
dheerajmpai23 0:cb8104f3ae71 63
dheerajmpai23 0:cb8104f3ae71 64 #define SPI_NOP 0xFF
dheerajmpai23 0:cb8104f3ae71 65 /***********************************************************************************/
dheerajmpai23 0:cb8104f3ae71 66 void bbram_write()
dheerajmpai23 0:cb8104f3ae71 67 {
dheerajmpai23 0:cb8104f3ae71 68 /* CS=0;
dheerajmpai23 0:cb8104f3ae71 69 adf.write(0xB0);//PHY_OFF
dheerajmpai23 0:cb8104f3ae71 70 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 71 CS=1;
dheerajmpai23 0:cb8104f3ae71 72 *///Commented on 21st October debugging
dheerajmpai23 0:cb8104f3ae71 73 // Write bbram
dheerajmpai23 0:cb8104f3ae71 74 CS=0;
dheerajmpai23 0:cb8104f3ae71 75 adf.write(0x19);
dheerajmpai23 0:cb8104f3ae71 76 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 77 adf.write(0x60);
dheerajmpai23 0:cb8104f3ae71 78 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 79
dheerajmpai23 0:cb8104f3ae71 80 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 81 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 82 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 83 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 84
dheerajmpai23 0:cb8104f3ae71 85 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 86 adf.write(0x33);
dheerajmpai23 0:cb8104f3ae71 87 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 88 adf.write(0xF4);//Frequency Register F9 = 435.802 MHz F4 = 435.800 MHz
dheerajmpai23 0:cb8104f3ae71 89
dheerajmpai23 0:cb8104f3ae71 90 adf.write(0xC2);
dheerajmpai23 0:cb8104f3ae71 91 adf.write(0x10);
dheerajmpai23 0:cb8104f3ae71 92 adf.write(0xC0);
dheerajmpai23 0:cb8104f3ae71 93 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 94
dheerajmpai23 0:cb8104f3ae71 95 adf.write(0x30);
dheerajmpai23 0:cb8104f3ae71 96 adf.write(0x31);
dheerajmpai23 0:cb8104f3ae71 97 adf.write(0x07);
dheerajmpai23 0:cb8104f3ae71 98 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 99
dheerajmpai23 0:cb8104f3ae71 100 adf.write(0x01);
dheerajmpai23 0:cb8104f3ae71 101 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 102 adf.write(0x7F);
dheerajmpai23 0:cb8104f3ae71 103 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 104
dheerajmpai23 0:cb8104f3ae71 105 adf.write(0x0B);
dheerajmpai23 0:cb8104f3ae71 106 adf.write(0x37);
dheerajmpai23 0:cb8104f3ae71 107 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 108 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 109
dheerajmpai23 0:cb8104f3ae71 110 adf.write(0x40);
dheerajmpai23 0:cb8104f3ae71 111 adf.write(0x0C);
dheerajmpai23 0:cb8104f3ae71 112 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 113 adf.write(0x05);
dheerajmpai23 0:cb8104f3ae71 114
dheerajmpai23 0:cb8104f3ae71 115 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 116 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 117 adf.write(0x18);
dheerajmpai23 0:cb8104f3ae71 118 adf.write(0x12);
dheerajmpai23 0:cb8104f3ae71 119
dheerajmpai23 0:cb8104f3ae71 120 adf.write(0x34);
dheerajmpai23 0:cb8104f3ae71 121 adf.write(0x56);
dheerajmpai23 0:cb8104f3ae71 122 adf.write(0x10);
dheerajmpai23 0:cb8104f3ae71 123 adf.write(0x10);
dheerajmpai23 0:cb8104f3ae71 124
dheerajmpai23 0:cb8104f3ae71 125 adf.write(0xC4); // Different
dheerajmpai23 0:cb8104f3ae71 126 adf.write(0x14);
dheerajmpai23 0:cb8104f3ae71 127 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 128 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 129
dheerajmpai23 0:cb8104f3ae71 130 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 131 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 132 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 133 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 134
dheerajmpai23 0:cb8104f3ae71 135 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 136 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 137 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 138 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 139
dheerajmpai23 0:cb8104f3ae71 140 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 141 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 142 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 143 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 144
dheerajmpai23 0:cb8104f3ae71 145 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 146 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 147 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 148 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 149
dheerajmpai23 0:cb8104f3ae71 150 adf.write(0x04);
dheerajmpai23 0:cb8104f3ae71 151 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 152 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 153 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 154
dheerajmpai23 0:cb8104f3ae71 155 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 156 adf.write(0x00);
dheerajmpai23 0:cb8104f3ae71 157 CS=1;
dheerajmpai23 0:cb8104f3ae71 158 wait(1);
dheerajmpai23 0:cb8104f3ae71 159
dheerajmpai23 0:cb8104f3ae71 160 }
dheerajmpai23 0:cb8104f3ae71 161
dheerajmpai23 0:cb8104f3ae71 162
dheerajmpai23 0:cb8104f3ae71 163 /******************************************************************************************/
dheerajmpai23 0:cb8104f3ae71 164
dheerajmpai23 0:cb8104f3ae71 165 void initiate(void){
dheerajmpai23 0:cb8104f3ae71 166
dheerajmpai23 0:cb8104f3ae71 167 CS=0;
dheerajmpai23 0:cb8104f3ae71 168 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 169 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 170 CS=1;
dheerajmpai23 0:cb8104f3ae71 171 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 172
dheerajmpai23 0:cb8104f3ae71 173 CS=0;
dheerajmpai23 0:cb8104f3ae71 174 adf.write(0x08); // TRANSMIT_DATA LENGTH
dheerajmpai23 0:cb8104f3ae71 175 adf.write(0x14);
dheerajmpai23 0:cb8104f3ae71 176 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 177 CS=1;
dheerajmpai23 0:cb8104f3ae71 178 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 179 CS=0;
dheerajmpai23 0:cb8104f3ae71 180 adf.write(0x08); // TRANSMIT_DATA LENGTH
dheerajmpai23 0:cb8104f3ae71 181 adf.write(0x15);
dheerajmpai23 0:cb8104f3ae71 182 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 183 CS=1;
dheerajmpai23 0:cb8104f3ae71 184 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 185
dheerajmpai23 0:cb8104f3ae71 186 CS=0;
dheerajmpai23 0:cb8104f3ae71 187 adf.write(0x09);
dheerajmpai23 0:cb8104f3ae71 188 adf.write(0x24); // TX_BASE ADDRESS 0x20(starting Tx Byte)
dheerajmpai23 0:cb8104f3ae71 189 adf.write(0x20);
dheerajmpai23 0:cb8104f3ae71 190 CS=1;
dheerajmpai23 0:cb8104f3ae71 191 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 192
dheerajmpai23 0:cb8104f3ae71 193 CS=0;
dheerajmpai23 0:cb8104f3ae71 194 adf.write(0x09);
dheerajmpai23 0:cb8104f3ae71 195 adf.write(0x37);// BUFFER SIZE 0xE0=224 Bytes 0x137 is adress of buffer size
dheerajmpai23 0:cb8104f3ae71 196 adf.write(0xE0);
dheerajmpai23 0:cb8104f3ae71 197 CS=1;
dheerajmpai23 0:cb8104f3ae71 198 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 199
dheerajmpai23 0:cb8104f3ae71 200 CS=0;
dheerajmpai23 0:cb8104f3ae71 201 adf.write(0x09);
dheerajmpai23 0:cb8104f3ae71 202 adf.write(0x36);//BB_Tx_Buffer Signal when Buffer is half filled
dheerajmpai23 0:cb8104f3ae71 203 adf.write(0x70);//0x70 = 112 >> When Half buffer interrupt is given
dheerajmpai23 0:cb8104f3ae71 204 CS=1;
dheerajmpai23 0:cb8104f3ae71 205 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 206
dheerajmpai23 0:cb8104f3ae71 207
dheerajmpai23 0:cb8104f3ae71 208 CS=0;
dheerajmpai23 0:cb8104f3ae71 209 adf.write(0x09);
dheerajmpai23 0:cb8104f3ae71 210 adf.write(0x39);//BB_Tx_Buffer Signal when Buffer is half filled
dheerajmpai23 0:cb8104f3ae71 211 adf.write(0x10);//0x70 = 112 >> When Half buffer interrupt is given
dheerajmpai23 0:cb8104f3ae71 212 CS=1;
dheerajmpai23 0:cb8104f3ae71 213 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 214
dheerajmpai23 0:cb8104f3ae71 215 }
dheerajmpai23 0:cb8104f3ae71 216
dheerajmpai23 0:cb8104f3ae71 217
dheerajmpai23 0:cb8104f3ae71 218
dheerajmpai23 0:cb8104f3ae71 219 /*int irq_src(void){
dheerajmpai23 0:cb8104f3ae71 220
dheerajmpai23 0:cb8104f3ae71 221 adf.write(0x2B);
dheerajmpai23 0:cb8104f3ae71 222 adf.write(0x36);
dheerajmpai23 0:cb8104f3ae71 223 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 224 irqsrc = adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 225
dheerajmpai23 0:cb8104f3ae71 226 irqsrc &= 0x60;
dheerajmpai23 0:cb8104f3ae71 227 if (irqsrc == 0x20)
dheerajmpai23 0:cb8104f3ae71 228 return 1;//Buffer is almost full
dheerajmpai23 0:cb8104f3ae71 229 else if (irqsrc == 0x40)
dheerajmpai23 0:cb8104f3ae71 230 return 2;// Buffer is Full
dheerajmpai23 0:cb8104f3ae71 231 else
dheerajmpai23 0:cb8104f3ae71 232 return 0;
dheerajmpai23 0:cb8104f3ae71 233 }
dheerajmpai23 0:cb8104f3ae71 234 */
dheerajmpai23 0:cb8104f3ae71 235 int p=112;
dheerajmpai23 0:cb8104f3ae71 236 int count = 0;
dheerajmpai23 0:cb8104f3ae71 237 int intcount =0;
dheerajmpai23 3:5ce3971c1545 238 int siz= sizeof(data);
dheerajmpai23 0:cb8104f3ae71 239 void write_data(void){
dheerajmpai23 0:cb8104f3ae71 240 // t.reset();
dheerajmpai23 0:cb8104f3ae71 241 // count++;
dheerajmpai23 0:cb8104f3ae71 242 // cout<<"3"<<ENDL;
dheerajmpai23 0:cb8104f3ae71 243 // ledr=!ledr;
dheerajmpai23 0:cb8104f3ae71 244 // cout<<"irq detected"<<ENDL;
dheerajmpai23 0:cb8104f3ae71 245 // src = irq_src();
dheerajmpai23 0:cb8104f3ae71 246 p+=112;
dheerajmpai23 0:cb8104f3ae71 247
dheerajmpai23 0:cb8104f3ae71 248 //CS=0;
dheerajmpai23 0:cb8104f3ae71 249 // adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF
dheerajmpai23 0:cb8104f3ae71 250 // adf.write(0x36);//Address : 0x336
dheerajmpai23 0:cb8104f3ae71 251 // adf.write(0xFF);//Put Low
dheerajmpai23 0:cb8104f3ae71 252 // CS=1;
dheerajmpai23 0:cb8104f3ae71 253 // wait_us(80);
dheerajmpai23 0:cb8104f3ae71 254 // CS=0;
dheerajmpai23 0:cb8104f3ae71 255 // k=0;
dheerajmpai23 0:cb8104f3ae71 256
dheerajmpai23 0:cb8104f3ae71 257 if(!j){
dheerajmpai23 0:cb8104f3ae71 258 adf.write(0x18);
dheerajmpai23 0:cb8104f3ae71 259 adf.write(0x20);
dheerajmpai23 0:cb8104f3ae71 260 while(k<=223){
dheerajmpai23 0:cb8104f3ae71 261
dheerajmpai23 0:cb8104f3ae71 262 adf.write(data[k]);
dheerajmpai23 0:cb8104f3ae71 263 k++;
dheerajmpai23 0:cb8104f3ae71 264 }
dheerajmpai23 0:cb8104f3ae71 265
dheerajmpai23 0:cb8104f3ae71 266 }
dheerajmpai23 0:cb8104f3ae71 267
dheerajmpai23 3:5ce3971c1545 268 else if(k<siz){
dheerajmpai23 0:cb8104f3ae71 269 // if(src == 1){
dheerajmpai23 0:cb8104f3ae71 270 if(j%2){ //src== Buffer Half Full src == 1
dheerajmpai23 3:5ce3971c1545 271 adf.write(0x18);
dheerajmpai23 3:5ce3971c1545 272 adf.write(0x20);
dheerajmpai23 0:cb8104f3ae71 273 }
dheerajmpai23 0:cb8104f3ae71 274
dheerajmpai23 0:cb8104f3ae71 275 // else if(src==2){
dheerajmpai23 3:5ce3971c1545 276 else{ //src== Buffer is Full src==2
dheerajmpai23 3:5ce3971c1545 277 adf.write(0x18);
dheerajmpai23 3:5ce3971c1545 278 adf.write(0x90);
dheerajmpai23 0:cb8104f3ae71 279 }
dheerajmpai23 0:cb8104f3ae71 280
dheerajmpai23 0:cb8104f3ae71 281
dheerajmpai23 0:cb8104f3ae71 282 while(k<p){
dheerajmpai23 0:cb8104f3ae71 283 adf.write(data[k]);
dheerajmpai23 0:cb8104f3ae71 284 k++;
dheerajmpai23 0:cb8104f3ae71 285
dheerajmpai23 0:cb8104f3ae71 286 }
dheerajmpai23 0:cb8104f3ae71 287 // if((k)>=sizeof(data))
dheerajmpai23 0:cb8104f3ae71 288 // {
dheerajmpai23 0:cb8104f3ae71 289 // ticker.detach();//Stop interrupt detection
dheerajmpai23 0:cb8104f3ae71 290 // cout<<src<<ENDL;
dheerajmpai23 0:cb8104f3ae71 291 // }
dheerajmpai23 0:cb8104f3ae71 292
dheerajmpai23 0:cb8104f3ae71 293
dheerajmpai23 0:cb8104f3ae71 294 }
dheerajmpai23 0:cb8104f3ae71 295
dheerajmpai23 3:5ce3971c1545 296 else if(k>=siz ){
dheerajmpai23 0:cb8104f3ae71 297 k=0;
dheerajmpai23 0:cb8104f3ae71 298 j=1;
dheerajmpai23 0:cb8104f3ae71 299 p=0;
dheerajmpai23 0:cb8104f3ae71 300 // cout<<count<<" "<<sizeof(data)/112<<ENDL;
dheerajmpai23 0:cb8104f3ae71 301 }
dheerajmpai23 0:cb8104f3ae71 302
dheerajmpai23 0:cb8104f3ae71 303
dheerajmpai23 0:cb8104f3ae71 304 CS=0;
dheerajmpai23 0:cb8104f3ae71 305 adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF
dheerajmpai23 0:cb8104f3ae71 306 adf.write(0x36);//Address : 0x336
dheerajmpai23 0:cb8104f3ae71 307 adf.write(0xFF);//Put Low
dheerajmpai23 0:cb8104f3ae71 308 CS=1;
dheerajmpai23 0:cb8104f3ae71 309 wait_us(80);
dheerajmpai23 1:9cd986151b11 310 // CS=0;
dheerajmpai23 0:cb8104f3ae71 311
dheerajmpai23 0:cb8104f3ae71 312 // a[r]=t.read_us();
dheerajmpai23 0:cb8104f3ae71 313 j++;
dheerajmpai23 0:cb8104f3ae71 314 // r++;
dheerajmpai23 1:9cd986151b11 315 // CS=1;
dheerajmpai23 0:cb8104f3ae71 316 wait_us(1);
dheerajmpai23 0:cb8104f3ae71 317 }
dheerajmpai23 0:cb8104f3ae71 318
dheerajmpai23 0:cb8104f3ae71 319 void Interrupt(){
dheerajmpai23 0:cb8104f3ae71 320 x = IRQ;
dheerajmpai23 3:5ce3971c1545 321 CS=0;
dheerajmpai23 3:5ce3971c1545 322 adf.write(0xFF);
dheerajmpai23 3:5ce3971c1545 323 adf.write(0xFF);
dheerajmpai23 3:5ce3971c1545 324 CS=1;
dheerajmpai23 0:cb8104f3ae71 325 // intcount++;
dheerajmpai23 0:cb8104f3ae71 326 if(x)
dheerajmpai23 0:cb8104f3ae71 327 {
dheerajmpai23 0:cb8104f3ae71 328 write_data();
dheerajmpai23 0:cb8104f3ae71 329 }
dheerajmpai23 0:cb8104f3ae71 330 }
dheerajmpai23 0:cb8104f3ae71 331
dheerajmpai23 0:cb8104f3ae71 332
dheerajmpai23 0:cb8104f3ae71 333
dheerajmpai23 0:cb8104f3ae71 334
dheerajmpai23 0:cb8104f3ae71 335 void send_data(void){
dheerajmpai23 0:cb8104f3ae71 336
dheerajmpai23 0:cb8104f3ae71 337 CS=0;
dheerajmpai23 0:cb8104f3ae71 338 adf.write(CMD_CONFIG_DEV);
dheerajmpai23 0:cb8104f3ae71 339 CS=1;
dheerajmpai23 0:cb8104f3ae71 340 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 341
dheerajmpai23 0:cb8104f3ae71 342 CS=0;
dheerajmpai23 0:cb8104f3ae71 343 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 344 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 345 CS=1;
dheerajmpai23 0:cb8104f3ae71 346 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 347
dheerajmpai23 0:cb8104f3ae71 348 write_data();
dheerajmpai23 0:cb8104f3ae71 349
dheerajmpai23 0:cb8104f3ae71 350 CS=0;
dheerajmpai23 0:cb8104f3ae71 351 adf.write(0xB1);
dheerajmpai23 0:cb8104f3ae71 352 CS=1;
dheerajmpai23 0:cb8104f3ae71 353 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 354 assrt_phy_on(0,0,0);
dheerajmpai23 0:cb8104f3ae71 355
dheerajmpai23 0:cb8104f3ae71 356 CS=0;
dheerajmpai23 0:cb8104f3ae71 357 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 358 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 359 CS=1;
dheerajmpai23 0:cb8104f3ae71 360 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 361
dheerajmpai23 0:cb8104f3ae71 362 CS=0;
dheerajmpai23 0:cb8104f3ae71 363 adf.write(CMD_PHY_TX);
dheerajmpai23 0:cb8104f3ae71 364 CS=1;
dheerajmpai23 0:cb8104f3ae71 365 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 366 assrt_phy_tx(0,0,0);
dheerajmpai23 0:cb8104f3ae71 367
dheerajmpai23 0:cb8104f3ae71 368 CS=0;
dheerajmpai23 0:cb8104f3ae71 369 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 370 adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 371 CS=1;
dheerajmpai23 0:cb8104f3ae71 372 wait_ms(2);
dheerajmpai23 0:cb8104f3ae71 373 }
dheerajmpai23 0:cb8104f3ae71 374 /*******ADDITIONAL STUFF****************/
dheerajmpai23 0:cb8104f3ae71 375 unsigned char check_status(void){
dheerajmpai23 1:9cd986151b11 376 unsigned char stat=0;
dheerajmpai23 0:cb8104f3ae71 377 CS=0;
dheerajmpai23 0:cb8104f3ae71 378 adf.write(0xFF);
dheerajmpai23 1:9cd986151b11 379 stat = adf.write(0xFF);
dheerajmpai23 0:cb8104f3ae71 380 CS=1;
dheerajmpai23 0:cb8104f3ae71 381 return stat;
dheerajmpai23 0:cb8104f3ae71 382 }
dheerajmpai23 0:cb8104f3ae71 383 /*****************************************/
dheerajmpai23 0:cb8104f3ae71 384 bool assrt_phy_off(int cmd_err_cnt,int spi_err_cnt,int state_err_cnt){
dheerajmpai23 0:cb8104f3ae71 385 status=check_status();
dheerajmpai23 0:cb8104f3ae71 386 if(status==0xB1){
dheerajmpai23 0:cb8104f3ae71 387 return 0;
dheerajmpai23 0:cb8104f3ae71 388 }
dheerajmpai23 0:cb8104f3ae71 389 else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){
dheerajmpai23 0:cb8104f3ae71 390 return 1;//You need to Reset the hardware
dheerajmpai23 0:cb8104f3ae71 391 }
dheerajmpai23 0:cb8104f3ae71 392 else if(state_err_cnt>STATE_ERR_THRS){
dheerajmpai23 0:cb8104f3ae71 393 return 1;//Again reset the hardware
dheerajmpai23 0:cb8104f3ae71 394 }
dheerajmpai23 0:cb8104f3ae71 395 else if((status&0xA0)==0xA0){ //If Status' first three bit ore 0b1X1 =>SPI ready, Dont care interrupt and CMD Ready.
dheerajmpai23 0:cb8104f3ae71 396 CS=0;
dheerajmpai23 0:cb8104f3ae71 397 adf.write(CMD_PHY_OFF); //CMD_PHY_OFF=0xB0
dheerajmpai23 0:cb8104f3ae71 398 CS=1;
dheerajmpai23 0:cb8104f3ae71 399 wait_us(PHY_OFF_EXEC_TIME);// Typical = 24us We are giving 300us
dheerajmpai23 0:cb8104f3ae71 400 return assrt_phy_off(cmd_err_cnt,spi_err_cnt,state_err_cnt+1);
dheerajmpai23 0:cb8104f3ae71 401 }
dheerajmpai23 0:cb8104f3ae71 402 else if(status&0x80==0x00){
dheerajmpai23 0:cb8104f3ae71 403 wait_ms(5);
dheerajmpai23 0:cb8104f3ae71 404 //Error: SPI=0 Not ready CMD= Dont care
dheerajmpai23 0:cb8104f3ae71 405 return assrt_phy_off(cmd_err_cnt,spi_err_cnt+1,state_err_cnt);
dheerajmpai23 0:cb8104f3ae71 406 }
dheerajmpai23 0:cb8104f3ae71 407 else {//if(status&0xA0==0x80){
dheerajmpai23 0:cb8104f3ae71 408 wait_ms(1);
dheerajmpai23 0:cb8104f3ae71 409 //Error: Command Not ready SPI Ready cmd_err_cnt is a global variable
dheerajmpai23 0:cb8104f3ae71 410 return assrt_phy_off(cmd_err_cnt+1,spi_err_cnt,state_err_cnt);
dheerajmpai23 0:cb8104f3ae71 411 }
dheerajmpai23 0:cb8104f3ae71 412 }
dheerajmpai23 0:cb8104f3ae71 413 /*****************************/
dheerajmpai23 0:cb8104f3ae71 414 bool assrt_phy_on(int cmd_err_cnt,int spi_err_cnt,int state_err_cnt){
dheerajmpai23 0:cb8104f3ae71 415 status=check_status();
dheerajmpai23 2:3ad3165e4d6c 416 if((status&0x1F)==0x12){
dheerajmpai23 0:cb8104f3ae71 417 return 0;
dheerajmpai23 0:cb8104f3ae71 418 }
dheerajmpai23 0:cb8104f3ae71 419 else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){
dheerajmpai23 0:cb8104f3ae71 420 return 1;//You need to Reset the hardware
dheerajmpai23 0:cb8104f3ae71 421 }
dheerajmpai23 0:cb8104f3ae71 422 else if(state_err_cnt>STATE_ERR_THRS){
dheerajmpai23 0:cb8104f3ae71 423 return 1;//Again reset the hardware
dheerajmpai23 0:cb8104f3ae71 424 }
dheerajmpai23 0:cb8104f3ae71 425 else if((status&0xA0)==0xA0){ //If Status' first three bit ore 0b1X1 =>SPI ready, Dont care interrupt and CMD Ready.
dheerajmpai23 0:cb8104f3ae71 426 CS=0;
dheerajmpai23 0:cb8104f3ae71 427 adf.write(0xB1); //CMD_PHY_OFF
dheerajmpai23 0:cb8104f3ae71 428 CS=1;
dheerajmpai23 0:cb8104f3ae71 429 wait_us(PHY_ON_EXEC_TIME);// Typical = 24us We are giving 300us
dheerajmpai23 0:cb8104f3ae71 430 return assrt_phy_on(cmd_err_cnt,spi_err_cnt,state_err_cnt+1);
dheerajmpai23 0:cb8104f3ae71 431 }
dheerajmpai23 0:cb8104f3ae71 432 else if(status&0x80==0x00){
dheerajmpai23 0:cb8104f3ae71 433 wait_ms(5);
dheerajmpai23 0:cb8104f3ae71 434 //Error: SPI=0 Not ready CMD= Dont care
dheerajmpai23 0:cb8104f3ae71 435 return assrt_phy_on(cmd_err_cnt,spi_err_cnt+1,state_err_cnt);
dheerajmpai23 0:cb8104f3ae71 436 }
dheerajmpai23 0:cb8104f3ae71 437 else if(status&0xA0==0x80){
dheerajmpai23 0:cb8104f3ae71 438 wait_ms(1);
dheerajmpai23 0:cb8104f3ae71 439 //Error: Command Not ready SPI Ready cmd_err_cnt is a global variable
dheerajmpai23 0:cb8104f3ae71 440 return assrt_phy_on(cmd_err_cnt+1,spi_err_cnt,state_err_cnt);
dheerajmpai23 0:cb8104f3ae71 441 }
dheerajmpai23 0:cb8104f3ae71 442 }
dheerajmpai23 0:cb8104f3ae71 443 /*****************************/
dheerajmpai23 0:cb8104f3ae71 444 bool assrt_phy_tx(int cmd_err_cnt,int spi_err_cnt,int state_err_cnt){
dheerajmpai23 0:cb8104f3ae71 445 status=check_status();
dheerajmpai23 3:5ce3971c1545 446 if((status & 0x1F) == 0x14){
dheerajmpai23 0:cb8104f3ae71 447 return 0;
dheerajmpai23 0:cb8104f3ae71 448 }
dheerajmpai23 0:cb8104f3ae71 449 else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){
dheerajmpai23 0:cb8104f3ae71 450 return 1;//You need to Reset the hardware
dheerajmpai23 0:cb8104f3ae71 451 }
dheerajmpai23 0:cb8104f3ae71 452 else if(state_err_cnt>STATE_ERR_THRS){
dheerajmpai23 0:cb8104f3ae71 453 return 1;//Again reset the hardware
dheerajmpai23 0:cb8104f3ae71 454 }
dheerajmpai23 0:cb8104f3ae71 455 else if((status&0xA0)==0xA0){ //If Status' first three bit ore 0b1X1 =>SPI ready, Dont care interrupt and CMD Ready.
dheerajmpai23 0:cb8104f3ae71 456 CS=0;
dheerajmpai23 0:cb8104f3ae71 457 adf.write(0xB1); //CMD_PHY_OFF
dheerajmpai23 0:cb8104f3ae71 458 CS=1;
dheerajmpai23 0:cb8104f3ae71 459 wait_us(PHY_TX_EXEC_TIME);// Typical = 24us We are giving 300us
dheerajmpai23 0:cb8104f3ae71 460 return assrt_phy_tx(cmd_err_cnt,spi_err_cnt,state_err_cnt+1);
dheerajmpai23 0:cb8104f3ae71 461 }
dheerajmpai23 0:cb8104f3ae71 462 else if(status&0x80==0x00){
dheerajmpai23 0:cb8104f3ae71 463 wait_ms(1);
dheerajmpai23 0:cb8104f3ae71 464 //Error: SPI=0 Not ready CMD= Dont care
dheerajmpai23 0:cb8104f3ae71 465 return assrt_phy_tx(cmd_err_cnt,spi_err_cnt+1,state_err_cnt);
dheerajmpai23 0:cb8104f3ae71 466 }
dheerajmpai23 0:cb8104f3ae71 467 else if(status&0xA0==0x80){
dheerajmpai23 0:cb8104f3ae71 468 wait_us(50);
dheerajmpai23 0:cb8104f3ae71 469 //Error: Command Not ready SPI Ready cmd_err_cnt is a global variable
dheerajmpai23 0:cb8104f3ae71 470 return assrt_phy_tx(cmd_err_cnt+1,spi_err_cnt,state_err_cnt);
dheerajmpai23 0:cb8104f3ae71 471 }
dheerajmpai23 0:cb8104f3ae71 472 }
dheerajmpai23 0:cb8104f3ae71 473
dheerajmpai23 0:cb8104f3ae71 474 /***************************/
dheerajmpai23 0:cb8104f3ae71 475 bool hardware_reset(int bcn_call){
dheerajmpai23 0:cb8104f3ae71 476 if (bcn_call>20){//Worst Case 20seconds will be lost !
dheerajmpai23 0:cb8104f3ae71 477 return 1;
dheerajmpai23 0:cb8104f3ae71 478 }
dheerajmpai23 0:cb8104f3ae71 479 int count=0;
dheerajmpai23 0:cb8104f3ae71 480 CS=0;
dheerajmpai23 0:cb8104f3ae71 481 adf.write(CMD_HW_RESET);
dheerajmpai23 0:cb8104f3ae71 482 CS=1;
dheerajmpai23 0:cb8104f3ae71 483 wait_ms(2);// Typically 1 ms
dheerajmpai23 1:9cd986151b11 484 while(count<10 && miso_err_cnt<10){
dheerajmpai23 0:cb8104f3ae71 485 if(MISO_PIN){
dheerajmpai23 0:cb8104f3ae71 486
dheerajmpai23 0:cb8104f3ae71 487 if(!assrt_phy_off(0,0,0)){
dheerajmpai23 0:cb8104f3ae71 488 break;
dheerajmpai23 0:cb8104f3ae71 489 }
dheerajmpai23 0:cb8104f3ae71 490 count++;
dheerajmpai23 0:cb8104f3ae71 491 }
dheerajmpai23 0:cb8104f3ae71 492 else{
dheerajmpai23 0:cb8104f3ae71 493 wait_us(50);
dheerajmpai23 0:cb8104f3ae71 494 miso_err_cnt++;
dheerajmpai23 0:cb8104f3ae71 495 }
dheerajmpai23 0:cb8104f3ae71 496 }
dheerajmpai23 1:9cd986151b11 497 if(count==10 ||miso_err_cnt==10){
dheerajmpai23 0:cb8104f3ae71 498 return hardware_reset(bcn_call+1);
dheerajmpai23 0:cb8104f3ae71 499 }
dheerajmpai23 0:cb8104f3ae71 500 else
dheerajmpai23 0:cb8104f3ae71 501 return 0;
dheerajmpai23 0:cb8104f3ae71 502
dheerajmpai23 0:cb8104f3ae71 503 }
dheerajmpai23 0:cb8104f3ae71 504
dheerajmpai23 0:cb8104f3ae71 505
dheerajmpai23 0:cb8104f3ae71 506 /*******************************************/
dheerajmpai23 0:cb8104f3ae71 507 int main()
dheerajmpai23 0:cb8104f3ae71 508 {
dheerajmpai23 0:cb8104f3ae71 509 adf.format(8,0);
dheerajmpai23 0:cb8104f3ae71 510 adf.frequency(1000000);
dheerajmpai23 0:cb8104f3ae71 511 /**ADDED On 21/10/2015 ***/
dheerajmpai23 0:cb8104f3ae71 512 /******************/
dheerajmpai23 0:cb8104f3ae71 513 /***********/
dheerajmpai23 0:cb8104f3ae71 514 bool state_0=0;
dheerajmpai23 0:cb8104f3ae71 515 adf.write(CMD_PHY_OFF); //0xB0
dheerajmpai23 0:cb8104f3ae71 516 while(hw_reset_err_cnt<2){
dheerajmpai23 0:cb8104f3ae71 517
dheerajmpai23 0:cb8104f3ae71 518 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
dheerajmpai23 0:cb8104f3ae71 519 bbram_write();
dheerajmpai23 0:cb8104f3ae71 520 bbram_flag=1;
dheerajmpai23 0:cb8104f3ae71 521 break;
dheerajmpai23 0:cb8104f3ae71 522 }
dheerajmpai23 0:cb8104f3ae71 523 else{
dheerajmpai23 0:cb8104f3ae71 524 hardware_reset(0); // Asserts Hardware for 20sec(20times). PHY_OFF for 20,000 times
dheerajmpai23 1:9cd986151b11 525 hw_reset_err_cnt++;
dheerajmpai23 0:cb8104f3ae71 526 }
dheerajmpai23 0:cb8104f3ae71 527 }
dheerajmpai23 0:cb8104f3ae71 528 state_0=assrt_phy_off(0,0,0);// We actually do not need this but make sure "we do not need this"
dheerajmpai23 0:cb8104f3ae71 529 if(!bbram_flag){
dheerajmpai23 0:cb8104f3ae71 530 //Switch to beacon
dheerajmpai23 0:cb8104f3ae71 531 bcn_flag=1;
dheerajmpai23 0:cb8104f3ae71 532 }
dheerajmpai23 0:cb8104f3ae71 533 initiate();
dheerajmpai23 0:cb8104f3ae71 534 send_data();
dheerajmpai23 0:cb8104f3ae71 535 cout<<"Work"<<ENDL;
dheerajmpai23 0:cb8104f3ae71 536 CS=0;
dheerajmpai23 0:cb8104f3ae71 537 adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF
dheerajmpai23 0:cb8104f3ae71 538 adf.write(0x36);//Address : 0x336
dheerajmpai23 0:cb8104f3ae71 539 adf.write(0xFF);//Put Low Clearing the MCR Value of the Source Register
dheerajmpai23 0:cb8104f3ae71 540 CS=1;
dheerajmpai23 0:cb8104f3ae71 541
dheerajmpai23 3:5ce3971c1545 542 ticker.attach_us(&Interrupt,3200);
dheerajmpai23 3:5ce3971c1545 543 }