HelloWorld_IDS01A4 mbed application for Spirit1 P2P demo.

Dependencies:   mbed

Fork of HelloWorld_IDS01A5_Program by rosarium pila

mbed 2.0 (a.k.a classic) HelloWorld example for Spirit1 to transfer data from one node to another.
To send the predefined data packet from the sender to the receiver, user needs to press User Button on the board. The LED on the receiver expansion board will toggle on reception of data successfully.
Data packets sent and received can be seen on USB serial terminal.

EVALUATION BOARDS RF FREQUENCY DESCRIPTION :
X-NUCLEO-IDS01A4 868 MHz 868 MHz RF expansion board based on SPIRIT1

Committer:
rosarium
Date:
Thu May 25 16:38:55 2017 +0000
Revision:
0:2ddc0583bcec
First draft version of HelloWorld_IDS01A5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rosarium 0:2ddc0583bcec 1 /**
rosarium 0:2ddc0583bcec 2 ******************************************************************************
rosarium 0:2ddc0583bcec 3 * @file SPIRIT_Radio.h
rosarium 0:2ddc0583bcec 4 * @author VMA division - AMS
rosarium 0:2ddc0583bcec 5 * @version 3.2.2
rosarium 0:2ddc0583bcec 6 * @date 08-July-2015
rosarium 0:2ddc0583bcec 7 * @brief This file provides all the low level API to manage Analog and Digital
rosarium 0:2ddc0583bcec 8 * radio part of SPIRIT.
rosarium 0:2ddc0583bcec 9 * @details
rosarium 0:2ddc0583bcec 10 *
rosarium 0:2ddc0583bcec 11 * In order to configure the Radio main parameters, the user can
rosarium 0:2ddc0583bcec 12 * fit <i>SRadioInit</i> structure the and call the <i>SpiritRadioInit()</i>
rosarium 0:2ddc0583bcec 13 * function passing its pointer as an argument.
rosarium 0:2ddc0583bcec 14 *
rosarium 0:2ddc0583bcec 15 * <b>Example:</b>
rosarium 0:2ddc0583bcec 16 * @code
rosarium 0:2ddc0583bcec 17 *
rosarium 0:2ddc0583bcec 18 * SRadioInit radioInit = {
rosarium 0:2ddc0583bcec 19 * 0, // Xtal offset in ppm
rosarium 0:2ddc0583bcec 20 * 433.4e6, // base frequency
rosarium 0:2ddc0583bcec 21 * 20e3, // channel space
rosarium 0:2ddc0583bcec 22 * 0, // channel number
rosarium 0:2ddc0583bcec 23 * FSK, // modulation select
rosarium 0:2ddc0583bcec 24 * 38400, // datarate
rosarium 0:2ddc0583bcec 25 * 20e3, // frequency deviation
rosarium 0:2ddc0583bcec 26 * 100.5e3 // channel filter bandwidth
rosarium 0:2ddc0583bcec 27 * };
rosarium 0:2ddc0583bcec 28 *
rosarium 0:2ddc0583bcec 29 * ...
rosarium 0:2ddc0583bcec 30 *
rosarium 0:2ddc0583bcec 31 * SpiritRadioInit(&radioInit);
rosarium 0:2ddc0583bcec 32 * @endcode
rosarium 0:2ddc0583bcec 33 *
rosarium 0:2ddc0583bcec 34 * Another important parameter for the radio configuration is the
rosarium 0:2ddc0583bcec 35 * transmission power.
rosarium 0:2ddc0583bcec 36 * The user is allowed to configure it using the function <i>SpiritRadioSetPALeveldBm()</i>
rosarium 0:2ddc0583bcec 37 * which sets the PA LEVEL specified by the first argument to the
rosarium 0:2ddc0583bcec 38 * power expressed in dBm by the second parameter.
rosarium 0:2ddc0583bcec 39 *
rosarium 0:2ddc0583bcec 40 * <b>Example:</b>
rosarium 0:2ddc0583bcec 41 * @code
rosarium 0:2ddc0583bcec 42 *
rosarium 0:2ddc0583bcec 43 * SpiritRadioSetPALeveldBm(0 , 10.0);
rosarium 0:2ddc0583bcec 44 *
rosarium 0:2ddc0583bcec 45 * @endcode
rosarium 0:2ddc0583bcec 46 *
rosarium 0:2ddc0583bcec 47 *
rosarium 0:2ddc0583bcec 48 * @note The effective power that is set can be a little different from the
rosarium 0:2ddc0583bcec 49 * passed argument in dBm because the function performs an approximation.
rosarium 0:2ddc0583bcec 50 *
rosarium 0:2ddc0583bcec 51
rosarium 0:2ddc0583bcec 52 * @attention
rosarium 0:2ddc0583bcec 53 *
rosarium 0:2ddc0583bcec 54 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
rosarium 0:2ddc0583bcec 55 *
rosarium 0:2ddc0583bcec 56 * Redistribution and use in source and binary forms, with or without modification,
rosarium 0:2ddc0583bcec 57 * are permitted provided that the following conditions are met:
rosarium 0:2ddc0583bcec 58 * 1. Redistributions of source code must retain the above copyright notice,
rosarium 0:2ddc0583bcec 59 * this list of conditions and the following disclaimer.
rosarium 0:2ddc0583bcec 60 * 2. Redistributions in binary form must reproduce the above copyright notice,
rosarium 0:2ddc0583bcec 61 * this list of conditions and the following disclaimer in the documentation
rosarium 0:2ddc0583bcec 62 * and/or other materials provided with the distribution.
rosarium 0:2ddc0583bcec 63 * 3. Neither the name of STMicroelectronics nor the names of its contributors
rosarium 0:2ddc0583bcec 64 * may be used to endorse or promote products derived from this software
rosarium 0:2ddc0583bcec 65 * without specific prior written permission.
rosarium 0:2ddc0583bcec 66 *
rosarium 0:2ddc0583bcec 67 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
rosarium 0:2ddc0583bcec 68 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
rosarium 0:2ddc0583bcec 69 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rosarium 0:2ddc0583bcec 70 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
rosarium 0:2ddc0583bcec 71 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
rosarium 0:2ddc0583bcec 72 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
rosarium 0:2ddc0583bcec 73 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
rosarium 0:2ddc0583bcec 74 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
rosarium 0:2ddc0583bcec 75 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
rosarium 0:2ddc0583bcec 76 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rosarium 0:2ddc0583bcec 77 *
rosarium 0:2ddc0583bcec 78 ******************************************************************************
rosarium 0:2ddc0583bcec 79 */
rosarium 0:2ddc0583bcec 80
rosarium 0:2ddc0583bcec 81 /* Define to prevent recursive inclusion -------------------------------------*/
rosarium 0:2ddc0583bcec 82 #ifndef __SPIRIT_RADIO_H
rosarium 0:2ddc0583bcec 83 #define __SPIRIT_RADIO_H
rosarium 0:2ddc0583bcec 84
rosarium 0:2ddc0583bcec 85
rosarium 0:2ddc0583bcec 86 /* Includes ------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 87
rosarium 0:2ddc0583bcec 88 #include "SPIRIT_Regs.h"
rosarium 0:2ddc0583bcec 89 #include "SPIRIT_Types.h"
rosarium 0:2ddc0583bcec 90 #include "SPIRIT_Config.h"
rosarium 0:2ddc0583bcec 91
rosarium 0:2ddc0583bcec 92
rosarium 0:2ddc0583bcec 93 #ifdef __cplusplus
rosarium 0:2ddc0583bcec 94 extern "C" {
rosarium 0:2ddc0583bcec 95 #endif
rosarium 0:2ddc0583bcec 96
rosarium 0:2ddc0583bcec 97
rosarium 0:2ddc0583bcec 98 /** @addtogroup SPIRIT_Libraries
rosarium 0:2ddc0583bcec 99 * @{
rosarium 0:2ddc0583bcec 100 */
rosarium 0:2ddc0583bcec 101
rosarium 0:2ddc0583bcec 102
rosarium 0:2ddc0583bcec 103 /** @defgroup SPIRIT_Radio Radio
rosarium 0:2ddc0583bcec 104 * @brief Configuration and management of SPIRIT RF Analog and Digital part.
rosarium 0:2ddc0583bcec 105 * @details See the file <i>@ref SPIRIT_Radio.h</i> for more details.
rosarium 0:2ddc0583bcec 106 * @{
rosarium 0:2ddc0583bcec 107 */
rosarium 0:2ddc0583bcec 108
rosarium 0:2ddc0583bcec 109
rosarium 0:2ddc0583bcec 110
rosarium 0:2ddc0583bcec 111 /** @defgroup Radio_Exported_Types Radio Exported Types
rosarium 0:2ddc0583bcec 112 * @{
rosarium 0:2ddc0583bcec 113 */
rosarium 0:2ddc0583bcec 114
rosarium 0:2ddc0583bcec 115
rosarium 0:2ddc0583bcec 116 /**
rosarium 0:2ddc0583bcec 117 * @brief SPIRIT XTAL frequency enumeration
rosarium 0:2ddc0583bcec 118 */
rosarium 0:2ddc0583bcec 119 typedef enum
rosarium 0:2ddc0583bcec 120 {
rosarium 0:2ddc0583bcec 121 XTAL_FLAG_24_MHz = 0x00, /*!< 24 MHz Xtal selected */
rosarium 0:2ddc0583bcec 122 XTAL_FLAG_26_MHz = 0x01 /*!< 26 MHz Xtal selected */
rosarium 0:2ddc0583bcec 123
rosarium 0:2ddc0583bcec 124 }XtalFlag;
rosarium 0:2ddc0583bcec 125
rosarium 0:2ddc0583bcec 126
rosarium 0:2ddc0583bcec 127 #define IS_XTAL_FLAG(FLAG) (((FLAG) == XTAL_FLAG_24_MHz) || \
rosarium 0:2ddc0583bcec 128 ((FLAG) == XTAL_FLAG_26_MHz))
rosarium 0:2ddc0583bcec 129
rosarium 0:2ddc0583bcec 130 /**
rosarium 0:2ddc0583bcec 131 * @brief SPIRIT Band enumeration
rosarium 0:2ddc0583bcec 132 */
rosarium 0:2ddc0583bcec 133 typedef enum
rosarium 0:2ddc0583bcec 134 {
rosarium 0:2ddc0583bcec 135 HIGH_BAND = 0x00, /*!< High_Band selected: from 779 MHz to 915 MHz */
rosarium 0:2ddc0583bcec 136 MIDDLE_BAND = 0x01, /*!< Middle Band selected: from 387 MHz to 470 MHz */
rosarium 0:2ddc0583bcec 137 LOW_BAND = 0x02, /*!< Low Band selected: from 300 MHz to 348 MHz */
rosarium 0:2ddc0583bcec 138 VERY_LOW_BAND = 0x03 /*!< Vary low Band selected: from 150 MHz to 174 MHz */
rosarium 0:2ddc0583bcec 139 }BandSelect;
rosarium 0:2ddc0583bcec 140
rosarium 0:2ddc0583bcec 141
rosarium 0:2ddc0583bcec 142 #define IS_BAND_SELECTED(BAND) ((BAND == HIGH_BAND) || \
rosarium 0:2ddc0583bcec 143 (BAND == MIDDLE_BAND) || \
rosarium 0:2ddc0583bcec 144 (BAND == LOW_BAND) || \
rosarium 0:2ddc0583bcec 145 (BAND == VERY_LOW_BAND))
rosarium 0:2ddc0583bcec 146
rosarium 0:2ddc0583bcec 147 /**
rosarium 0:2ddc0583bcec 148 * @brief SPIRIT Modulation enumeration
rosarium 0:2ddc0583bcec 149 */
rosarium 0:2ddc0583bcec 150 typedef enum
rosarium 0:2ddc0583bcec 151 {
rosarium 0:2ddc0583bcec 152 FSK = 0x00, /*!< 2-FSK modulation selected */
rosarium 0:2ddc0583bcec 153 GFSK_BT05 = 0x50, /*!< GFSK modulation selected with BT=0.5 */
rosarium 0:2ddc0583bcec 154 GFSK_BT1 = 0x10, /*!< GFSK modulation selected with BT=1 */
rosarium 0:2ddc0583bcec 155 ASK_OOK = 0x20, /*!< ASK or OOK modulation selected. ASK will use power ramping */
rosarium 0:2ddc0583bcec 156 MSK = 0x30 /*!< MSK modulation selected */
rosarium 0:2ddc0583bcec 157
rosarium 0:2ddc0583bcec 158 }ModulationSelect;
rosarium 0:2ddc0583bcec 159
rosarium 0:2ddc0583bcec 160
rosarium 0:2ddc0583bcec 161 #define IS_MODULATION_SELECTED(MOD) (((MOD) == FSK) || \
rosarium 0:2ddc0583bcec 162 ((MOD) == GFSK_BT05) || \
rosarium 0:2ddc0583bcec 163 ((MOD) == GFSK_BT1) || \
rosarium 0:2ddc0583bcec 164 ((MOD) == ASK_OOK) || \
rosarium 0:2ddc0583bcec 165 ((MOD) == MSK))
rosarium 0:2ddc0583bcec 166
rosarium 0:2ddc0583bcec 167
rosarium 0:2ddc0583bcec 168 /**
rosarium 0:2ddc0583bcec 169 * @brief SPIRIT PA additional load capacitors bank enumeration
rosarium 0:2ddc0583bcec 170 */
rosarium 0:2ddc0583bcec 171 typedef enum
rosarium 0:2ddc0583bcec 172 {
rosarium 0:2ddc0583bcec 173 LOAD_0_PF = PA_POWER0_CWC_0, /*!< No additional PA load capacitor */
rosarium 0:2ddc0583bcec 174 LOAD_1_2_PF = PA_POWER0_CWC_1_2P, /*!< 1.2pF additional PA load capacitor */
rosarium 0:2ddc0583bcec 175 LOAD_2_4_PF = PA_POWER0_CWC_2_4P, /*!< 2.4pF additional PA load capacitor */
rosarium 0:2ddc0583bcec 176 LOAD_3_6_PF = PA_POWER0_CWC_3_6P /*!< 3.6pF additional PA load capacitor */
rosarium 0:2ddc0583bcec 177
rosarium 0:2ddc0583bcec 178 }PALoadCapacitor;
rosarium 0:2ddc0583bcec 179
rosarium 0:2ddc0583bcec 180 #define IS_PA_LOAD_CAP(CWC) (((CWC) == LOAD_0_PF) || \
rosarium 0:2ddc0583bcec 181 ((CWC) == LOAD_1_2_PF) || \
rosarium 0:2ddc0583bcec 182 ((CWC) == LOAD_2_4_PF) || \
rosarium 0:2ddc0583bcec 183 ((CWC) == LOAD_3_6_PF))
rosarium 0:2ddc0583bcec 184
rosarium 0:2ddc0583bcec 185
rosarium 0:2ddc0583bcec 186 /**
rosarium 0:2ddc0583bcec 187 * @brief SPIRIT AFC Mode selection
rosarium 0:2ddc0583bcec 188 */
rosarium 0:2ddc0583bcec 189 typedef enum
rosarium 0:2ddc0583bcec 190 {
rosarium 0:2ddc0583bcec 191 AFC_SLICER_CORRECTION = AFC2_AFC_MODE_SLICER, /*!< AFC loop closed on slicer */
rosarium 0:2ddc0583bcec 192 AFC_2ND_IF_CORRECTION = AFC2_AFC_MODE_MIXER /*!< AFC loop closed on 2nd conversion stage */
rosarium 0:2ddc0583bcec 193
rosarium 0:2ddc0583bcec 194 }AFCMode;
rosarium 0:2ddc0583bcec 195
rosarium 0:2ddc0583bcec 196 #define IS_AFC_MODE(MODE) ((MODE) == AFC_SLICER_CORRECTION || (MODE) == AFC_2ND_IF_CORRECTION)
rosarium 0:2ddc0583bcec 197
rosarium 0:2ddc0583bcec 198
rosarium 0:2ddc0583bcec 199 /**
rosarium 0:2ddc0583bcec 200 * @brief SPIRIT AGC Mode selection
rosarium 0:2ddc0583bcec 201 */
rosarium 0:2ddc0583bcec 202 typedef enum
rosarium 0:2ddc0583bcec 203 {
rosarium 0:2ddc0583bcec 204 AGC_LINEAR_MODE = AGCCTRL0_AGC_MODE_LINEAR, /*!< AGC works in linear mode */
rosarium 0:2ddc0583bcec 205 AGC_BINARY_MODE = AGCCTRL0_AGC_MODE_BINARY /*!< AGC works in binary mode */
rosarium 0:2ddc0583bcec 206
rosarium 0:2ddc0583bcec 207 }AGCMode;
rosarium 0:2ddc0583bcec 208
rosarium 0:2ddc0583bcec 209 #define IS_AGC_MODE(MODE) ((MODE) == AGC_LINEAR_MODE || (MODE) == AGC_BINARY_MODE)
rosarium 0:2ddc0583bcec 210
rosarium 0:2ddc0583bcec 211
rosarium 0:2ddc0583bcec 212 /**
rosarium 0:2ddc0583bcec 213 * @brief SPIRIT Clock Recovery Mode selection
rosarium 0:2ddc0583bcec 214 */
rosarium 0:2ddc0583bcec 215 typedef enum
rosarium 0:2ddc0583bcec 216 {
rosarium 0:2ddc0583bcec 217 CLK_REC_PLL = FDEV0_CLOCK_REG_ALGO_SEL_PLL, /*!< PLL alogrithm for clock recovery */
rosarium 0:2ddc0583bcec 218 CLK_REC_DLL = FDEV0_CLOCK_REG_ALGO_SEL_DLL /*!< DLL alogrithm for clock recovery */
rosarium 0:2ddc0583bcec 219
rosarium 0:2ddc0583bcec 220 }ClkRecMode;
rosarium 0:2ddc0583bcec 221
rosarium 0:2ddc0583bcec 222 #define IS_CLK_REC_MODE(MODE) ((MODE) == CLK_REC_PLL || (MODE) == CLK_REC_DLL)
rosarium 0:2ddc0583bcec 223
rosarium 0:2ddc0583bcec 224
rosarium 0:2ddc0583bcec 225 /**
rosarium 0:2ddc0583bcec 226 * @brief SPIRIT Postfilter length
rosarium 0:2ddc0583bcec 227 */
rosarium 0:2ddc0583bcec 228 typedef enum
rosarium 0:2ddc0583bcec 229 {
rosarium 0:2ddc0583bcec 230 PSTFLT_LENGTH_8 = 0x00, /*!< Postfilter length is 8 symbols */
rosarium 0:2ddc0583bcec 231 PSTFLT_LENGTH_16 = 0x10 /*!< Postfilter length is 16 symbols */
rosarium 0:2ddc0583bcec 232
rosarium 0:2ddc0583bcec 233 }PstFltLength;
rosarium 0:2ddc0583bcec 234
rosarium 0:2ddc0583bcec 235 #define IS_PST_FLT_LENGTH(LENGTH) ((LENGTH) == PSTFLT_LENGTH_8 || (LENGTH) == PSTFLT_LENGTH_16)
rosarium 0:2ddc0583bcec 236
rosarium 0:2ddc0583bcec 237
rosarium 0:2ddc0583bcec 238 /**
rosarium 0:2ddc0583bcec 239 * @brief SPIRIT OOK Peak Decay
rosarium 0:2ddc0583bcec 240 */
rosarium 0:2ddc0583bcec 241 typedef enum
rosarium 0:2ddc0583bcec 242 {
rosarium 0:2ddc0583bcec 243 FAST_DECAY = 0x00, /*!< Peak decay control for OOK: fast decay */
rosarium 0:2ddc0583bcec 244 MEDIUM_FAST_DECAY = 0x01, /*!< Peak decay control for OOK: medium_fast decay */
rosarium 0:2ddc0583bcec 245 MEDIUM_SLOW_DECAY = 0x02, /*!< Peak decay control for OOK: medium_fast decay */
rosarium 0:2ddc0583bcec 246 SLOW_DECAY = 0x03 /*!< Peak decay control for OOK: slow decay */
rosarium 0:2ddc0583bcec 247
rosarium 0:2ddc0583bcec 248 }OokPeakDecay;
rosarium 0:2ddc0583bcec 249
rosarium 0:2ddc0583bcec 250 #define IS_OOK_PEAK_DECAY(DECAY) (((DECAY) == FAST_DECAY) ||\
rosarium 0:2ddc0583bcec 251 ((DECAY) == MEDIUM_FAST_DECAY) ||\
rosarium 0:2ddc0583bcec 252 ((DECAY) == MEDIUM_SLOW_DECAY) ||\
rosarium 0:2ddc0583bcec 253 ((DECAY) == SLOW_DECAY))
rosarium 0:2ddc0583bcec 254
rosarium 0:2ddc0583bcec 255
rosarium 0:2ddc0583bcec 256 /**
rosarium 0:2ddc0583bcec 257 * @brief SPIRIT Radio Init structure definition
rosarium 0:2ddc0583bcec 258 */
rosarium 0:2ddc0583bcec 259 typedef struct
rosarium 0:2ddc0583bcec 260 {
rosarium 0:2ddc0583bcec 261 int16_t nXtalOffsetPpm; /*!< Specifies the offset frequency (in ppm)
rosarium 0:2ddc0583bcec 262 to compensate crystal inaccuracy expressed
rosarium 0:2ddc0583bcec 263 as signed value.*/
rosarium 0:2ddc0583bcec 264
rosarium 0:2ddc0583bcec 265 uint32_t lFrequencyBase; /*!< Specifies the base carrier frequency (in Hz),
rosarium 0:2ddc0583bcec 266 i.e. the carrier frequency of channel #0.
rosarium 0:2ddc0583bcec 267 This parameter can be in one of the following ranges:
rosarium 0:2ddc0583bcec 268 High_Band: from 779 MHz to 915 MHz
rosarium 0:2ddc0583bcec 269 Middle Band: from 387 MHz to 470 MHz
rosarium 0:2ddc0583bcec 270 Low Band: from 300 MHz to 348 MHz */
rosarium 0:2ddc0583bcec 271 uint32_t nChannelSpace; /*!< Specifies the channel spacing expressed in Hz.
rosarium 0:2ddc0583bcec 272 The channel spacing is expressed as:
rosarium 0:2ddc0583bcec 273 NxFREQUENCY_STEPS, where FREQUENCY STEPS
rosarium 0:2ddc0583bcec 274 is F_Xo/2^15.
rosarium 0:2ddc0583bcec 275 This parameter can be in the range: [0, F_Xo/2^15*255] Hz */
rosarium 0:2ddc0583bcec 276 uint8_t cChannelNumber; /*!< Specifies the channel number. This value
rosarium 0:2ddc0583bcec 277 is multiplied by the channel spacing and
rosarium 0:2ddc0583bcec 278 added to synthesizer base frequency to
rosarium 0:2ddc0583bcec 279 generate the actual RF carrier frequency */
rosarium 0:2ddc0583bcec 280 ModulationSelect xModulationSelect; /*!< Specifies the modulation. This
rosarium 0:2ddc0583bcec 281 parameter can be any value of
rosarium 0:2ddc0583bcec 282 @ref ModulationSelect */
rosarium 0:2ddc0583bcec 283 uint32_t lDatarate; /*!< Specifies the datarate expressed in bps.
rosarium 0:2ddc0583bcec 284 This parameter can be in the range between
rosarium 0:2ddc0583bcec 285 100 bps and 500 kbps */
rosarium 0:2ddc0583bcec 286 uint32_t lFreqDev; /*!< Specifies the frequency deviation expressed in Hz.
rosarium 0:2ddc0583bcec 287 This parameter can be in the range: [F_Xo*8/2^18, F_Xo*7680/2^18] Hz */
rosarium 0:2ddc0583bcec 288 uint32_t lBandwidth; /*!< Specifies the channel filter bandwidth
rosarium 0:2ddc0583bcec 289 expressed in Hz. This parameter can be
rosarium 0:2ddc0583bcec 290 in the range between 1100 and 800100 Hz */
rosarium 0:2ddc0583bcec 291
rosarium 0:2ddc0583bcec 292 }SRadioInit;
rosarium 0:2ddc0583bcec 293
rosarium 0:2ddc0583bcec 294 /**
rosarium 0:2ddc0583bcec 295 * @}
rosarium 0:2ddc0583bcec 296 */
rosarium 0:2ddc0583bcec 297
rosarium 0:2ddc0583bcec 298
rosarium 0:2ddc0583bcec 299
rosarium 0:2ddc0583bcec 300 /** @defgroup Radio_Exported_Constants Radio Exported Constants
rosarium 0:2ddc0583bcec 301 * @{
rosarium 0:2ddc0583bcec 302 */
rosarium 0:2ddc0583bcec 303
rosarium 0:2ddc0583bcec 304 /** @defgroup Radio_Band
rosarium 0:2ddc0583bcec 305 * @{
rosarium 0:2ddc0583bcec 306 */
rosarium 0:2ddc0583bcec 307
rosarium 0:2ddc0583bcec 308 #define FBASE_DIVIDER 262144 /*!< 2^18 factor dividing fxo in fbase formula */
rosarium 0:2ddc0583bcec 309
rosarium 0:2ddc0583bcec 310 #define HIGH_BAND_FACTOR 6 /*!< Band select factor for high band. Factor B in the equation 2 */
rosarium 0:2ddc0583bcec 311 #define MIDDLE_BAND_FACTOR 12 /*!< Band select factor for middle band. Factor B in the equation 2 */
rosarium 0:2ddc0583bcec 312 #define LOW_BAND_FACTOR 16 /*!< Band select factor for low band. Factor B in the equation 2 */
rosarium 0:2ddc0583bcec 313 #define VERY_LOW_BAND_FACTOR 32 /*!< Band select factor for very low band. Factor B in the equation 2 */
rosarium 0:2ddc0583bcec 314
rosarium 0:2ddc0583bcec 315 #define HIGH_BAND_LOWER_LIMIT 778000000 /*!< Lower limit of the high band: 779 MHz */
rosarium 0:2ddc0583bcec 316 #define HIGH_BAND_UPPER_LIMIT 957100000 /*!< Upper limit of the high band: 956 MHz */
rosarium 0:2ddc0583bcec 317 #define MIDDLE_BAND_LOWER_LIMIT 386000000 /*!< Lower limit of the middle band: 387 MHz */
rosarium 0:2ddc0583bcec 318 #define MIDDLE_BAND_UPPER_LIMIT 471100000 /*!< Upper limit of the middle band: 470 MHz */
rosarium 0:2ddc0583bcec 319 #define LOW_BAND_LOWER_LIMIT 299000000 /*!< Lower limit of the low band: 300 MHz */
rosarium 0:2ddc0583bcec 320 #define LOW_BAND_UPPER_LIMIT 349100000 /*!< Upper limit of the low band: 348 MHz */
rosarium 0:2ddc0583bcec 321 #define VERY_LOW_BAND_LOWER_LIMIT 149000000 /*!< Lower limit of the very low band: 150 MHz */
rosarium 0:2ddc0583bcec 322 #define VERY_LOW_BAND_UPPER_LIMIT 175100000 /*!< Upper limit of the very low band: 174 MHz */
rosarium 0:2ddc0583bcec 323
rosarium 0:2ddc0583bcec 324 #define IS_FREQUENCY_BAND_HIGH(FREQUENCY) ((FREQUENCY)>=HIGH_BAND_LOWER_LIMIT && \
rosarium 0:2ddc0583bcec 325 (FREQUENCY)<=HIGH_BAND_UPPER_LIMIT)
rosarium 0:2ddc0583bcec 326
rosarium 0:2ddc0583bcec 327 #define IS_FREQUENCY_BAND_MIDDLE(FREQUENCY) ((FREQUENCY)>=MIDDLE_BAND_LOWER_LIMIT && \
rosarium 0:2ddc0583bcec 328 (FREQUENCY)<=MIDDLE_BAND_UPPER_LIMIT)
rosarium 0:2ddc0583bcec 329
rosarium 0:2ddc0583bcec 330 #define IS_FREQUENCY_BAND_LOW(FREQUENCY) ((FREQUENCY)>=LOW_BAND_LOWER_LIMIT && \
rosarium 0:2ddc0583bcec 331 (FREQUENCY)<=LOW_BAND_UPPER_LIMIT)
rosarium 0:2ddc0583bcec 332
rosarium 0:2ddc0583bcec 333 #define IS_FREQUENCY_BAND_VERY_LOW(FREQUENCY) ((FREQUENCY)>=VERY_LOW_BAND_LOWER_LIMIT && \
rosarium 0:2ddc0583bcec 334 (FREQUENCY)<=VERY_LOW_BAND_UPPER_LIMIT)
rosarium 0:2ddc0583bcec 335
rosarium 0:2ddc0583bcec 336 #define IS_FREQUENCY_BAND(FREQUENCY) (IS_FREQUENCY_BAND_HIGH(FREQUENCY)|| \
rosarium 0:2ddc0583bcec 337 IS_FREQUENCY_BAND_MIDDLE(FREQUENCY)|| \
rosarium 0:2ddc0583bcec 338 IS_FREQUENCY_BAND_LOW(FREQUENCY)|| \
rosarium 0:2ddc0583bcec 339 IS_FREQUENCY_BAND_VERY_LOW(FREQUENCY))
rosarium 0:2ddc0583bcec 340
rosarium 0:2ddc0583bcec 341 /**
rosarium 0:2ddc0583bcec 342 * @}
rosarium 0:2ddc0583bcec 343 */
rosarium 0:2ddc0583bcec 344
rosarium 0:2ddc0583bcec 345
rosarium 0:2ddc0583bcec 346 /** @defgroup Radio_IF_Offset Radio IF Offset
rosarium 0:2ddc0583bcec 347 * @{
rosarium 0:2ddc0583bcec 348 */
rosarium 0:2ddc0583bcec 349 #define IF_OFFSET_ANA(F_Xo) (lroundf(480140.0/(F_Xo)*12288-64.0)) /*!< It represents the IF_OFFSET_ANA in order
rosarium 0:2ddc0583bcec 350 to have an intermediate frequency of 480 kHz */
rosarium 0:2ddc0583bcec 351 /**
rosarium 0:2ddc0583bcec 352 * @}
rosarium 0:2ddc0583bcec 353 */
rosarium 0:2ddc0583bcec 354
rosarium 0:2ddc0583bcec 355
rosarium 0:2ddc0583bcec 356 /** @defgroup Radio_FC_Offset Radio FC Offset
rosarium 0:2ddc0583bcec 357 * @{
rosarium 0:2ddc0583bcec 358 */
rosarium 0:2ddc0583bcec 359 #define F_OFFSET_DIVIDER 262144 /*!< 2^18 factor dividing fxo in foffset formula */
rosarium 0:2ddc0583bcec 360 #define PPM_FACTOR 1000000 /*!< 10^6 factor to use with Xtal_offset_ppm */
rosarium 0:2ddc0583bcec 361
rosarium 0:2ddc0583bcec 362
rosarium 0:2ddc0583bcec 363 #define F_OFFSET_LOWER_LIMIT(F_Xo) ((-(int32_t)F_Xo)/F_OFFSET_DIVIDER*2048)
rosarium 0:2ddc0583bcec 364 #define F_OFFSET_UPPER_LIMIT(F_Xo) ((int32_t)(F_Xo/F_OFFSET_DIVIDER*2047))
rosarium 0:2ddc0583bcec 365
rosarium 0:2ddc0583bcec 366 #define IS_FREQUENCY_OFFSET(OFFSET, F_Xo) (OFFSET>=F_OFFSET_LOWER_LIMIT(F_Xo) && OFFSET<=F_OFFSET_UPPER_LIMIT(F_Xo))
rosarium 0:2ddc0583bcec 367
rosarium 0:2ddc0583bcec 368
rosarium 0:2ddc0583bcec 369 /**
rosarium 0:2ddc0583bcec 370 * @}
rosarium 0:2ddc0583bcec 371 */
rosarium 0:2ddc0583bcec 372
rosarium 0:2ddc0583bcec 373
rosarium 0:2ddc0583bcec 374 /** @defgroup Radio_Channel_Space Radio Channel Space
rosarium 0:2ddc0583bcec 375 * @{
rosarium 0:2ddc0583bcec 376 */
rosarium 0:2ddc0583bcec 377
rosarium 0:2ddc0583bcec 378
rosarium 0:2ddc0583bcec 379 #define CHSPACE_DIVIDER 32768 /*!< 2^15 factor dividing fxo in channel space formula */
rosarium 0:2ddc0583bcec 380
rosarium 0:2ddc0583bcec 381 #define IS_CHANNEL_SPACE(CHANNELSPACE, F_Xo) (CHANNELSPACE<=(F_Xo/32768*255))
rosarium 0:2ddc0583bcec 382
rosarium 0:2ddc0583bcec 383
rosarium 0:2ddc0583bcec 384
rosarium 0:2ddc0583bcec 385
rosarium 0:2ddc0583bcec 386
rosarium 0:2ddc0583bcec 387 /**
rosarium 0:2ddc0583bcec 388 * @}
rosarium 0:2ddc0583bcec 389 */
rosarium 0:2ddc0583bcec 390
rosarium 0:2ddc0583bcec 391
rosarium 0:2ddc0583bcec 392 /** @defgroup Radio_Datarate Radio Datarate
rosarium 0:2ddc0583bcec 393 * @{
rosarium 0:2ddc0583bcec 394 */
rosarium 0:2ddc0583bcec 395 #define MINIMUM_DATARATE 100 /*!< Minimum datarate supported by SPIRIT1 100 bps */
rosarium 0:2ddc0583bcec 396 #define MAXIMUM_DATARATE 510000 /*!< Maximum datarate supported by SPIRIT1 500 kbps */
rosarium 0:2ddc0583bcec 397
rosarium 0:2ddc0583bcec 398 #define IS_DATARATE(DATARATE) (DATARATE>=MINIMUM_DATARATE && DATARATE<=MAXIMUM_DATARATE)
rosarium 0:2ddc0583bcec 399
rosarium 0:2ddc0583bcec 400 /**
rosarium 0:2ddc0583bcec 401 * @}
rosarium 0:2ddc0583bcec 402 */
rosarium 0:2ddc0583bcec 403
rosarium 0:2ddc0583bcec 404
rosarium 0:2ddc0583bcec 405 /** @defgroup Radio_Frequency_Deviation Radio Frequency Deviation
rosarium 0:2ddc0583bcec 406 * @{
rosarium 0:2ddc0583bcec 407 */
rosarium 0:2ddc0583bcec 408 #define F_DEV_MANTISSA_UPPER_LIMIT 7 /*!< Maximum value for the mantissa in frequency deviation formula */
rosarium 0:2ddc0583bcec 409 #define F_DEV_EXPONENT_UPPER_LIMIT 9 /*!< Maximum value for the exponent in frequency deviation formula */
rosarium 0:2ddc0583bcec 410
rosarium 0:2ddc0583bcec 411 #define F_DEV_LOWER_LIMIT(F_Xo) (F_Xo>>16)
rosarium 0:2ddc0583bcec 412 #define F_DEV_UPPER_LIMIT(F_Xo) ((F_Xo*15)>>10)
rosarium 0:2ddc0583bcec 413
rosarium 0:2ddc0583bcec 414 #define IS_F_DEV(FDEV,F_Xo) (FDEV>=F_DEV_LOWER_LIMIT(F_Xo) && FDEV<=F_DEV_UPPER_LIMIT(F_Xo))
rosarium 0:2ddc0583bcec 415
rosarium 0:2ddc0583bcec 416
rosarium 0:2ddc0583bcec 417 /**
rosarium 0:2ddc0583bcec 418 * @}
rosarium 0:2ddc0583bcec 419 */
rosarium 0:2ddc0583bcec 420
rosarium 0:2ddc0583bcec 421
rosarium 0:2ddc0583bcec 422 /** @defgroup Radio_Channel_Bandwidth Radio Channel Bandwidth
rosarium 0:2ddc0583bcec 423 * @{
rosarium 0:2ddc0583bcec 424 */
rosarium 0:2ddc0583bcec 425 #define CH_BW_LOWER_LIMIT(F_Xo) 1100*(F_Xo/1000000)/26 /*!< Minimum value of the channel filter bandwidth */
rosarium 0:2ddc0583bcec 426 #define CH_BW_UPPER_LIMIT(F_Xo) 800100*(F_Xo/1000000)/26 /*!< Maximum value of the channel filter bandwidth */
rosarium 0:2ddc0583bcec 427
rosarium 0:2ddc0583bcec 428 #define IS_CH_BW(BW,F_Xo) ((BW)>=CH_BW_LOWER_LIMIT(F_Xo) && (BW)<=CH_BW_UPPER_LIMIT(F_Xo))
rosarium 0:2ddc0583bcec 429
rosarium 0:2ddc0583bcec 430 /**
rosarium 0:2ddc0583bcec 431 * @}
rosarium 0:2ddc0583bcec 432 */
rosarium 0:2ddc0583bcec 433
rosarium 0:2ddc0583bcec 434
rosarium 0:2ddc0583bcec 435 /** @defgroup Radio_Power_Amplifier Radio Power Amplifier
rosarium 0:2ddc0583bcec 436 * @{
rosarium 0:2ddc0583bcec 437 */
rosarium 0:2ddc0583bcec 438
rosarium 0:2ddc0583bcec 439 #define IS_PA_MAX_INDEX(INDEX) ((INDEX)<=7)
rosarium 0:2ddc0583bcec 440 #define IS_PAPOWER_DBM(PATABLE) ((PATABLE)>= (-31) && (PATABLE)<=(12))
rosarium 0:2ddc0583bcec 441 #define IS_PAPOWER(PATABLE) ((PATABLE)<=90)
rosarium 0:2ddc0583bcec 442 #define IS_PA_STEP_WIDTH(WIDTH) ((WIDTH)>=1 && (WIDTH)<=4)
rosarium 0:2ddc0583bcec 443
rosarium 0:2ddc0583bcec 444 /**
rosarium 0:2ddc0583bcec 445 * @}
rosarium 0:2ddc0583bcec 446 */
rosarium 0:2ddc0583bcec 447
rosarium 0:2ddc0583bcec 448
rosarium 0:2ddc0583bcec 449 /** @defgroup Radio_Automatic_Frequency_Correction Radio Automatic Frequency Correction
rosarium 0:2ddc0583bcec 450 * @{
rosarium 0:2ddc0583bcec 451 */
rosarium 0:2ddc0583bcec 452
rosarium 0:2ddc0583bcec 453 #define IS_AFC_FAST_GAIN(GAIN) ((GAIN)<=15)
rosarium 0:2ddc0583bcec 454 #define IS_AFC_SLOW_GAIN(GAIN) ((GAIN)<=15)
rosarium 0:2ddc0583bcec 455 #define IS_AFC_PD_LEAKAGE(LEAKAGE) ((LEAKAGE)<=31)
rosarium 0:2ddc0583bcec 456
rosarium 0:2ddc0583bcec 457 /**
rosarium 0:2ddc0583bcec 458 * @}
rosarium 0:2ddc0583bcec 459 */
rosarium 0:2ddc0583bcec 460
rosarium 0:2ddc0583bcec 461 /** @defgroup Radio_Automatic_Gain_Control Radio Automatic Gain Control
rosarium 0:2ddc0583bcec 462 * @{
rosarium 0:2ddc0583bcec 463 */
rosarium 0:2ddc0583bcec 464
rosarium 0:2ddc0583bcec 465 #define AGC_MEASURE_TIME_UPPER_LIMIT_US(F_Xo) (393216.0/F_Xo)
rosarium 0:2ddc0583bcec 466
rosarium 0:2ddc0583bcec 467 #define IS_AGC_MEASURE_TIME_US(TIME, F_Xo) (TIME<=AGC_MEASURE_TIME_UPPER_LIMIT_US(F_Xo))
rosarium 0:2ddc0583bcec 468
rosarium 0:2ddc0583bcec 469 #define IS_AGC_MEASURE_TIME(TIME) (TIME<=15)
rosarium 0:2ddc0583bcec 470
rosarium 0:2ddc0583bcec 471 #define AGC_HOLD_TIME_UPPER_LIMIT_US(F_Xo) (756.0/F_Xo)
rosarium 0:2ddc0583bcec 472
rosarium 0:2ddc0583bcec 473 #define IS_AGC_HOLD_TIME_US(TIME,F_Xo) (TIME<=AGC_HOLD_TIME_UPPER_LIMIT_US(F_Xo))
rosarium 0:2ddc0583bcec 474
rosarium 0:2ddc0583bcec 475
rosarium 0:2ddc0583bcec 476 #define IS_AGC_HOLD_TIME(TIME) (TIME<=63)
rosarium 0:2ddc0583bcec 477
rosarium 0:2ddc0583bcec 478 #define IS_AGC_THRESHOLD(THRESHOLD) (THRESHOLD<=15)
rosarium 0:2ddc0583bcec 479
rosarium 0:2ddc0583bcec 480 /**
rosarium 0:2ddc0583bcec 481 * @}
rosarium 0:2ddc0583bcec 482 */
rosarium 0:2ddc0583bcec 483
rosarium 0:2ddc0583bcec 484
rosarium 0:2ddc0583bcec 485 /** @defgroup Radio_Clock_Recovery Radio Clock Recovery
rosarium 0:2ddc0583bcec 486 * @{
rosarium 0:2ddc0583bcec 487 */
rosarium 0:2ddc0583bcec 488
rosarium 0:2ddc0583bcec 489 #define IS_CLK_REC_P_GAIN(GAIN) ((GAIN)<=7)
rosarium 0:2ddc0583bcec 490 #define IS_CLK_REC_I_GAIN(GAIN) ((GAIN)<=15)
rosarium 0:2ddc0583bcec 491
rosarium 0:2ddc0583bcec 492 /**
rosarium 0:2ddc0583bcec 493 * @}
rosarium 0:2ddc0583bcec 494 */
rosarium 0:2ddc0583bcec 495
rosarium 0:2ddc0583bcec 496 /**
rosarium 0:2ddc0583bcec 497 * @}
rosarium 0:2ddc0583bcec 498 */
rosarium 0:2ddc0583bcec 499
rosarium 0:2ddc0583bcec 500
rosarium 0:2ddc0583bcec 501
rosarium 0:2ddc0583bcec 502 /** @defgroup Radio_Exported_Macros Radio Exported Macros
rosarium 0:2ddc0583bcec 503 * @{
rosarium 0:2ddc0583bcec 504 */
rosarium 0:2ddc0583bcec 505
rosarium 0:2ddc0583bcec 506
rosarium 0:2ddc0583bcec 507 /**
rosarium 0:2ddc0583bcec 508 * @}
rosarium 0:2ddc0583bcec 509 */
rosarium 0:2ddc0583bcec 510
rosarium 0:2ddc0583bcec 511 /** @defgroup Radio_Exported_Functions Radio Exported Functions
rosarium 0:2ddc0583bcec 512 * @{
rosarium 0:2ddc0583bcec 513 */
rosarium 0:2ddc0583bcec 514
rosarium 0:2ddc0583bcec 515 uint8_t SpiritRadioInit(SRadioInit* pxSRadioInitStruct);
rosarium 0:2ddc0583bcec 516 void SpiritRadioGetInfo(SRadioInit* pxSRadioInitStruct);
rosarium 0:2ddc0583bcec 517 void SpiritRadioSetXtalFlag(XtalFlag xXtal);
rosarium 0:2ddc0583bcec 518 XtalFlag SpiritRadioGetXtalFlag(void);
rosarium 0:2ddc0583bcec 519 uint8_t SpiritRadioSearchWCP(uint32_t lFc);
rosarium 0:2ddc0583bcec 520 void SpiritRadioSetSynthWord(uint32_t lSynthWord);
rosarium 0:2ddc0583bcec 521 uint32_t SpiritRadioGetSynthWord(void);
rosarium 0:2ddc0583bcec 522 void SpiritRadioSetBand(BandSelect xBand);
rosarium 0:2ddc0583bcec 523 BandSelect SpiritRadioGetBand(void);
rosarium 0:2ddc0583bcec 524 void SpiritRadioSetChannel(uint8_t cChannel);
rosarium 0:2ddc0583bcec 525 uint8_t SpiritRadioGetChannel(void);
rosarium 0:2ddc0583bcec 526 void SpiritRadioSetChannelSpace(uint32_t lChannelSpace);
rosarium 0:2ddc0583bcec 527 uint32_t SpiritRadioGetChannelSpace(void);
rosarium 0:2ddc0583bcec 528 void SpiritRadioSetFrequencyOffsetPpm(int16_t nXtalPpm);
rosarium 0:2ddc0583bcec 529 void SpiritRadioSetFrequencyOffset(int32_t lFOffset);
rosarium 0:2ddc0583bcec 530 int32_t SpiritRadioGetFrequencyOffset(void);
rosarium 0:2ddc0583bcec 531 void SpiritRadioVcoCalibrationWAFB(SpiritFunctionalState xNewstate);
rosarium 0:2ddc0583bcec 532 uint8_t SpiritRadioSetFrequencyBase(uint32_t lFBase);
rosarium 0:2ddc0583bcec 533 uint32_t SpiritRadioGetFrequencyBase(void);
rosarium 0:2ddc0583bcec 534 uint32_t SpiritRadioGetCenterFrequency(void);
rosarium 0:2ddc0583bcec 535 void SpiritRadioSearchDatarateME(uint32_t lDatarate, uint8_t* pcM, uint8_t* pcE);
rosarium 0:2ddc0583bcec 536 void SpiritRadioSearchFreqDevME(uint32_t lFDev, uint8_t* pcM, uint8_t* pcE);
rosarium 0:2ddc0583bcec 537 void SpiritRadioSearchChannelBwME(uint32_t lBandwidth, uint8_t* pcM, uint8_t* pcE);
rosarium 0:2ddc0583bcec 538 void SpiritRadioSetDatarate(uint32_t lDatarate);
rosarium 0:2ddc0583bcec 539 uint32_t SpiritRadioGetDatarate(void);
rosarium 0:2ddc0583bcec 540 void SpiritRadioSetFrequencyDev(uint32_t lFDev);
rosarium 0:2ddc0583bcec 541 uint32_t SpiritRadioGetFrequencyDev(void);
rosarium 0:2ddc0583bcec 542 void SpiritRadioSetChannelBW(uint32_t lBandwidth);
rosarium 0:2ddc0583bcec 543 uint32_t SpiritRadioGetChannelBW(void);
rosarium 0:2ddc0583bcec 544 void SpiritRadioSetModulation(ModulationSelect xModulation);
rosarium 0:2ddc0583bcec 545 ModulationSelect SpiritRadioGetModulation(void);
rosarium 0:2ddc0583bcec 546 void SpiritRadioCWTransmitMode(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 547 void SpiritRadioSetOokPeakDecay(OokPeakDecay xOokDecay);
rosarium 0:2ddc0583bcec 548 OokPeakDecay SpiritRadioGetOokPeakDecay(void);
rosarium 0:2ddc0583bcec 549 uint8_t SpiritRadioGetdBm2Reg(uint32_t lFBase, float fPowerdBm);
rosarium 0:2ddc0583bcec 550 float SpiritRadioGetReg2dBm(uint32_t lFBase, uint8_t cPowerReg);
rosarium 0:2ddc0583bcec 551 void SpiritRadioSetPATabledBm(uint8_t cPALevelMaxIndex, uint8_t cWidth, PALoadCapacitor xCLoad, float* pfPAtabledBm);
rosarium 0:2ddc0583bcec 552 void SpiritRadioGetPATabledBm(uint8_t* pcPALevelMaxIndex, float* pfPAtabledBm);
rosarium 0:2ddc0583bcec 553 void SpiritRadioSetPATable(uint8_t cPALevelMaxIndex, uint8_t cWidth, PALoadCapacitor xCLoad, uint8_t* pcPAtable);
rosarium 0:2ddc0583bcec 554 void SpiritRadioGetPATable(uint8_t* pcPALevelMaxIndex, uint8_t* pcPAtable);
rosarium 0:2ddc0583bcec 555 void SpiritRadioSetPALeveldBm(uint8_t cIndex, float fPowerdBm);
rosarium 0:2ddc0583bcec 556 float SpiritRadioGetPALeveldBm(uint8_t cIndex);
rosarium 0:2ddc0583bcec 557 void SpiritRadioSetPALevel(uint8_t cIndex, uint8_t cPower);
rosarium 0:2ddc0583bcec 558 uint8_t SpiritRadioGetPALevel(uint8_t cIndex);
rosarium 0:2ddc0583bcec 559 void SpiritRadioSetPACwc(PALoadCapacitor xCLoad);
rosarium 0:2ddc0583bcec 560 PALoadCapacitor SpiritRadioGetPACwc(void);
rosarium 0:2ddc0583bcec 561 void SpiritRadioSetPALevelMaxIndex(uint8_t cIndex);
rosarium 0:2ddc0583bcec 562 uint8_t SpiritRadioGetPALevelMaxIndex(void);
rosarium 0:2ddc0583bcec 563 void SpiritRadioSetPAStepWidth(uint8_t cWidth);
rosarium 0:2ddc0583bcec 564 uint8_t SpiritRadioGetPAStepWidth(void);
rosarium 0:2ddc0583bcec 565 void SpiritRadioPARamping(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 566 SpiritFunctionalState SpiritRadioGetPARamping(void);
rosarium 0:2ddc0583bcec 567 void SpiritRadioAFC(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 568 void SpiritRadioAFCFreezeOnSync(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 569 void SpiritRadioSetAFCMode(AFCMode xMode);
rosarium 0:2ddc0583bcec 570 AFCMode SpiritRadioGetAFCMode(void);
rosarium 0:2ddc0583bcec 571 void SpiritRadioSetAFCPDLeakage(uint8_t cLeakage);
rosarium 0:2ddc0583bcec 572 uint8_t SpiritRadioGetAFCPDLeakage(void);
rosarium 0:2ddc0583bcec 573 void SpiritRadioSetAFCFastPeriod(uint8_t cLength);
rosarium 0:2ddc0583bcec 574 uint8_t SpiritRadioGetAFCFastPeriod(void);
rosarium 0:2ddc0583bcec 575 void SpiritRadioSetAFCFastGain(uint8_t cGain);
rosarium 0:2ddc0583bcec 576 uint8_t SpiritRadioGetAFCFastGain(void);
rosarium 0:2ddc0583bcec 577 void SpiritRadioSetAFCSlowGain(uint8_t cGain);
rosarium 0:2ddc0583bcec 578 uint8_t SpiritRadioGetAFCSlowGain(void);
rosarium 0:2ddc0583bcec 579 int8_t SpiritRadioGetAFCCorrectionReg(void);
rosarium 0:2ddc0583bcec 580 int32_t SpiritRadioGetAFCCorrectionHz(void);
rosarium 0:2ddc0583bcec 581 void SpiritRadioAGC(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 582 void SpiritRadioSetAGCMode(AGCMode xMode);
rosarium 0:2ddc0583bcec 583 AGCMode SpiritRadioGetAGCMode(void);
rosarium 0:2ddc0583bcec 584 void SpiritRadioAGCFreezeOnSteady(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 585 void SpiritRadioAGCFreezeOnSync(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 586 void SpiritRadioAGCStartMaxAttenuation(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 587 void SpiritRadioSetAGCMeasureTimeUs(uint16_t nTime);
rosarium 0:2ddc0583bcec 588 uint16_t SpiritRadioGetAGCMeasureTimeUs(void);
rosarium 0:2ddc0583bcec 589 void SpiritRadioSetAGCMeasureTime(uint8_t cTime);
rosarium 0:2ddc0583bcec 590 uint8_t SpiritRadioGetAGCMeasureTime(void);
rosarium 0:2ddc0583bcec 591 void SpiritRadioSetAGCHoldTimeUs(uint8_t cTime);
rosarium 0:2ddc0583bcec 592 uint8_t SpiritRadioGetAGCHoldTimeUs(void);
rosarium 0:2ddc0583bcec 593 void SpiritRadioSetAGCHoldTime(uint8_t cTime);
rosarium 0:2ddc0583bcec 594 uint8_t SpiritRadioGetAGCHoldTime(void);
rosarium 0:2ddc0583bcec 595 void SpiritRadioSetAGCHighThreshold(uint8_t cHighThreshold);
rosarium 0:2ddc0583bcec 596 uint8_t SpiritRadioGetAGCHighThreshold(void);
rosarium 0:2ddc0583bcec 597 void SpiritRadioSetAGCLowThreshold(uint8_t cLowThreshold);
rosarium 0:2ddc0583bcec 598 uint8_t SpiritRadioGetAGCLowThreshold(void);
rosarium 0:2ddc0583bcec 599 void SpiritRadioSetClkRecMode(ClkRecMode xMode);
rosarium 0:2ddc0583bcec 600 ClkRecMode SpiritRadioGetClkRecMode(void);
rosarium 0:2ddc0583bcec 601 void SpiritRadioSetClkRecPGain(uint8_t cPGain);
rosarium 0:2ddc0583bcec 602 uint8_t SpiritRadioGetClkRecPGain(void);
rosarium 0:2ddc0583bcec 603 void SpiritRadioSetClkRecIGain(uint8_t cIGain);
rosarium 0:2ddc0583bcec 604 uint8_t SpiritRadioGetClkRecIGain(void);
rosarium 0:2ddc0583bcec 605 void SpiritRadioSetClkRecPstFltLength(PstFltLength xLength);
rosarium 0:2ddc0583bcec 606 PstFltLength SpiritRadioGetClkRecPstFltLength(void);
rosarium 0:2ddc0583bcec 607 void SpiritRadioCsBlanking(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 608 void SpiritRadioPersistenRx(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 609 uint32_t SpiritRadioGetXtalFrequency(void);
rosarium 0:2ddc0583bcec 610 void SpiritRadioSetXtalFrequency(uint32_t lXtalFrequency);
rosarium 0:2ddc0583bcec 611 void SpiritRadioSetRefDiv(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 612 SpiritFunctionalState SpiritRadioGetRefDiv(void);
rosarium 0:2ddc0583bcec 613 void SpiritRadioSetDigDiv(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 614 SpiritFunctionalState SpiritRadioGetDigDiv(void);
rosarium 0:2ddc0583bcec 615 /**
rosarium 0:2ddc0583bcec 616 * @}
rosarium 0:2ddc0583bcec 617 */
rosarium 0:2ddc0583bcec 618
rosarium 0:2ddc0583bcec 619 /**
rosarium 0:2ddc0583bcec 620 * @}
rosarium 0:2ddc0583bcec 621 */
rosarium 0:2ddc0583bcec 622
rosarium 0:2ddc0583bcec 623
rosarium 0:2ddc0583bcec 624 /**
rosarium 0:2ddc0583bcec 625 * @}
rosarium 0:2ddc0583bcec 626 */
rosarium 0:2ddc0583bcec 627
rosarium 0:2ddc0583bcec 628
rosarium 0:2ddc0583bcec 629
rosarium 0:2ddc0583bcec 630 #ifdef __cplusplus
rosarium 0:2ddc0583bcec 631 }
rosarium 0:2ddc0583bcec 632 #endif
rosarium 0:2ddc0583bcec 633
rosarium 0:2ddc0583bcec 634 #endif
rosarium 0:2ddc0583bcec 635
rosarium 0:2ddc0583bcec 636 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/