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_Calibration.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 Configuration and management of SPIRIT VCO-RCO calibration.
rosarium 0:2ddc0583bcec 8 *
rosarium 0:2ddc0583bcec 9 * @details
rosarium 0:2ddc0583bcec 10 *
rosarium 0:2ddc0583bcec 11 * This module allows the user to set some parameters which deal
rosarium 0:2ddc0583bcec 12 * with the oscillators calibration.
rosarium 0:2ddc0583bcec 13 * The state machine of Spirit contemplates some optional calibrating operations
rosarium 0:2ddc0583bcec 14 * in the transition between the READY and the LOCK state.
rosarium 0:2ddc0583bcec 15 * The user is allowed to enable or disable the automatic RCO/VCO calibration
rosarium 0:2ddc0583bcec 16 * by calling the functions <i>@ref SpiritCalibrationVco()</i> and <i>@ref SpiritCalibrationRco()</i>.
rosarium 0:2ddc0583bcec 17 * The following example shows how to do an initial calibration of VCO.
rosarium 0:2ddc0583bcec 18 *
rosarium 0:2ddc0583bcec 19 * <b>Example:</b>
rosarium 0:2ddc0583bcec 20 * @code
rosarium 0:2ddc0583bcec 21 * uint8_t calData;
rosarium 0:2ddc0583bcec 22 *
rosarium 0:2ddc0583bcec 23 * SpiritCalibrationVco(S_ENABLE);
rosarium 0:2ddc0583bcec 24 * SpiritCmdStrobeLockTx();
rosarium 0:2ddc0583bcec 25 *
rosarium 0:2ddc0583bcec 26 * while(g_xStatus.MC_STATE != MC_STATE_LOCK){
rosarium 0:2ddc0583bcec 27 * SpiritRefreshStatus();
rosarium 0:2ddc0583bcec 28 * }
rosarium 0:2ddc0583bcec 29 *
rosarium 0:2ddc0583bcec 30 * calData = SpiritCalibrationGetVcoCalDataTx();
rosarium 0:2ddc0583bcec 31 * SpiritCalibrationSetVcoCalDataTx(calData);
rosarium 0:2ddc0583bcec 32 *
rosarium 0:2ddc0583bcec 33 * SpiritCmdStrobeReady();
rosarium 0:2ddc0583bcec 34 * SpiritCalibrationVco(S_DISABLE);
rosarium 0:2ddc0583bcec 35 *
rosarium 0:2ddc0583bcec 36 * @endcode
rosarium 0:2ddc0583bcec 37 *
rosarium 0:2ddc0583bcec 38 * Similar operations can be done for the RCO calibrator.
rosarium 0:2ddc0583bcec 39 *
rosarium 0:2ddc0583bcec 40 * @attention
rosarium 0:2ddc0583bcec 41 *
rosarium 0:2ddc0583bcec 42 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
rosarium 0:2ddc0583bcec 43 *
rosarium 0:2ddc0583bcec 44 * Redistribution and use in source and binary forms, with or without modification,
rosarium 0:2ddc0583bcec 45 * are permitted provided that the following conditions are met:
rosarium 0:2ddc0583bcec 46 * 1. Redistributions of source code must retain the above copyright notice,
rosarium 0:2ddc0583bcec 47 * this list of conditions and the following disclaimer.
rosarium 0:2ddc0583bcec 48 * 2. Redistributions in binary form must reproduce the above copyright notice,
rosarium 0:2ddc0583bcec 49 * this list of conditions and the following disclaimer in the documentation
rosarium 0:2ddc0583bcec 50 * and/or other materials provided with the distribution.
rosarium 0:2ddc0583bcec 51 * 3. Neither the name of STMicroelectronics nor the names of its contributors
rosarium 0:2ddc0583bcec 52 * may be used to endorse or promote products derived from this software
rosarium 0:2ddc0583bcec 53 * without specific prior written permission.
rosarium 0:2ddc0583bcec 54 *
rosarium 0:2ddc0583bcec 55 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
rosarium 0:2ddc0583bcec 56 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
rosarium 0:2ddc0583bcec 57 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rosarium 0:2ddc0583bcec 58 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
rosarium 0:2ddc0583bcec 59 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
rosarium 0:2ddc0583bcec 60 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
rosarium 0:2ddc0583bcec 61 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
rosarium 0:2ddc0583bcec 62 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
rosarium 0:2ddc0583bcec 63 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
rosarium 0:2ddc0583bcec 64 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rosarium 0:2ddc0583bcec 65 *
rosarium 0:2ddc0583bcec 66 ******************************************************************************
rosarium 0:2ddc0583bcec 67 */
rosarium 0:2ddc0583bcec 68
rosarium 0:2ddc0583bcec 69 /* Define to prevent recursive inclusion -------------------------------------*/
rosarium 0:2ddc0583bcec 70 #ifndef __SPIRIT_CALIBRATION_H
rosarium 0:2ddc0583bcec 71 #define __SPIRIT_CALIBRATION_H
rosarium 0:2ddc0583bcec 72
rosarium 0:2ddc0583bcec 73
rosarium 0:2ddc0583bcec 74 /* Includes ------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 75
rosarium 0:2ddc0583bcec 76 #include "SPIRIT_Regs.h"
rosarium 0:2ddc0583bcec 77 #include "SPIRIT_Types.h"
rosarium 0:2ddc0583bcec 78
rosarium 0:2ddc0583bcec 79
rosarium 0:2ddc0583bcec 80 #ifdef __cplusplus
rosarium 0:2ddc0583bcec 81 extern "C" {
rosarium 0:2ddc0583bcec 82 #endif
rosarium 0:2ddc0583bcec 83
rosarium 0:2ddc0583bcec 84
rosarium 0:2ddc0583bcec 85 /**
rosarium 0:2ddc0583bcec 86 * @addtogroup SPIRIT_Libraries
rosarium 0:2ddc0583bcec 87 * @{
rosarium 0:2ddc0583bcec 88 */
rosarium 0:2ddc0583bcec 89
rosarium 0:2ddc0583bcec 90
rosarium 0:2ddc0583bcec 91 /**
rosarium 0:2ddc0583bcec 92 * @defgroup SPIRIT_Calibration Calibration
rosarium 0:2ddc0583bcec 93 * @brief Configuration and management of SPIRIT VCO-RCO calibration.
rosarium 0:2ddc0583bcec 94 * @details See the file <i>@ref SPIRIT_Calibration.h</i> for more details.
rosarium 0:2ddc0583bcec 95 * @{
rosarium 0:2ddc0583bcec 96 */
rosarium 0:2ddc0583bcec 97
rosarium 0:2ddc0583bcec 98 /**
rosarium 0:2ddc0583bcec 99 * @defgroup Calibration_Exported_Types Calibration Exported Types
rosarium 0:2ddc0583bcec 100 * @{
rosarium 0:2ddc0583bcec 101 */
rosarium 0:2ddc0583bcec 102
rosarium 0:2ddc0583bcec 103
rosarium 0:2ddc0583bcec 104 /**
rosarium 0:2ddc0583bcec 105 * @brief VCO / RCO calibration window.
rosarium 0:2ddc0583bcec 106 */
rosarium 0:2ddc0583bcec 107 typedef enum
rosarium 0:2ddc0583bcec 108 {
rosarium 0:2ddc0583bcec 109
rosarium 0:2ddc0583bcec 110 CALIB_TIME_7_33_US_24MHZ = 0x00, /*!< calibration window of 7.33 us with XTAL=24MHz */
rosarium 0:2ddc0583bcec 111 CALIB_TIME_14_67_US_24MHZ, /*!< calibration window of 14.67 us with XTAL=24MHz */
rosarium 0:2ddc0583bcec 112 CALIB_TIME_29_33_US_24MHZ, /*!< calibration window of 29.33 us with XTAL=24MHz */
rosarium 0:2ddc0583bcec 113 CALIB_TIME_58_67_US_24MHZ, /*!< calibration window of 58.67 us with XTAL=24MHz */
rosarium 0:2ddc0583bcec 114
rosarium 0:2ddc0583bcec 115 CALIB_TIME_6_77_US_26MHZ = 0x00, /*!< calibration window of 6.77 us with XTAL=26MHz */
rosarium 0:2ddc0583bcec 116 CALIB_TIME_13_54_US_26MHZ, /*!< calibration window of 13.54 us with XTAL=26MHz */
rosarium 0:2ddc0583bcec 117 CALIB_TIME_27_08_US_26MHZ, /*!< calibration window of 27.08 us with XTAL=26MHz */
rosarium 0:2ddc0583bcec 118 CALIB_TIME_54_15_US_26MHZ /*!< calibration window of 54.15 us with XTAL=26MHz */
rosarium 0:2ddc0583bcec 119
rosarium 0:2ddc0583bcec 120 } VcoWin;
rosarium 0:2ddc0583bcec 121
rosarium 0:2ddc0583bcec 122
rosarium 0:2ddc0583bcec 123 #define IS_VCO_WIN(REF) (REF == CALIB_TIME_7_33_US_24MHZ ||\
rosarium 0:2ddc0583bcec 124 REF == CALIB_TIME_14_67_US_24MHZ ||\
rosarium 0:2ddc0583bcec 125 REF == CALIB_TIME_29_33_US_24MHZ ||\
rosarium 0:2ddc0583bcec 126 REF == CALIB_TIME_58_67_US_24MHZ ||\
rosarium 0:2ddc0583bcec 127 REF == CALIB_TIME_6_77_US_26MHZ ||\
rosarium 0:2ddc0583bcec 128 REF == CALIB_TIME_13_54_US_26MHZ ||\
rosarium 0:2ddc0583bcec 129 REF == CALIB_TIME_27_08_US_26MHZ ||\
rosarium 0:2ddc0583bcec 130 REF == CALIB_TIME_54_15_US_26MHZ \
rosarium 0:2ddc0583bcec 131 )
rosarium 0:2ddc0583bcec 132
rosarium 0:2ddc0583bcec 133 /**
rosarium 0:2ddc0583bcec 134 * @brief VCO_H / VCO_L selection.
rosarium 0:2ddc0583bcec 135 */
rosarium 0:2ddc0583bcec 136 typedef enum
rosarium 0:2ddc0583bcec 137 {
rosarium 0:2ddc0583bcec 138
rosarium 0:2ddc0583bcec 139 VCO_L = 0x00, /*!< VCO lower */
rosarium 0:2ddc0583bcec 140 VCO_H, /*!< VCO higher */
rosarium 0:2ddc0583bcec 141 } VcoSel;
rosarium 0:2ddc0583bcec 142
rosarium 0:2ddc0583bcec 143
rosarium 0:2ddc0583bcec 144 #define IS_VCO_SEL(REF) (REF == VCO_L ||\
rosarium 0:2ddc0583bcec 145 REF == VCO_H \
rosarium 0:2ddc0583bcec 146 )
rosarium 0:2ddc0583bcec 147
rosarium 0:2ddc0583bcec 148
rosarium 0:2ddc0583bcec 149 /**
rosarium 0:2ddc0583bcec 150 * @}
rosarium 0:2ddc0583bcec 151 */
rosarium 0:2ddc0583bcec 152
rosarium 0:2ddc0583bcec 153
rosarium 0:2ddc0583bcec 154 /**
rosarium 0:2ddc0583bcec 155 * @defgroup Calibration_Exported_Constants Calibration Exported Constants
rosarium 0:2ddc0583bcec 156 * @{
rosarium 0:2ddc0583bcec 157 */
rosarium 0:2ddc0583bcec 158
rosarium 0:2ddc0583bcec 159 /**
rosarium 0:2ddc0583bcec 160 * @}
rosarium 0:2ddc0583bcec 161 */
rosarium 0:2ddc0583bcec 162
rosarium 0:2ddc0583bcec 163
rosarium 0:2ddc0583bcec 164
rosarium 0:2ddc0583bcec 165 /** @defgroup VCO_Calibration VCO Calibration
rosarium 0:2ddc0583bcec 166 * @{
rosarium 0:2ddc0583bcec 167 */
rosarium 0:2ddc0583bcec 168
rosarium 0:2ddc0583bcec 169 /**
rosarium 0:2ddc0583bcec 170 * @}
rosarium 0:2ddc0583bcec 171 */
rosarium 0:2ddc0583bcec 172
rosarium 0:2ddc0583bcec 173
rosarium 0:2ddc0583bcec 174
rosarium 0:2ddc0583bcec 175
rosarium 0:2ddc0583bcec 176 /**
rosarium 0:2ddc0583bcec 177 * @defgroup Calibration_Exported_Macros Calibration Exported Macros
rosarium 0:2ddc0583bcec 178 * @{
rosarium 0:2ddc0583bcec 179 */
rosarium 0:2ddc0583bcec 180
rosarium 0:2ddc0583bcec 181
rosarium 0:2ddc0583bcec 182 /**
rosarium 0:2ddc0583bcec 183 * @}
rosarium 0:2ddc0583bcec 184 */
rosarium 0:2ddc0583bcec 185
rosarium 0:2ddc0583bcec 186
rosarium 0:2ddc0583bcec 187 /**
rosarium 0:2ddc0583bcec 188 * @defgroup Calibration_Exported_Functions Calibration Exported Functions
rosarium 0:2ddc0583bcec 189 * @{
rosarium 0:2ddc0583bcec 190 */
rosarium 0:2ddc0583bcec 191
rosarium 0:2ddc0583bcec 192 void SpiritCalibrationRco(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 193 void SpiritCalibrationVco(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 194 void SpiritCalibrationSetRcoCalWords(uint8_t cRwt, uint8_t cRfb);
rosarium 0:2ddc0583bcec 195 void SpiritCalibrationGetRcoCalWords(uint8_t* pcRwt, uint8_t* pcRfb);
rosarium 0:2ddc0583bcec 196 uint8_t SpiritCalibrationGetVcoCalData(void);
rosarium 0:2ddc0583bcec 197 void SpiritCalibrationSetVcoCalDataTx(uint8_t cVcoCalData);
rosarium 0:2ddc0583bcec 198 uint8_t SpiritCalibrationGetVcoCalDataTx(void);
rosarium 0:2ddc0583bcec 199 void SpiritCalibrationSetVcoCalDataRx(uint8_t cVcoCalData);
rosarium 0:2ddc0583bcec 200 uint8_t SpiritCalibrationGetVcoCalDataRx(void);
rosarium 0:2ddc0583bcec 201 void SpiritCalibrationSetVcoWindow(VcoWin xRefWord);
rosarium 0:2ddc0583bcec 202 VcoWin SpiritCalibrationGetVcoWindow(void);
rosarium 0:2ddc0583bcec 203 VcoSel SpiritCalibrationGetVcoSelecttion(void);
rosarium 0:2ddc0583bcec 204 void SpiritCalibrationSelectVco(VcoSel xVco);
rosarium 0:2ddc0583bcec 205
rosarium 0:2ddc0583bcec 206 /**
rosarium 0:2ddc0583bcec 207 * @}
rosarium 0:2ddc0583bcec 208 */
rosarium 0:2ddc0583bcec 209
rosarium 0:2ddc0583bcec 210
rosarium 0:2ddc0583bcec 211 /**
rosarium 0:2ddc0583bcec 212 * @}
rosarium 0:2ddc0583bcec 213 */
rosarium 0:2ddc0583bcec 214
rosarium 0:2ddc0583bcec 215
rosarium 0:2ddc0583bcec 216 /**
rosarium 0:2ddc0583bcec 217 * @}
rosarium 0:2ddc0583bcec 218 */
rosarium 0:2ddc0583bcec 219
rosarium 0:2ddc0583bcec 220 #ifdef __cplusplus
rosarium 0:2ddc0583bcec 221 }
rosarium 0:2ddc0583bcec 222 #endif
rosarium 0:2ddc0583bcec 223
rosarium 0:2ddc0583bcec 224 #endif
rosarium 0:2ddc0583bcec 225
rosarium 0:2ddc0583bcec 226 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/