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