Prototype RF driver for STM Sub-1 GHz RF expansion board based on the SPSGRF-868 module for STM32 Nucleo.

Prototype RF Driver for STM Sub-1 GHz RF Expansion Boards based on the SPSGRF-868 and SPSGRF-915 Modules for STM32 Nucleo

Currently supported boards:

Note, in order to use expansion board X-NUCLEO-IDS01A4 in mbed you need to perform the following HW modifications on the board:

  • Unmount resistor R4
  • Mount resistor R7

Furthermore, on some Nucleo development boards (e.g. the NUCLEO_F429ZI), in order to be able to use Ethernet together with these Sub-1 GHz RF expansion boards, you need to compile this driver with macro SPIRIT1_SPI_MOSI=PB_5 defined, while the development board typically requires some HW modification as e.g. described here!

This driver can be used together with the 6LoWPAN stack (a.k.a. Nanostack).

Committer:
Wolfgang Betz
Date:
Thu Jul 06 11:13:31 2017 +0200
Revision:
67:93bec0baf1de
Parent:
34:edda6a7238ec
Clarify some comments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wolfgang Betz 67:93bec0baf1de 1 /**
Wolfgang Betz 67:93bec0baf1de 2 ******************************************************************************
Wolfgang Betz 67:93bec0baf1de 3 * @file SPIRIT_Csma.h
Wolfgang Betz 67:93bec0baf1de 4 * @author VMA division - AMS
Wolfgang Betz 67:93bec0baf1de 5 * @version 3.2.2
Wolfgang Betz 67:93bec0baf1de 6 * @date 08-July-2015
Wolfgang Betz 67:93bec0baf1de 7 * @brief Configuration and management of SPIRIT CSMA.
Wolfgang Betz 67:93bec0baf1de 8 * @details
Wolfgang Betz 67:93bec0baf1de 9 *
Wolfgang Betz 67:93bec0baf1de 10 * The Spirit CSMA feature, when configured and enabled, is transparent
Wolfgang Betz 67:93bec0baf1de 11 * for the user. It means the user has only to call the <i>@ref SpiritCsmaInit()</i>
Wolfgang Betz 67:93bec0baf1de 12 * function on a filled structure and then enable the CSMA policy using the <i>@ref SpiritCsma()</i>
Wolfgang Betz 67:93bec0baf1de 13 * function.
Wolfgang Betz 67:93bec0baf1de 14 *
Wolfgang Betz 67:93bec0baf1de 15 * <b>Example:</b>
Wolfgang Betz 67:93bec0baf1de 16 * @code
Wolfgang Betz 67:93bec0baf1de 17 *
Wolfgang Betz 67:93bec0baf1de 18 * CsmaInit csmaInit={
Wolfgang Betz 67:93bec0baf1de 19 * S_DISABLE, // persistent mode
Wolfgang Betz 67:93bec0baf1de 20 * TBIT_TIME_64, // Tbit time
Wolfgang Betz 67:93bec0baf1de 21 * TCCA_TIME_3, // Tcca time
Wolfgang Betz 67:93bec0baf1de 22 * 5, // max number of backoffs
Wolfgang Betz 67:93bec0baf1de 23 * 0xFA21, // BU counter seed
Wolfgang Betz 67:93bec0baf1de 24 * 32 // CU prescaler
Wolfgang Betz 67:93bec0baf1de 25 * };
Wolfgang Betz 67:93bec0baf1de 26 *
Wolfgang Betz 67:93bec0baf1de 27 * ...
Wolfgang Betz 67:93bec0baf1de 28 *
Wolfgang Betz 67:93bec0baf1de 29 * SpiritCsmaInit(&csmaInit);
Wolfgang Betz 67:93bec0baf1de 30 * SpiritCsma(S_ENABLE);
Wolfgang Betz 67:93bec0baf1de 31 *
Wolfgang Betz 67:93bec0baf1de 32 *
Wolfgang Betz 67:93bec0baf1de 33 * @endcode
Wolfgang Betz 67:93bec0baf1de 34 *
Wolfgang Betz 67:93bec0baf1de 35 * @note The CS status depends of the RSSI threshold set. Please see the Spirit_Qi
Wolfgang Betz 67:93bec0baf1de 36 * module for details.
Wolfgang Betz 67:93bec0baf1de 37 *
Wolfgang Betz 67:93bec0baf1de 38 * @attention
Wolfgang Betz 67:93bec0baf1de 39 *
Wolfgang Betz 67:93bec0baf1de 40 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
Wolfgang Betz 67:93bec0baf1de 41 *
Wolfgang Betz 67:93bec0baf1de 42 * Redistribution and use in source and binary forms, with or without modification,
Wolfgang Betz 67:93bec0baf1de 43 * are permitted provided that the following conditions are met:
Wolfgang Betz 67:93bec0baf1de 44 * 1. Redistributions of source code must retain the above copyright notice,
Wolfgang Betz 67:93bec0baf1de 45 * this list of conditions and the following disclaimer.
Wolfgang Betz 67:93bec0baf1de 46 * 2. Redistributions in binary form must reproduce the above copyright notice,
Wolfgang Betz 67:93bec0baf1de 47 * this list of conditions and the following disclaimer in the documentation
Wolfgang Betz 67:93bec0baf1de 48 * and/or other materials provided with the distribution.
Wolfgang Betz 67:93bec0baf1de 49 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Wolfgang Betz 67:93bec0baf1de 50 * may be used to endorse or promote products derived from this software
Wolfgang Betz 67:93bec0baf1de 51 * without specific prior written permission.
Wolfgang Betz 67:93bec0baf1de 52 *
Wolfgang Betz 67:93bec0baf1de 53 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Wolfgang Betz 67:93bec0baf1de 54 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Wolfgang Betz 67:93bec0baf1de 55 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Wolfgang Betz 67:93bec0baf1de 56 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Wolfgang Betz 67:93bec0baf1de 57 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Wolfgang Betz 67:93bec0baf1de 58 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Wolfgang Betz 67:93bec0baf1de 59 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Wolfgang Betz 67:93bec0baf1de 60 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Wolfgang Betz 67:93bec0baf1de 61 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Wolfgang Betz 67:93bec0baf1de 62 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Wolfgang Betz 67:93bec0baf1de 63 *
Wolfgang Betz 67:93bec0baf1de 64 ******************************************************************************
Wolfgang Betz 67:93bec0baf1de 65 */
Wolfgang Betz 67:93bec0baf1de 66
Wolfgang Betz 67:93bec0baf1de 67 /* Define to prevent recursive inclusion -------------------------------------*/
Wolfgang Betz 67:93bec0baf1de 68 #ifndef __SPIRIT_CSMA_H
Wolfgang Betz 67:93bec0baf1de 69 #define __SPIRIT_CSMA_H
Wolfgang Betz 67:93bec0baf1de 70
Wolfgang Betz 67:93bec0baf1de 71
Wolfgang Betz 67:93bec0baf1de 72 /* Includes ------------------------------------------------------------------*/
Wolfgang Betz 67:93bec0baf1de 73
Wolfgang Betz 67:93bec0baf1de 74 #include "SPIRIT_Types.h"
Wolfgang Betz 67:93bec0baf1de 75 #include "SPIRIT_Regs.h"
Wolfgang Betz 67:93bec0baf1de 76
Wolfgang Betz 67:93bec0baf1de 77
Wolfgang Betz 67:93bec0baf1de 78 #ifdef __cplusplus
Wolfgang Betz 67:93bec0baf1de 79 extern "C" {
Wolfgang Betz 67:93bec0baf1de 80 #endif
Wolfgang Betz 67:93bec0baf1de 81
Wolfgang Betz 67:93bec0baf1de 82
Wolfgang Betz 67:93bec0baf1de 83 /**
Wolfgang Betz 67:93bec0baf1de 84 * @addtogroup SPIRIT_Libraries
Wolfgang Betz 67:93bec0baf1de 85 * @{
Wolfgang Betz 67:93bec0baf1de 86 */
Wolfgang Betz 67:93bec0baf1de 87
Wolfgang Betz 67:93bec0baf1de 88
Wolfgang Betz 67:93bec0baf1de 89 /**
Wolfgang Betz 67:93bec0baf1de 90 * @defgroup SPIRIT_Csma CSMA
Wolfgang Betz 67:93bec0baf1de 91 * @brief Configuration and management of SPIRIT CSMA.
Wolfgang Betz 67:93bec0baf1de 92 * @details See the file <i>@ref SPIRIT_Csma.h</i> for more details.
Wolfgang Betz 67:93bec0baf1de 93 * @{
Wolfgang Betz 67:93bec0baf1de 94 */
Wolfgang Betz 67:93bec0baf1de 95
Wolfgang Betz 67:93bec0baf1de 96 /**
Wolfgang Betz 67:93bec0baf1de 97 * @defgroup Csma_Exported_Types CSMA Exported Types
Wolfgang Betz 67:93bec0baf1de 98 * @{
Wolfgang Betz 67:93bec0baf1de 99 */
Wolfgang Betz 67:93bec0baf1de 100
Wolfgang Betz 67:93bec0baf1de 101
Wolfgang Betz 67:93bec0baf1de 102 /**
Wolfgang Betz 67:93bec0baf1de 103 * @brief Multiplier for Tcca time enumeration (Tcca = Multiplier*Tbit).
Wolfgang Betz 67:93bec0baf1de 104 */
Wolfgang Betz 67:93bec0baf1de 105 typedef enum
Wolfgang Betz 67:93bec0baf1de 106 {
Wolfgang Betz 67:93bec0baf1de 107 TBIT_TIME_64 = CSMA_CCA_PERIOD_64TBIT, /*!< CSMA/CA: Sets CCA period to 64*TBIT */
Wolfgang Betz 67:93bec0baf1de 108 TBIT_TIME_128 = CSMA_CCA_PERIOD_128TBIT, /*!< CSMA/CA: Sets CCA period to 128*TBIT */
Wolfgang Betz 67:93bec0baf1de 109 TBIT_TIME_256 = CSMA_CCA_PERIOD_256TBIT, /*!< CSMA/CA: Sets CCA period to 256*TBIT */
Wolfgang Betz 67:93bec0baf1de 110 TBIT_TIME_512 = CSMA_CCA_PERIOD_512TBIT, /*!< CSMA/CA: Sets CCA period to 512*TBIT */
Wolfgang Betz 67:93bec0baf1de 111 }CcaPeriod;
Wolfgang Betz 67:93bec0baf1de 112
Wolfgang Betz 67:93bec0baf1de 113 #define IS_CCA_PERIOD(PERIOD) (PERIOD == TBIT_TIME_64 || \
Wolfgang Betz 67:93bec0baf1de 114 PERIOD == TBIT_TIME_128 || \
Wolfgang Betz 67:93bec0baf1de 115 PERIOD == TBIT_TIME_256 || \
Wolfgang Betz 67:93bec0baf1de 116 PERIOD == TBIT_TIME_512)
Wolfgang Betz 67:93bec0baf1de 117
Wolfgang Betz 67:93bec0baf1de 118
Wolfgang Betz 67:93bec0baf1de 119 /**
Wolfgang Betz 67:93bec0baf1de 120 * @brief Multiplier of Tcca time enumeration to obtain Tlisten (Tlisten = [1...15]*Tcca).
Wolfgang Betz 67:93bec0baf1de 121 */
Wolfgang Betz 67:93bec0baf1de 122 typedef enum
Wolfgang Betz 67:93bec0baf1de 123 {
Wolfgang Betz 67:93bec0baf1de 124 TCCA_TIME_0 = 0x00, /*!< CSMA/CA: Sets CCA length to 0 */
Wolfgang Betz 67:93bec0baf1de 125 TCCA_TIME_1 = 0x10, /*!< CSMA/CA: Sets CCA length to 1*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 126 TCCA_TIME_2 = 0x20, /*!< CSMA/CA: Sets CCA length to 2*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 127 TCCA_TIME_3 = 0x30, /*!< CSMA/CA: Sets CCA length to 3*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 128 TCCA_TIME_4 = 0x40, /*!< CSMA/CA: Sets CCA length to 4*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 129 TCCA_TIME_5 = 0x50, /*!< CSMA/CA: Sets CCA length to 5*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 130 TCCA_TIME_6 = 0x60, /*!< CSMA/CA: Sets CCA length to 6*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 131 TCCA_TIME_7 = 0x70, /*!< CSMA/CA: Sets CCA length to 7*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 132 TCCA_TIME_8 = 0x80, /*!< CSMA/CA: Sets CCA length to 8*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 133 TCCA_TIME_9 = 0x90, /*!< CSMA/CA: Sets CCA length to 9*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 134 TCCA_TIME_10 = 0xA0, /*!< CSMA/CA: Sets CCA length to 10*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 135 TCCA_TIME_11 = 0xB0, /*!< CSMA/CA: Sets CCA length to 11*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 136 TCCA_TIME_12 = 0xC0, /*!< CSMA/CA: Sets CCA length to 12*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 137 TCCA_TIME_13 = 0xD0, /*!< CSMA/CA: Sets CCA length to 13*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 138 TCCA_TIME_14 = 0xE0, /*!< CSMA/CA: Sets CCA length to 14*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 139 TCCA_TIME_15 = 0xF0, /*!< CSMA/CA: Sets CCA length to 15*TLISTEN */
Wolfgang Betz 67:93bec0baf1de 140 }CsmaLength;
Wolfgang Betz 67:93bec0baf1de 141
Wolfgang Betz 67:93bec0baf1de 142 #define IS_CSMA_LENGTH(LENGTH) (LENGTH == TCCA_TIME_0 || \
Wolfgang Betz 67:93bec0baf1de 143 LENGTH == TCCA_TIME_1 || \
Wolfgang Betz 67:93bec0baf1de 144 LENGTH == TCCA_TIME_2 || \
Wolfgang Betz 67:93bec0baf1de 145 LENGTH == TCCA_TIME_3 || \
Wolfgang Betz 67:93bec0baf1de 146 LENGTH == TCCA_TIME_4 || \
Wolfgang Betz 67:93bec0baf1de 147 LENGTH == TCCA_TIME_5 || \
Wolfgang Betz 67:93bec0baf1de 148 LENGTH == TCCA_TIME_6 || \
Wolfgang Betz 67:93bec0baf1de 149 LENGTH == TCCA_TIME_7 || \
Wolfgang Betz 67:93bec0baf1de 150 LENGTH == TCCA_TIME_8 || \
Wolfgang Betz 67:93bec0baf1de 151 LENGTH == TCCA_TIME_9 || \
Wolfgang Betz 67:93bec0baf1de 152 LENGTH == TCCA_TIME_10 || \
Wolfgang Betz 67:93bec0baf1de 153 LENGTH == TCCA_TIME_11 || \
Wolfgang Betz 67:93bec0baf1de 154 LENGTH == TCCA_TIME_12 || \
Wolfgang Betz 67:93bec0baf1de 155 LENGTH == TCCA_TIME_13 || \
Wolfgang Betz 67:93bec0baf1de 156 LENGTH == TCCA_TIME_14 || \
Wolfgang Betz 67:93bec0baf1de 157 LENGTH == TCCA_TIME_15)
Wolfgang Betz 67:93bec0baf1de 158
Wolfgang Betz 67:93bec0baf1de 159
Wolfgang Betz 67:93bec0baf1de 160 /**
Wolfgang Betz 67:93bec0baf1de 161 * @brief SPIRIT CSMA Init structure definition
Wolfgang Betz 67:93bec0baf1de 162 */
Wolfgang Betz 67:93bec0baf1de 163 typedef struct
Wolfgang Betz 67:93bec0baf1de 164 {
Wolfgang Betz 67:93bec0baf1de 165 SpiritFunctionalState xCsmaPersistentMode; /*!< Specifies if the CSMA persistent mode has to be on or off.
Wolfgang Betz 67:93bec0baf1de 166 This parameter can be S_ENABLE or S_DISABLE */
Wolfgang Betz 67:93bec0baf1de 167 CcaPeriod xMultiplierTbit; /*!< Specifies the Tbit multiplier to obtain the Tcca.
Wolfgang Betz 67:93bec0baf1de 168 This parameter can be a value of @ref CcaPeriod */
Wolfgang Betz 67:93bec0baf1de 169 CsmaLength xCcaLength; /*!< Specifies the Tcca multiplier to determinate the Tlisten.
Wolfgang Betz 67:93bec0baf1de 170 This parameter can be a value of @ref CsmaLength. */
Wolfgang Betz 67:93bec0baf1de 171 uint8_t cMaxNb; /*!< Specifies the max number of backoff cycles. Not used in persistent mode.
Wolfgang Betz 67:93bec0baf1de 172 This parameter is an uint8_t. */
Wolfgang Betz 67:93bec0baf1de 173 uint16_t nBuCounterSeed; /*!< Specifies the BU counter seed. Not used in persistent mode.
Wolfgang Betz 67:93bec0baf1de 174 This parameter can be a value of 16 bits. */
Wolfgang Betz 67:93bec0baf1de 175 uint8_t cBuPrescaler; /*!< Specifies the BU prescaler. Not used in persistent mode.
Wolfgang Betz 67:93bec0baf1de 176 This parameter can be a value of 6 bits. */
Wolfgang Betz 67:93bec0baf1de 177 }CsmaInit;
Wolfgang Betz 67:93bec0baf1de 178
Wolfgang Betz 67:93bec0baf1de 179
Wolfgang Betz 67:93bec0baf1de 180 /**
Wolfgang Betz 67:93bec0baf1de 181 *@}
Wolfgang Betz 67:93bec0baf1de 182 */
Wolfgang Betz 67:93bec0baf1de 183
Wolfgang Betz 67:93bec0baf1de 184
Wolfgang Betz 67:93bec0baf1de 185 /**
Wolfgang Betz 67:93bec0baf1de 186 * @defgroup Csma_Exported_Constants CSMA Exported Constants
Wolfgang Betz 67:93bec0baf1de 187 * @{
Wolfgang Betz 67:93bec0baf1de 188 */
Wolfgang Betz 67:93bec0baf1de 189
Wolfgang Betz 67:93bec0baf1de 190 /**
Wolfgang Betz 67:93bec0baf1de 191 * @defgroup Csma_Parameters CSMA Parameters
Wolfgang Betz 67:93bec0baf1de 192 * @{
Wolfgang Betz 67:93bec0baf1de 193 */
Wolfgang Betz 67:93bec0baf1de 194
Wolfgang Betz 67:93bec0baf1de 195 #define IS_BU_COUNTER_SEED(SEED) (SEED!=0)
Wolfgang Betz 67:93bec0baf1de 196 #define IS_BU_PRESCALER(PRESCALER) (PRESCALER<64)
Wolfgang Betz 67:93bec0baf1de 197 #define IS_CMAX_NB(NB) (NB<8)
Wolfgang Betz 67:93bec0baf1de 198
Wolfgang Betz 67:93bec0baf1de 199 /**
Wolfgang Betz 67:93bec0baf1de 200 *@}
Wolfgang Betz 67:93bec0baf1de 201 */
Wolfgang Betz 67:93bec0baf1de 202
Wolfgang Betz 67:93bec0baf1de 203 /**
Wolfgang Betz 67:93bec0baf1de 204 *@}
Wolfgang Betz 67:93bec0baf1de 205 */
Wolfgang Betz 67:93bec0baf1de 206
Wolfgang Betz 67:93bec0baf1de 207
Wolfgang Betz 67:93bec0baf1de 208 /**
Wolfgang Betz 67:93bec0baf1de 209 * @defgroup Csma_Exported_Macros CSMA Exported Macros
Wolfgang Betz 67:93bec0baf1de 210 * @{
Wolfgang Betz 67:93bec0baf1de 211 */
Wolfgang Betz 67:93bec0baf1de 212
Wolfgang Betz 67:93bec0baf1de 213
Wolfgang Betz 67:93bec0baf1de 214 /**
Wolfgang Betz 67:93bec0baf1de 215 *@}
Wolfgang Betz 67:93bec0baf1de 216 */
Wolfgang Betz 67:93bec0baf1de 217
Wolfgang Betz 67:93bec0baf1de 218
Wolfgang Betz 67:93bec0baf1de 219 /**
Wolfgang Betz 67:93bec0baf1de 220 * @defgroup Csma_Exported_Functions CSMA Exported Functions
Wolfgang Betz 67:93bec0baf1de 221 * @{
Wolfgang Betz 67:93bec0baf1de 222 */
Wolfgang Betz 67:93bec0baf1de 223
Wolfgang Betz 67:93bec0baf1de 224 void SpiritCsmaInit(CsmaInit* pxCsmaInit);
Wolfgang Betz 67:93bec0baf1de 225 void SpiritCsmaGetInfo(CsmaInit* pxCsmaInit);
Wolfgang Betz 67:93bec0baf1de 226 void SpiritCsma(SpiritFunctionalState xNewState);
Wolfgang Betz 67:93bec0baf1de 227 SpiritFunctionalState SpiritCsmaGetCsma(void);
Wolfgang Betz 67:93bec0baf1de 228 void SpiritCsmaPersistentMode(SpiritFunctionalState xNewState);
Wolfgang Betz 67:93bec0baf1de 229 SpiritFunctionalState SpiritCsmaGetPersistentMode(void);
Wolfgang Betz 67:93bec0baf1de 230 void SpiritCsmaSeedReloadMode(SpiritFunctionalState xNewState);
Wolfgang Betz 67:93bec0baf1de 231 SpiritFunctionalState SpiritCsmaGetSeedReloadMode(void);
Wolfgang Betz 67:93bec0baf1de 232 void SpiritCsmaSetBuCounterSeed(uint16_t nBuCounterSeed);
Wolfgang Betz 67:93bec0baf1de 233 uint16_t SpiritCsmaGetBuCounterSeed(void);
Wolfgang Betz 67:93bec0baf1de 234 void SpiritCsmaSetBuPrescaler(uint8_t cBuPrescaler);
Wolfgang Betz 67:93bec0baf1de 235 uint8_t SpiritCsmaGetBuPrescaler(void);
Wolfgang Betz 67:93bec0baf1de 236 void SpiritCsmaSetCcaPeriod(CcaPeriod xMultiplierTbit);
Wolfgang Betz 67:93bec0baf1de 237 CcaPeriod SpiritCsmaGetCcaPeriod(void);
Wolfgang Betz 67:93bec0baf1de 238 void SpiritCsmaSetCcaLength(CsmaLength xCcaLength);
Wolfgang Betz 67:93bec0baf1de 239 uint8_t SpiritCsmaGetCcaLength(void);
Wolfgang Betz 67:93bec0baf1de 240 void SpiritCsmaSetMaxNumberBackoff(uint8_t cMaxNb);
Wolfgang Betz 67:93bec0baf1de 241 uint8_t SpiritCsmaGetMaxNumberBackoff(void);
Wolfgang Betz 67:93bec0baf1de 242
Wolfgang Betz 67:93bec0baf1de 243
Wolfgang Betz 67:93bec0baf1de 244 /**
Wolfgang Betz 67:93bec0baf1de 245 *@}
Wolfgang Betz 67:93bec0baf1de 246 */
Wolfgang Betz 67:93bec0baf1de 247
Wolfgang Betz 67:93bec0baf1de 248 /**
Wolfgang Betz 67:93bec0baf1de 249 *@}
Wolfgang Betz 67:93bec0baf1de 250 */
Wolfgang Betz 67:93bec0baf1de 251
Wolfgang Betz 67:93bec0baf1de 252
Wolfgang Betz 67:93bec0baf1de 253 /**
Wolfgang Betz 67:93bec0baf1de 254 *@}
Wolfgang Betz 67:93bec0baf1de 255 */
Wolfgang Betz 67:93bec0baf1de 256
Wolfgang Betz 67:93bec0baf1de 257 #ifdef __cplusplus
Wolfgang Betz 67:93bec0baf1de 258 }
Wolfgang Betz 67:93bec0baf1de 259 #endif
Wolfgang Betz 67:93bec0baf1de 260
Wolfgang Betz 67:93bec0baf1de 261 #endif
Wolfgang Betz 67:93bec0baf1de 262
Wolfgang Betz 67:93bec0baf1de 263 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/