wifi test

Dependencies:   X_NUCLEO_IKS01A2 mbed-http

Committer:
JMF
Date:
Wed Sep 05 14:28:24 2018 +0000
Revision:
0:24d3eb812fd4
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JMF 0:24d3eb812fd4 1 /**
JMF 0:24d3eb812fd4 2 ******************************************************************************
JMF 0:24d3eb812fd4 3 * @file SPIRIT_General.c
JMF 0:24d3eb812fd4 4 * @author VMA division - AMS
JMF 0:24d3eb812fd4 5 * @version 3.2.2
JMF 0:24d3eb812fd4 6 * @date 08-July-2015
JMF 0:24d3eb812fd4 7 * @brief Configuration and management of SPIRIT General functionalities.
JMF 0:24d3eb812fd4 8 * @details
JMF 0:24d3eb812fd4 9 *
JMF 0:24d3eb812fd4 10 * @attention
JMF 0:24d3eb812fd4 11 *
JMF 0:24d3eb812fd4 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
JMF 0:24d3eb812fd4 13 *
JMF 0:24d3eb812fd4 14 * Redistribution and use in source and binary forms, with or without modification,
JMF 0:24d3eb812fd4 15 * are permitted provided that the following conditions are met:
JMF 0:24d3eb812fd4 16 * 1. Redistributions of source code must retain the above copyright notice,
JMF 0:24d3eb812fd4 17 * this list of conditions and the following disclaimer.
JMF 0:24d3eb812fd4 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
JMF 0:24d3eb812fd4 19 * this list of conditions and the following disclaimer in the documentation
JMF 0:24d3eb812fd4 20 * and/or other materials provided with the distribution.
JMF 0:24d3eb812fd4 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
JMF 0:24d3eb812fd4 22 * may be used to endorse or promote products derived from this software
JMF 0:24d3eb812fd4 23 * without specific prior written permission.
JMF 0:24d3eb812fd4 24 *
JMF 0:24d3eb812fd4 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
JMF 0:24d3eb812fd4 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
JMF 0:24d3eb812fd4 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
JMF 0:24d3eb812fd4 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
JMF 0:24d3eb812fd4 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
JMF 0:24d3eb812fd4 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
JMF 0:24d3eb812fd4 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
JMF 0:24d3eb812fd4 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
JMF 0:24d3eb812fd4 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
JMF 0:24d3eb812fd4 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
JMF 0:24d3eb812fd4 35 *
JMF 0:24d3eb812fd4 36 ******************************************************************************
JMF 0:24d3eb812fd4 37 */
JMF 0:24d3eb812fd4 38
JMF 0:24d3eb812fd4 39 /* Includes ------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 40 #include "SPIRIT_General.h"
JMF 0:24d3eb812fd4 41 #include "MCU_Interface.h"
JMF 0:24d3eb812fd4 42
JMF 0:24d3eb812fd4 43
JMF 0:24d3eb812fd4 44 /**
JMF 0:24d3eb812fd4 45 * @addtogroup SPIRIT_Libraries
JMF 0:24d3eb812fd4 46 * @{
JMF 0:24d3eb812fd4 47 */
JMF 0:24d3eb812fd4 48
JMF 0:24d3eb812fd4 49
JMF 0:24d3eb812fd4 50 /**
JMF 0:24d3eb812fd4 51 * @addtogroup SPIRIT_General
JMF 0:24d3eb812fd4 52 * @{
JMF 0:24d3eb812fd4 53 */
JMF 0:24d3eb812fd4 54
JMF 0:24d3eb812fd4 55
JMF 0:24d3eb812fd4 56 /**
JMF 0:24d3eb812fd4 57 * @defgroup General_Private_TypesDefinitions General Private Types Definitions
JMF 0:24d3eb812fd4 58 * @{
JMF 0:24d3eb812fd4 59 */
JMF 0:24d3eb812fd4 60
JMF 0:24d3eb812fd4 61 /**
JMF 0:24d3eb812fd4 62 *@}
JMF 0:24d3eb812fd4 63 */
JMF 0:24d3eb812fd4 64
JMF 0:24d3eb812fd4 65
JMF 0:24d3eb812fd4 66 /**
JMF 0:24d3eb812fd4 67 * @defgroup General_Private_Defines General Private Defines
JMF 0:24d3eb812fd4 68 * @{
JMF 0:24d3eb812fd4 69 */
JMF 0:24d3eb812fd4 70
JMF 0:24d3eb812fd4 71 /**
JMF 0:24d3eb812fd4 72 *@}
JMF 0:24d3eb812fd4 73 */
JMF 0:24d3eb812fd4 74
JMF 0:24d3eb812fd4 75
JMF 0:24d3eb812fd4 76 /**
JMF 0:24d3eb812fd4 77 * @defgroup General_Private_Macros General Private Macros
JMF 0:24d3eb812fd4 78 * @{
JMF 0:24d3eb812fd4 79 */
JMF 0:24d3eb812fd4 80
JMF 0:24d3eb812fd4 81 /**
JMF 0:24d3eb812fd4 82 *@}
JMF 0:24d3eb812fd4 83 */
JMF 0:24d3eb812fd4 84
JMF 0:24d3eb812fd4 85
JMF 0:24d3eb812fd4 86 /**
JMF 0:24d3eb812fd4 87 * @defgroup General_Private_Variables General Private Variables
JMF 0:24d3eb812fd4 88 * @{
JMF 0:24d3eb812fd4 89 */
JMF 0:24d3eb812fd4 90
JMF 0:24d3eb812fd4 91
JMF 0:24d3eb812fd4 92 /**
JMF 0:24d3eb812fd4 93 *@}
JMF 0:24d3eb812fd4 94 */
JMF 0:24d3eb812fd4 95
JMF 0:24d3eb812fd4 96
JMF 0:24d3eb812fd4 97 /**
JMF 0:24d3eb812fd4 98 * @defgroup General_Private_FunctionPrototypes General Private Function Prototypes
JMF 0:24d3eb812fd4 99 * @{
JMF 0:24d3eb812fd4 100 */
JMF 0:24d3eb812fd4 101
JMF 0:24d3eb812fd4 102 /**
JMF 0:24d3eb812fd4 103 *@}
JMF 0:24d3eb812fd4 104 */
JMF 0:24d3eb812fd4 105
JMF 0:24d3eb812fd4 106
JMF 0:24d3eb812fd4 107 /**
JMF 0:24d3eb812fd4 108 * @defgroup General_Private_Functions General Private Functions
JMF 0:24d3eb812fd4 109 * @{
JMF 0:24d3eb812fd4 110 */
JMF 0:24d3eb812fd4 111
JMF 0:24d3eb812fd4 112 /**
JMF 0:24d3eb812fd4 113 * @brief Enables or Disables the output of battery level detector.
JMF 0:24d3eb812fd4 114 * @param xNewState new state for battery level detector.
JMF 0:24d3eb812fd4 115 * This parameter can be: S_ENABLE or S_DISABLE.
JMF 0:24d3eb812fd4 116 * @retval None
JMF 0:24d3eb812fd4 117 */
JMF 0:24d3eb812fd4 118 void SpiritGeneralBatteryLevel(SpiritFunctionalState xNewState)
JMF 0:24d3eb812fd4 119 {
JMF 0:24d3eb812fd4 120 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 121
JMF 0:24d3eb812fd4 122 /* Check the parameters */
JMF 0:24d3eb812fd4 123 s_assert_param(IS_SPIRIT_FUNCTIONAL_STATE(xNewState));
JMF 0:24d3eb812fd4 124
JMF 0:24d3eb812fd4 125 /* Reads the ANA_FUNC_CONF0_BASE register value */
JMF 0:24d3eb812fd4 126 g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 127
JMF 0:24d3eb812fd4 128 /* Build the value to be stored */
JMF 0:24d3eb812fd4 129 if(xNewState == S_ENABLE)
JMF 0:24d3eb812fd4 130 {
JMF 0:24d3eb812fd4 131 tempRegValue |= BATTERY_LEVEL_MASK;
JMF 0:24d3eb812fd4 132 }
JMF 0:24d3eb812fd4 133 else
JMF 0:24d3eb812fd4 134 {
JMF 0:24d3eb812fd4 135 tempRegValue &= ~BATTERY_LEVEL_MASK;
JMF 0:24d3eb812fd4 136 }
JMF 0:24d3eb812fd4 137
JMF 0:24d3eb812fd4 138 /* Writes the new value */
JMF 0:24d3eb812fd4 139 g_xStatus = SpiritSpiWriteRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 140
JMF 0:24d3eb812fd4 141 }
JMF 0:24d3eb812fd4 142
JMF 0:24d3eb812fd4 143
JMF 0:24d3eb812fd4 144 /**
JMF 0:24d3eb812fd4 145 * @brief Sets the battery level.
JMF 0:24d3eb812fd4 146 * @param xBatteryLevel new state for battery level.
JMF 0:24d3eb812fd4 147 * This parameter can be a value of @ref BatteryLevel.
JMF 0:24d3eb812fd4 148 * @retval None.
JMF 0:24d3eb812fd4 149 */
JMF 0:24d3eb812fd4 150 void SpiritGeneralSetBatteryLevel(BatteryLevel xBatteryLevel)
JMF 0:24d3eb812fd4 151 {
JMF 0:24d3eb812fd4 152 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 153
JMF 0:24d3eb812fd4 154 /* Check the parameters */
JMF 0:24d3eb812fd4 155 s_assert_param(IS_BLD_LVL(xBatteryLevel));
JMF 0:24d3eb812fd4 156
JMF 0:24d3eb812fd4 157 /* Reads the ANA_FUNC_CONF1_BASE register value */
JMF 0:24d3eb812fd4 158 g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF1_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 159
JMF 0:24d3eb812fd4 160 /* Build the value to be stored */
JMF 0:24d3eb812fd4 161 tempRegValue &= ~ANA_FUNC_CONF1_SET_BLD_LVL_MASK;
JMF 0:24d3eb812fd4 162 switch(xBatteryLevel)
JMF 0:24d3eb812fd4 163 {
JMF 0:24d3eb812fd4 164 case BLD_LVL_2_7_V:
JMF 0:24d3eb812fd4 165 tempRegValue |= BLD_LVL_2_7;
JMF 0:24d3eb812fd4 166 break;
JMF 0:24d3eb812fd4 167 case BLD_LVL_2_5_V:
JMF 0:24d3eb812fd4 168 tempRegValue |= BLD_LVL_2_5;
JMF 0:24d3eb812fd4 169 break;
JMF 0:24d3eb812fd4 170 case BLD_LVL_2_3_V:
JMF 0:24d3eb812fd4 171 tempRegValue |= BLD_LVL_2_3;
JMF 0:24d3eb812fd4 172 break;
JMF 0:24d3eb812fd4 173 case BLD_LVL_2_1_V:
JMF 0:24d3eb812fd4 174 tempRegValue |= BLD_LVL_2_1;
JMF 0:24d3eb812fd4 175 break;
JMF 0:24d3eb812fd4 176 }
JMF 0:24d3eb812fd4 177
JMF 0:24d3eb812fd4 178 /* Writes the new value */
JMF 0:24d3eb812fd4 179 g_xStatus = SpiritSpiWriteRegisters(ANA_FUNC_CONF1_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 180
JMF 0:24d3eb812fd4 181 }
JMF 0:24d3eb812fd4 182
JMF 0:24d3eb812fd4 183
JMF 0:24d3eb812fd4 184 /**
JMF 0:24d3eb812fd4 185 * @brief Returns the settled battery level.
JMF 0:24d3eb812fd4 186 * @param None.
JMF 0:24d3eb812fd4 187 * @retval BatteryLevel Settled battery level. This parameter can be a value of @ref BatteryLevel.
JMF 0:24d3eb812fd4 188 */
JMF 0:24d3eb812fd4 189 BatteryLevel SpiritGeneralGetBatteryLevel(void)
JMF 0:24d3eb812fd4 190 {
JMF 0:24d3eb812fd4 191 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 192
JMF 0:24d3eb812fd4 193 /* Reads the ANA_FUNC_CONF1_BASE register value */
JMF 0:24d3eb812fd4 194 g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF1_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 195
JMF 0:24d3eb812fd4 196 /* Mask the battery level field and returns the settled battery level */
JMF 0:24d3eb812fd4 197 return ((BatteryLevel)(tempRegValue & ANA_FUNC_CONF1_SET_BLD_LVL_MASK));
JMF 0:24d3eb812fd4 198
JMF 0:24d3eb812fd4 199 }
JMF 0:24d3eb812fd4 200
JMF 0:24d3eb812fd4 201
JMF 0:24d3eb812fd4 202 /**
JMF 0:24d3eb812fd4 203 * @brief Enables or Disables the output of brown out detector.
JMF 0:24d3eb812fd4 204 * @param xNewState new state for brown out detector.
JMF 0:24d3eb812fd4 205 * This parameter can be: S_ENABLE or S_DISABLE.
JMF 0:24d3eb812fd4 206 * @retval None.
JMF 0:24d3eb812fd4 207 */
JMF 0:24d3eb812fd4 208 void SpiritGeneralBrownOut(SpiritFunctionalState xNewState)
JMF 0:24d3eb812fd4 209 {
JMF 0:24d3eb812fd4 210 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 211
JMF 0:24d3eb812fd4 212 /* Check the parameters */
JMF 0:24d3eb812fd4 213 s_assert_param(IS_SPIRIT_FUNCTIONAL_STATE(xNewState));
JMF 0:24d3eb812fd4 214
JMF 0:24d3eb812fd4 215 /* Reads the ANA_FUNC_CONF0_BASE register value */
JMF 0:24d3eb812fd4 216 g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 217
JMF 0:24d3eb812fd4 218 /* Build the value to be stored */
JMF 0:24d3eb812fd4 219 if(xNewState == S_ENABLE)
JMF 0:24d3eb812fd4 220 {
JMF 0:24d3eb812fd4 221 tempRegValue |= BROWN_OUT_MASK;
JMF 0:24d3eb812fd4 222 }
JMF 0:24d3eb812fd4 223 else
JMF 0:24d3eb812fd4 224 {
JMF 0:24d3eb812fd4 225 tempRegValue &= ~BROWN_OUT_MASK;
JMF 0:24d3eb812fd4 226 }
JMF 0:24d3eb812fd4 227
JMF 0:24d3eb812fd4 228 /* Writes value on register */
JMF 0:24d3eb812fd4 229 g_xStatus = SpiritSpiWriteRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 230
JMF 0:24d3eb812fd4 231 }
JMF 0:24d3eb812fd4 232
JMF 0:24d3eb812fd4 233
JMF 0:24d3eb812fd4 234 /**
JMF 0:24d3eb812fd4 235 * @brief Sets High Power Mode.
JMF 0:24d3eb812fd4 236 * @param xNewState new state for High Power Mode.
JMF 0:24d3eb812fd4 237 * This parameter can be: S_ENABLE or S_DISABLE.
JMF 0:24d3eb812fd4 238 * @retval None.
JMF 0:24d3eb812fd4 239 */
JMF 0:24d3eb812fd4 240 void SpiritGeneralHighPwr(SpiritFunctionalState xNewState)
JMF 0:24d3eb812fd4 241 {
JMF 0:24d3eb812fd4 242 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 243
JMF 0:24d3eb812fd4 244 /* Check the parameters */
JMF 0:24d3eb812fd4 245 s_assert_param(IS_SPIRIT_FUNCTIONAL_STATE(xNewState));
JMF 0:24d3eb812fd4 246
JMF 0:24d3eb812fd4 247 /* Reads the ANA_FUNC_CONF0_BASE register value */
JMF 0:24d3eb812fd4 248 g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 249
JMF 0:24d3eb812fd4 250 /* Build the value to write */
JMF 0:24d3eb812fd4 251 if(xNewState == S_ENABLE)
JMF 0:24d3eb812fd4 252 {
JMF 0:24d3eb812fd4 253 tempRegValue |= HIGH_POWER_MODE_MASK;
JMF 0:24d3eb812fd4 254 }
JMF 0:24d3eb812fd4 255 else
JMF 0:24d3eb812fd4 256 {
JMF 0:24d3eb812fd4 257 tempRegValue &= ~HIGH_POWER_MODE_MASK;
JMF 0:24d3eb812fd4 258 }
JMF 0:24d3eb812fd4 259
JMF 0:24d3eb812fd4 260 /* Writes the new value on register */
JMF 0:24d3eb812fd4 261 g_xStatus = SpiritSpiWriteRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 262
JMF 0:24d3eb812fd4 263 }
JMF 0:24d3eb812fd4 264
JMF 0:24d3eb812fd4 265
JMF 0:24d3eb812fd4 266 /**
JMF 0:24d3eb812fd4 267 * @brief Sets External Reference.
JMF 0:24d3eb812fd4 268 * @param xExtMode new state for the external reference.
JMF 0:24d3eb812fd4 269 * This parameter can be: MODE_EXT_XO or MODE_EXT_XIN.
JMF 0:24d3eb812fd4 270 * @retval None.
JMF 0:24d3eb812fd4 271 */
JMF 0:24d3eb812fd4 272 void SpiritGeneralSetExtRef(ModeExtRef xExtMode)
JMF 0:24d3eb812fd4 273 {
JMF 0:24d3eb812fd4 274 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 275
JMF 0:24d3eb812fd4 276 /* Check the parameters */
JMF 0:24d3eb812fd4 277 s_assert_param(IS_MODE_EXT(xExtMode));
JMF 0:24d3eb812fd4 278
JMF 0:24d3eb812fd4 279 /* Reads the ANA_FUNC_CONF0_BASE register value */
JMF 0:24d3eb812fd4 280 SpiritSpiReadRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 281
JMF 0:24d3eb812fd4 282 /* Build the value to write */
JMF 0:24d3eb812fd4 283 if(xExtMode == MODE_EXT_XO)
JMF 0:24d3eb812fd4 284 {
JMF 0:24d3eb812fd4 285 tempRegValue &= ~EXT_REF_MASK;
JMF 0:24d3eb812fd4 286 }
JMF 0:24d3eb812fd4 287 else
JMF 0:24d3eb812fd4 288 {
JMF 0:24d3eb812fd4 289 tempRegValue |= EXT_REF_MASK;
JMF 0:24d3eb812fd4 290 }
JMF 0:24d3eb812fd4 291
JMF 0:24d3eb812fd4 292 /* Writes value on register */
JMF 0:24d3eb812fd4 293 g_xStatus = SpiritSpiWriteRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 294
JMF 0:24d3eb812fd4 295 }
JMF 0:24d3eb812fd4 296
JMF 0:24d3eb812fd4 297
JMF 0:24d3eb812fd4 298 /**
JMF 0:24d3eb812fd4 299 * @brief Returns External Reference.
JMF 0:24d3eb812fd4 300 * @param None.
JMF 0:24d3eb812fd4 301 * @retval ModeExtRef Settled external reference.
JMF 0:24d3eb812fd4 302 * This parameter can be: MODE_EXT_XO or MODE_EXT_XIN.
JMF 0:24d3eb812fd4 303 */
JMF 0:24d3eb812fd4 304 ModeExtRef SpiritGeneralGetExtRef(void)
JMF 0:24d3eb812fd4 305 {
JMF 0:24d3eb812fd4 306 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 307
JMF 0:24d3eb812fd4 308 /* Reads the ANA_FUNC_CONF0_BASE register value and return the result */
JMF 0:24d3eb812fd4 309 g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 310
JMF 0:24d3eb812fd4 311 /* Mask the EXT_REF field field and returns the settled reference signal */
JMF 0:24d3eb812fd4 312 return ((ModeExtRef)((tempRegValue & 0x10)>>4));
JMF 0:24d3eb812fd4 313
JMF 0:24d3eb812fd4 314 }
JMF 0:24d3eb812fd4 315
JMF 0:24d3eb812fd4 316
JMF 0:24d3eb812fd4 317 /**
JMF 0:24d3eb812fd4 318 * @brief Sets XO gm at startup.
JMF 0:24d3eb812fd4 319 * @param xGm transconductance value of XO at startup.
JMF 0:24d3eb812fd4 320 * This parameter can be a value of @ref GmConf.
JMF 0:24d3eb812fd4 321 * @retval None.
JMF 0:24d3eb812fd4 322 */
JMF 0:24d3eb812fd4 323 void SpiritGeneralSetXoGm(GmConf xGm)
JMF 0:24d3eb812fd4 324 {
JMF 0:24d3eb812fd4 325 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 326
JMF 0:24d3eb812fd4 327 /* Check the parameters */
JMF 0:24d3eb812fd4 328 s_assert_param(IS_GM_CONF(xGm));
JMF 0:24d3eb812fd4 329
JMF 0:24d3eb812fd4 330 /* Reads the ANA_FUNC_CONF1_BASE register value */
JMF 0:24d3eb812fd4 331 g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF1_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 332
JMF 0:24d3eb812fd4 333 /* Build the value to write */
JMF 0:24d3eb812fd4 334 tempRegValue &= ~ANA_FUNC_CONF1_GMCONF_MASK;
JMF 0:24d3eb812fd4 335 switch(xGm)
JMF 0:24d3eb812fd4 336 {
JMF 0:24d3eb812fd4 337 case GM_SU_13_2:
JMF 0:24d3eb812fd4 338 tempRegValue |= GM_13_2;
JMF 0:24d3eb812fd4 339 break;
JMF 0:24d3eb812fd4 340 case GM_SU_18_2:
JMF 0:24d3eb812fd4 341 tempRegValue |= GM_18_2;
JMF 0:24d3eb812fd4 342 break;
JMF 0:24d3eb812fd4 343 case GM_SU_21_5:
JMF 0:24d3eb812fd4 344 tempRegValue |= GM_21_5;
JMF 0:24d3eb812fd4 345 break;
JMF 0:24d3eb812fd4 346 case GM_SU_25_6:
JMF 0:24d3eb812fd4 347 tempRegValue |= GM_25_6;
JMF 0:24d3eb812fd4 348 break;
JMF 0:24d3eb812fd4 349 case GM_SU_28_8:
JMF 0:24d3eb812fd4 350 tempRegValue |= GM_28_8;
JMF 0:24d3eb812fd4 351 break;
JMF 0:24d3eb812fd4 352 case GM_SU_33_9:
JMF 0:24d3eb812fd4 353 tempRegValue |= GM_33_9;
JMF 0:24d3eb812fd4 354 break;
JMF 0:24d3eb812fd4 355 case GM_SU_38_5:
JMF 0:24d3eb812fd4 356 tempRegValue |= GM_38_5;
JMF 0:24d3eb812fd4 357 break;
JMF 0:24d3eb812fd4 358 case GM_SU_43_0:
JMF 0:24d3eb812fd4 359 tempRegValue |= GM_43_0;
JMF 0:24d3eb812fd4 360 break;
JMF 0:24d3eb812fd4 361 }
JMF 0:24d3eb812fd4 362
JMF 0:24d3eb812fd4 363 /* Writes new value on register */
JMF 0:24d3eb812fd4 364 g_xStatus = SpiritSpiWriteRegisters(ANA_FUNC_CONF1_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 365
JMF 0:24d3eb812fd4 366 }
JMF 0:24d3eb812fd4 367
JMF 0:24d3eb812fd4 368
JMF 0:24d3eb812fd4 369 /**
JMF 0:24d3eb812fd4 370 * @brief Returns the configured XO gm at startup.
JMF 0:24d3eb812fd4 371 * @param None.
JMF 0:24d3eb812fd4 372 * @retval GmConf Settled XO gm. This parameter can be a value of @ref GmConf.
JMF 0:24d3eb812fd4 373 */
JMF 0:24d3eb812fd4 374 GmConf SpiritGeneralGetXoGm(void)
JMF 0:24d3eb812fd4 375 {
JMF 0:24d3eb812fd4 376 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 377
JMF 0:24d3eb812fd4 378 /* Reads the ANA_FUNC_CONF1_BASE register value */
JMF 0:24d3eb812fd4 379 g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF1_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 380
JMF 0:24d3eb812fd4 381 /* Mask the GM_CONF field field and returns the settled transconductance of the XO at startup */
JMF 0:24d3eb812fd4 382 return ((GmConf)((tempRegValue & 0x1C)>>2));
JMF 0:24d3eb812fd4 383
JMF 0:24d3eb812fd4 384 }
JMF 0:24d3eb812fd4 385
JMF 0:24d3eb812fd4 386
JMF 0:24d3eb812fd4 387 /**
JMF 0:24d3eb812fd4 388 * @brief Returns the settled packet format.
JMF 0:24d3eb812fd4 389 * @param None.
JMF 0:24d3eb812fd4 390 * @retval PacketType Settled packet type. This parameter can be a value of @ref PacketType.
JMF 0:24d3eb812fd4 391 */
JMF 0:24d3eb812fd4 392 PacketType SpiritGeneralGetPktType(void)
JMF 0:24d3eb812fd4 393 {
JMF 0:24d3eb812fd4 394 uint8_t tempRegValue;
JMF 0:24d3eb812fd4 395
JMF 0:24d3eb812fd4 396 /* Reads the PROTOCOL1 register */
JMF 0:24d3eb812fd4 397 g_xStatus = SpiritSpiReadRegisters(PCKTCTRL3_BASE, 1, &tempRegValue);
JMF 0:24d3eb812fd4 398
JMF 0:24d3eb812fd4 399 /* cast and return value */
JMF 0:24d3eb812fd4 400 return (PacketType)(tempRegValue>>6);
JMF 0:24d3eb812fd4 401
JMF 0:24d3eb812fd4 402 }
JMF 0:24d3eb812fd4 403
JMF 0:24d3eb812fd4 404
JMF 0:24d3eb812fd4 405
JMF 0:24d3eb812fd4 406 /**
JMF 0:24d3eb812fd4 407 * @brief Returns device part number.
JMF 0:24d3eb812fd4 408 * @param None.
JMF 0:24d3eb812fd4 409 * @retval uint16_t Device part number.
JMF 0:24d3eb812fd4 410 */
JMF 0:24d3eb812fd4 411 uint16_t SpiritGeneralGetDevicePartNumber(void)
JMF 0:24d3eb812fd4 412 {
JMF 0:24d3eb812fd4 413 uint8_t tempRegValue[2];
JMF 0:24d3eb812fd4 414
JMF 0:24d3eb812fd4 415 /* Reads the register value containing the device part number */
JMF 0:24d3eb812fd4 416 g_xStatus = SpiritSpiReadRegisters(DEVICE_INFO1_PARTNUM, 2, tempRegValue);
JMF 0:24d3eb812fd4 417
JMF 0:24d3eb812fd4 418 return ((((uint16_t)tempRegValue[0])<<8) | ((uint16_t)tempRegValue[1]));
JMF 0:24d3eb812fd4 419
JMF 0:24d3eb812fd4 420 }
JMF 0:24d3eb812fd4 421
JMF 0:24d3eb812fd4 422 /**
JMF 0:24d3eb812fd4 423 * @brief Returns SPIRIT RF board version.
JMF 0:24d3eb812fd4 424 * @param None.
JMF 0:24d3eb812fd4 425 * @retval SPIRIT RF board version: 0x30 is the only admitted value
JMF 0:24d3eb812fd4 426 */
JMF 0:24d3eb812fd4 427 uint8_t SpiritGeneralGetSpiritVersion(void)
JMF 0:24d3eb812fd4 428 {
JMF 0:24d3eb812fd4 429 uint8_t ver;
JMF 0:24d3eb812fd4 430 SpiritSpiReadRegisters(DEVICE_INFO0_VERSION, 1, &ver);
JMF 0:24d3eb812fd4 431 return ver;
JMF 0:24d3eb812fd4 432 }
JMF 0:24d3eb812fd4 433
JMF 0:24d3eb812fd4 434 /**
JMF 0:24d3eb812fd4 435 *@}
JMF 0:24d3eb812fd4 436 */
JMF 0:24d3eb812fd4 437
JMF 0:24d3eb812fd4 438
JMF 0:24d3eb812fd4 439 /**
JMF 0:24d3eb812fd4 440 *@}
JMF 0:24d3eb812fd4 441 */
JMF 0:24d3eb812fd4 442
JMF 0:24d3eb812fd4 443
JMF 0:24d3eb812fd4 444 /**
JMF 0:24d3eb812fd4 445 *@}
JMF 0:24d3eb812fd4 446 */
JMF 0:24d3eb812fd4 447
JMF 0:24d3eb812fd4 448
JMF 0:24d3eb812fd4 449 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/