bcn code modification for new short bcn format

Dependencies:   mbed

Fork of BEACON_CODE by pradeep shekhar

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers BCN.h Source File

BCN.h

00001 #include "mbed.h"
00002 
00003 //STATES
00004 #define BCN_RF_SILENCE 0 
00005 #define BCN_TX_DISABLED 1
00006 #define BCN_TX_STANDBY 2
00007 #define BCN_TX_FAILURE 3
00008 #define BCN_TX_SUCCESS 4
00009 
00010 //Size of tx data
00011 /*
00012 #define SHORT_TX_DATA 60    //in bytes
00013 #define LONG_TX_DATA 75    //in bytes      
00014 */
00015 
00016 #define SHORT_TX_DATA 480    //in bytes
00017 #define LONG_TX_DATA 127    //in bytes      
00018 
00019 //#define RF_SILENCE_TIME 35*60
00020 #define RF_SILENCE_TIME 5 //changed for testing
00021 
00022 //FUNCTION PROTOTYPING
00023 void FCTN_BCN_INIT();
00024 void FCTN_BCN_FEN();
00025 void FCTN_BCN_TX_MAIN();
00026 void Set_BCN_TX_STATUS(uint8_t);
00027 uint8_t check_Temperature();
00028 void SHORT_BCN_TX();
00029 void LONG_BCN_TX();
00030 void Init_BEACON_HW();
00031 void writereg(uint8_t,uint8_t);
00032 uint8_t readreg(uint8_t);
00033 void clearTxBuf();
00034 uint8_t setFrequency(double);
00035 bool Check_ACK_RECEIVED();
00036 void init_spi();
00037 void reset_rfm(uint8_t);
00038 
00039 #define RF22_MAX_MESSAGE_LEN 255
00040 
00041 //These values we set for FIFO thresholds
00042 #define RF22_TXFFAEM_THRESHOLD 40
00043 
00044 //Registers
00045 #define RF22_REG_00_DEVICE_TYPE                         0x00
00046 #define RF22_REG_02_DEVICE_STATUS                       0x02
00047 #define RF22_REG_03_INTERRUPT_STATUS1                   0x03
00048 #define RF22_REG_04_INTERRUPT_STATUS2                   0x04
00049 #define RF22_REG_07_OPERATING_MODE1                     0x07
00050 #define RF22_REG_08_OPERATING_MODE2                     0x08
00051 #define RF22_REG_09_OSCILLATOR_LOAD_CAPACITANCE         0x09
00052 #define RF22_REG_0B_GPIO_CONFIGURATION0                 0x0b
00053 #define RF22_REG_0C_GPIO_CONFIGURATION1                 0x0c
00054 #define RF22_REG_0D_GPIO_CONFIGURATION2                 0x0d
00055 #define RF22_REG_0F_ADC_CONFIGURATION                   0x0f
00056 #define RF22_REG_11_ADC_Value                           0x11
00057 #define RF22_REG_12_Temperature_Sensor_Calibration      0x12
00058 #define RF22_REG_1C_IF_FILTER_BANDWIDTH                 0x1c
00059 #define RF22_REG_1F_CLOCK_RECOVERY_GEARSHIFT_OVERRIDE   0x1f
00060 #define RF22_REG_20_CLOCK_RECOVERY_OVERSAMPLING_RATE    0x20
00061 #define RF22_REG_21_CLOCK_RECOVERY_OFFSET2              0x21
00062 #define RF22_REG_22_CLOCK_RECOVERY_OFFSET1              0x22
00063 #define RF22_REG_23_CLOCK_RECOVERY_OFFSET0              0x23
00064 #define RF22_REG_24_CLOCK_RECOVERY_TIMING_LOOP_GAIN1    0x24
00065 #define RF22_REG_25_CLOCK_RECOVERY_TIMING_LOOP_GAIN0    0x25
00066 #define RF22_REG_26_RSSI                                0x26
00067 #define RF22_REG_27_RSSI_THRESHOLD                      0x27
00068 #define RF22_REG_28_ANTENNA_DIVERSITY1                  0x28
00069 #define RF22_REG_29_ANTENNA_DIVERSITY2                  0x29
00070 #define RF22_REG_2A_AFC_LIMITER                         0x2a
00071 #define RF22_REG_2B_AFC_CORRECTION_READ                 0x2b
00072 #define RF22_REG_2C_OOK_COUNTER_VALUE_1                 0x2c
00073 #define RF22_REG_2D_OOK_COUNTER_VALUE_2                 0x2d
00074 #define RF22_REG_2E_SLICER_PEAK_HOLD                    0x2e
00075 #define RF22_REG_30_DATA_ACCESS_CONTROL                 0x30
00076 #define RF22_REG_31_EZMAC_STATUS                        0x31
00077 #define RF22_REG_32_HEADER_CONTROL1                     0x32
00078 #define RF22_REG_33_HEADER_CONTROL2                     0x33
00079 #define RF22_REG_34_PREAMBLE_LENGTH                     0x34
00080 #define RF22_REG_35_PREAMBLE_DETECTION_CONTROL1         0x35
00081 #define RF22_REG_36_SYNC_WORD3                          0x36
00082 #define RF22_REG_37_SYNC_WORD2                          0x37
00083 #define RF22_REG_38_SYNC_WORD1                          0x38
00084 #define RF22_REG_39_SYNC_WORD0                          0x39
00085 #define RF22_REG_3A_TRANSMIT_HEADER3                    0x3a
00086 #define RF22_REG_3B_TRANSMIT_HEADER2                    0x3b
00087 #define RF22_REG_3C_TRANSMIT_HEADER1                    0x3c
00088 #define RF22_REG_3D_TRANSMIT_HEADER0                    0x3d
00089 #define RF22_REG_3E_PACKET_LENGTH                       0x3e
00090 #define RF22_REG_3F_CHECK_HEADER3                       0x3f
00091 #define RF22_REG_40_CHECK_HEADER2                       0x40
00092 #define RF22_REG_41_CHECK_HEADER1                       0x41
00093 #define RF22_REG_42_CHECK_HEADER0                       0x42
00094 #define RF22_REG_43_HEADER_ENABLE3                      0x43
00095 #define RF22_REG_44_HEADER_ENABLE2                      0x44
00096 #define RF22_REG_45_HEADER_ENABLE1                      0x45
00097 #define RF22_REG_46_HEADER_ENABLE0                      0x46
00098 #define RF22_REG_47_RECEIVED_HEADER3                    0x47
00099 #define RF22_REG_48_RECEIVED_HEADER2                    0x48
00100 #define RF22_REG_49_RECEIVED_HEADER1                    0x49
00101 #define RF22_REG_4A_RECEIVED_HEADER0                    0x4a
00102 #define RF22_REG_4B_RECEIVED_PACKET_LENGTH              0x4b
00103 #define RF22_REG_58                                     0x58
00104 #define RF22_REG_60_CHANNEL_FILTER_COEFFICIENT_ADDRESS  0x60
00105 #define RF22_REG_61_CHANNEL_FILTER_COEFFICIENT_VALUE    0x61
00106 #define RF22_REG_62_CRYSTAL_OSCILLATOR_POR_CONTROL      0x62
00107 #define RF22_REG_63_RC_OSCILLATOR_COARSE_CALIBRATION    0x63
00108 #define RF22_REG_64_RC_OSCILLATOR_FINE_CALIBRATION      0x64
00109 #define RF22_REG_65_LDO_CONTROL_OVERRIDE                0x65
00110 #define RF22_REG_66_LDO_LEVEL_SETTINGS                  0x66
00111 #define RF22_REG_67_DELTA_SIGMA_ADC_TUNING1             0x67
00112 #define RF22_REG_68_DELTA_SIGMA_ADC_TUNING2             0x68
00113 #define RF22_REG_69_AGC_OVERRIDE1                       0x69
00114 #define RF22_REG_6A_AGC_OVERRIDE2                       0x6a
00115 #define RF22_REG_6B_GFSK_FIR_FILTER_COEFFICIENT_ADDRESS 0x6b
00116 #define RF22_REG_6C_GFSK_FIR_FILTER_COEFFICIENT_VALUE   0x6c
00117 #define RF22_REG_6D_TX_POWER                            0x6d
00118 #define RF22_REG_6E_TX_DATA_RATE                        0x6e
00119 #define RF22_REG_6F_TX_DATA_RATE                        0x6f
00120 #define RF22_REG_70_MODULATION_CONTROL1                 0x70
00121 #define RF22_REG_71_MODULATION_CONTROL2                 0x71
00122 #define RF22_REG_72_FREQUENCY_DEVIATION                 0x72
00123 #define RF22_REG_73_FREQUENCY_OFFSET1                   0x73
00124 #define RF22_REG_74_FREQUENCY_OFFSET2                   0x74
00125 #define RF22_REG_75_FREQUENCY_BAND_SELECT               0x75
00126 #define RF22_REG_76_NOMINAL_CARRIER_FREQUENCY1          0x76
00127 #define RF22_REG_77_NOMINAL_CARRIER_FREQUENCY0          0x77
00128 #define RF22_REG_79_FREQUENCY_HOPPING_CHANNEL_SELECT    0x79
00129 #define RF22_REG_7A_FREQUENCY_HOPPING_STEP_SIZE         0x7a
00130 #define RF22_REG_7C_TX_FIFO_CONTROL1                    0x7c
00131 #define RF22_REG_7D_TX_FIFO_CONTROL2                    0x7d
00132 #define RF22_REG_7E_RX_FIFO_CONTROL                     0x7e
00133 #define RF22_REG_7F_FIFO_ACCESS                         0x7f