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_Regs.h
rosarium 0:2ddc0583bcec 4 * @author VMA division - AMS
rosarium 0:2ddc0583bcec 5 * @version 3.2.2
rosarium 0:2ddc0583bcec 6 * @date 08-July-2015
rosarium 0:2ddc0583bcec 7 * @brief This file contains all the SPIRIT registers address and masks.
rosarium 0:2ddc0583bcec 8 * @details
rosarium 0:2ddc0583bcec 9 *
rosarium 0:2ddc0583bcec 10 * @attention
rosarium 0:2ddc0583bcec 11 *
rosarium 0:2ddc0583bcec 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
rosarium 0:2ddc0583bcec 13 *
rosarium 0:2ddc0583bcec 14 * Redistribution and use in source and binary forms, with or without modification,
rosarium 0:2ddc0583bcec 15 * are permitted provided that the following conditions are met:
rosarium 0:2ddc0583bcec 16 * 1. Redistributions of source code must retain the above copyright notice,
rosarium 0:2ddc0583bcec 17 * this list of conditions and the following disclaimer.
rosarium 0:2ddc0583bcec 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
rosarium 0:2ddc0583bcec 19 * this list of conditions and the following disclaimer in the documentation
rosarium 0:2ddc0583bcec 20 * and/or other materials provided with the distribution.
rosarium 0:2ddc0583bcec 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
rosarium 0:2ddc0583bcec 22 * may be used to endorse or promote products derived from this software
rosarium 0:2ddc0583bcec 23 * without specific prior written permission.
rosarium 0:2ddc0583bcec 24 *
rosarium 0:2ddc0583bcec 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
rosarium 0:2ddc0583bcec 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
rosarium 0:2ddc0583bcec 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rosarium 0:2ddc0583bcec 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
rosarium 0:2ddc0583bcec 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
rosarium 0:2ddc0583bcec 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
rosarium 0:2ddc0583bcec 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
rosarium 0:2ddc0583bcec 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
rosarium 0:2ddc0583bcec 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
rosarium 0:2ddc0583bcec 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rosarium 0:2ddc0583bcec 35 *
rosarium 0:2ddc0583bcec 36 ******************************************************************************
rosarium 0:2ddc0583bcec 37 */
rosarium 0:2ddc0583bcec 38
rosarium 0:2ddc0583bcec 39 /* Define to prevent recursive inclusion -------------------------------------*/
rosarium 0:2ddc0583bcec 40 #ifndef __SPIRIT1_REGS_H
rosarium 0:2ddc0583bcec 41 #define __SPIRIT1_REGS_H
rosarium 0:2ddc0583bcec 42
rosarium 0:2ddc0583bcec 43 #ifdef __cplusplus
rosarium 0:2ddc0583bcec 44 extern "C" {
rosarium 0:2ddc0583bcec 45 #endif
rosarium 0:2ddc0583bcec 46
rosarium 0:2ddc0583bcec 47 /**
rosarium 0:2ddc0583bcec 48 * @addtogroup SPIRIT_Registers SPIRIT Registers
rosarium 0:2ddc0583bcec 49 * @brief Header file containing all the SPIRIT registers address and masks.
rosarium 0:2ddc0583bcec 50 * @details See the file <i>@ref SPIRIT_Regs.h</i> for more details.
rosarium 0:2ddc0583bcec 51 * @{
rosarium 0:2ddc0583bcec 52 */
rosarium 0:2ddc0583bcec 53
rosarium 0:2ddc0583bcec 54 /** @defgroup General_Configuration_Registers
rosarium 0:2ddc0583bcec 55 * @{
rosarium 0:2ddc0583bcec 56 */
rosarium 0:2ddc0583bcec 57
rosarium 0:2ddc0583bcec 58 /** @defgroup ANA_FUNC_CONF_1_Register
rosarium 0:2ddc0583bcec 59 * @{
rosarium 0:2ddc0583bcec 60 */
rosarium 0:2ddc0583bcec 61
rosarium 0:2ddc0583bcec 62 /**
rosarium 0:2ddc0583bcec 63 * \brief ANA_FUNC_CONF register 1
rosarium 0:2ddc0583bcec 64 * \code
rosarium 0:2ddc0583bcec 65 * Read Write
rosarium 0:2ddc0583bcec 66 * Default value: 0x0C
rosarium 0:2ddc0583bcec 67 * 7:5 NUM_EN_PIPES: Number of enabled pipes (starting from Data Pipe 0).
rosarium 0:2ddc0583bcec 68 * 4:2 GM_CONF[2:0]: Sets the driver gm of the XO at start-up:
rosarium 0:2ddc0583bcec 69 * GM_CONF2 | GM_CONF1 | GM_CONF0 | GM [mS]
rosarium 0:2ddc0583bcec 70 * ------------------------------------------
rosarium 0:2ddc0583bcec 71 * 0 | 0 | 0 | 13.2
rosarium 0:2ddc0583bcec 72 * 0 | 0 | 1 | 18.2
rosarium 0:2ddc0583bcec 73 * 0 | 1 | 0 | 21.5
rosarium 0:2ddc0583bcec 74 * 0 | 1 | 1 | 25.6
rosarium 0:2ddc0583bcec 75 * 1 | 0 | 0 | 28.8
rosarium 0:2ddc0583bcec 76 * 1 | 0 | 1 | 33.9
rosarium 0:2ddc0583bcec 77 * 1 | 1 | 0 | 38.5
rosarium 0:2ddc0583bcec 78 * 1 | 1 | 1 | 43.0
rosarium 0:2ddc0583bcec 79 * 1:0 SET_BLD_LVL[1:0]: Sets the Battery Level Detector threshold:
rosarium 0:2ddc0583bcec 80 * SET_BLD_LVL1 | SET_BLD_LVL0 | Threshold [V]
rosarium 0:2ddc0583bcec 81 * ------------------------------------------
rosarium 0:2ddc0583bcec 82 * 0 | 0 | 2.7
rosarium 0:2ddc0583bcec 83 * 0 | 1 | 2.5
rosarium 0:2ddc0583bcec 84 * 1 | 0 | 2.3
rosarium 0:2ddc0583bcec 85 * 1 | 1 | 2.1
rosarium 0:2ddc0583bcec 86 * \endcode
rosarium 0:2ddc0583bcec 87 */
rosarium 0:2ddc0583bcec 88
rosarium 0:2ddc0583bcec 89 #define ANA_FUNC_CONF1_BASE ((uint8_t)0x00) /*!< ANA_FUNC_CONF1 Address (R/W) */
rosarium 0:2ddc0583bcec 90
rosarium 0:2ddc0583bcec 91 #define ANA_FUNC_CONF1_NUM_PIPES_MASK ((uint8_t)0xE0) /*!< Mask for number of enabled pipes*/
rosarium 0:2ddc0583bcec 92
rosarium 0:2ddc0583bcec 93 #define ANA_FUNC_CONF1_GMCONF_MASK ((uint8_t)0x1C) /*!< Mask of the GmConf field of ANA_FUNC_CONF1 register (R/W) */
rosarium 0:2ddc0583bcec 94
rosarium 0:2ddc0583bcec 95 #define GM_13_2 ((uint8_t)0x00) /*!< Transconducatance Gm at start-up 13.2 mS */
rosarium 0:2ddc0583bcec 96 #define GM_18_2 ((uint8_t)0x04) /*!< Transconducatance Gm at start-up 18.2 mS */
rosarium 0:2ddc0583bcec 97 #define GM_21_5 ((uint8_t)0x08) /*!< Transconducatance Gm at start-up 21.5 mS */
rosarium 0:2ddc0583bcec 98 #define GM_25_6 ((uint8_t)0x0C) /*!< Transconducatance Gm at start-up 25.6 mS */
rosarium 0:2ddc0583bcec 99 #define GM_28_8 ((uint8_t)0x10) /*!< Transconducatance Gm at start-up 28.8 mS */
rosarium 0:2ddc0583bcec 100 #define GM_33_9 ((uint8_t)0x14) /*!< Transconducatance Gm at start-up 33.9 mS */
rosarium 0:2ddc0583bcec 101 #define GM_38_5 ((uint8_t)0x18) /*!< Transconducatance Gm at start-up 38.5 mS */
rosarium 0:2ddc0583bcec 102 #define GM_43_0 ((uint8_t)0x1C) /*!< Transconducatance Gm at start-up 43.0 mS */
rosarium 0:2ddc0583bcec 103
rosarium 0:2ddc0583bcec 104 #define ANA_FUNC_CONF1_SET_BLD_LVL_MASK ((uint8_t)0x03) /*!< Mask of the SET_BLD_LV field of ANA_FUNC_CONF1 register (R/W) */
rosarium 0:2ddc0583bcec 105
rosarium 0:2ddc0583bcec 106 #define BLD_LVL_2_7 ((uint8_t)0x00) /*!< Sets the Battery Level Detector threshold to 2.7V */
rosarium 0:2ddc0583bcec 107 #define BLD_LVL_2_5 ((uint8_t)0x01) /*!< Sets the Battery Level Detector threshold to 2.5V */
rosarium 0:2ddc0583bcec 108 #define BLD_LVL_2_3 ((uint8_t)0x02) /*!< Sets the Battery Level Detector threshold to 2.3V */
rosarium 0:2ddc0583bcec 109 #define BLD_LVL_2_1 ((uint8_t)0x03) /*!< Sets the Battery Level Detector threshold to 2.1V */
rosarium 0:2ddc0583bcec 110
rosarium 0:2ddc0583bcec 111 /**
rosarium 0:2ddc0583bcec 112 * @}
rosarium 0:2ddc0583bcec 113 */
rosarium 0:2ddc0583bcec 114
rosarium 0:2ddc0583bcec 115
rosarium 0:2ddc0583bcec 116 /** @defgroup ANA_FUNC_CONF_0_Register
rosarium 0:2ddc0583bcec 117 * @{
rosarium 0:2ddc0583bcec 118 */
rosarium 0:2ddc0583bcec 119
rosarium 0:2ddc0583bcec 120 /**
rosarium 0:2ddc0583bcec 121 * \brief ANA_FUNC_CONF register 0
rosarium 0:2ddc0583bcec 122 * \code
rosarium 0:2ddc0583bcec 123 * Read Write
rosarium 0:2ddc0583bcec 124 * Default value: 0xC0
rosarium 0:2ddc0583bcec 125 * 7 Reserved.
rosarium 0:2ddc0583bcec 126 * 6 24_26_MHz_SELECT: 1 - 26 MHz configuration
rosarium 0:2ddc0583bcec 127 * 0 - 24 MHz configuration
rosarium 0:2ddc0583bcec 128 * 5 AES_ON: 1 - AES engine enabled
rosarium 0:2ddc0583bcec 129 * 0 - AES engine disabled
rosarium 0:2ddc0583bcec 130 * 4 EXT_REF: 1 - Reference signal from XIN pin
rosarium 0:2ddc0583bcec 131 * 0 - Reference signal from XO circuit
rosarium 0:2ddc0583bcec 132 * 3 HIGH_POWER_MODE: 1 - SET_SMPS_LEVEL word will be set to the value to
rosarium 0:2ddc0583bcec 133 * PM_TEST register in RX state, while in TX state it
rosarium 0:2ddc0583bcec 134 * will be fixed to 111 (which programs the SMPS output
rosarium 0:2ddc0583bcec 135 * at max value 1.8V)
rosarium 0:2ddc0583bcec 136 * 0 - SET_SMPS_LEVEL word will hold the value written in the
rosarium 0:2ddc0583bcec 137 * PM_TEST register both in RX and TX state
rosarium 0:2ddc0583bcec 138 * 2 BROWN_OUT: 1 - Brown_Out Detection enabled
rosarium 0:2ddc0583bcec 139 * 0 - Brown_Out Detection disabled
rosarium 0:2ddc0583bcec 140 * 1 BATTERY_LEVEL: 1 - Battery level detector enabled
rosarium 0:2ddc0583bcec 141 * 0 - Battery level detector disabled
rosarium 0:2ddc0583bcec 142 * 0 TS: 1 - Enable the "Temperature Sensor" function
rosarium 0:2ddc0583bcec 143 * 0 - Disable the "Temperature Sensor" function
rosarium 0:2ddc0583bcec 144 * \endcode
rosarium 0:2ddc0583bcec 145 */
rosarium 0:2ddc0583bcec 146
rosarium 0:2ddc0583bcec 147
rosarium 0:2ddc0583bcec 148 #define ANA_FUNC_CONF0_BASE ((uint8_t)0x01) /*!< ANA_FUNC_CONF0 Address (R/W) */
rosarium 0:2ddc0583bcec 149
rosarium 0:2ddc0583bcec 150 #define SELECT_24_26_MHZ_MASK ((uint8_t)0x40) /*!< Configure the RCO if using 26 MHz or 24 MHz master clock/reference signal */
rosarium 0:2ddc0583bcec 151 #define AES_MASK ((uint8_t)0x20) /*!< AES engine on/off */
rosarium 0:2ddc0583bcec 152 #define EXT_REF_MASK ((uint8_t)0x10) /*!< Reference signal from XIN pin (oscillator external) or from XO circuit (oscillator internal)*/
rosarium 0:2ddc0583bcec 153 #define HIGH_POWER_MODE_MASK ((uint8_t)0x08) /*!< SET_SMPS_LEVEL word will be set to the value to PM_TEST register
rosarium 0:2ddc0583bcec 154 in RX state, while in TX state it will be fixed to 111
rosarium 0:2ddc0583bcec 155 (which programs the SMPS output at max value, 1.8V) */
rosarium 0:2ddc0583bcec 156 #define BROWN_OUT_MASK ((uint8_t)0x04) /*!< Accurate Brown-Out detection on/off */
rosarium 0:2ddc0583bcec 157 #define BATTERY_LEVEL_MASK ((uint8_t)0x02) /*!< Battery level detector circuit on/off */
rosarium 0:2ddc0583bcec 158 #define TEMPERATURE_SENSOR_MASK ((uint8_t)0x01) /*!< The Temperature Sensor (available on GPIO0) on/off */
rosarium 0:2ddc0583bcec 159
rosarium 0:2ddc0583bcec 160 /**
rosarium 0:2ddc0583bcec 161 * @}
rosarium 0:2ddc0583bcec 162 */
rosarium 0:2ddc0583bcec 163
rosarium 0:2ddc0583bcec 164 /** @defgroup ANT_SELECT_CONF_Register
rosarium 0:2ddc0583bcec 165 * @{
rosarium 0:2ddc0583bcec 166 */
rosarium 0:2ddc0583bcec 167
rosarium 0:2ddc0583bcec 168 /**
rosarium 0:2ddc0583bcec 169 * \brief ANT_SELECT_CONF register
rosarium 0:2ddc0583bcec 170 * \code
rosarium 0:2ddc0583bcec 171 * Read Write
rosarium 0:2ddc0583bcec 172 * Default value: 0x05
rosarium 0:2ddc0583bcec 173 *
rosarium 0:2ddc0583bcec 174 * 7:5 Reserved.
rosarium 0:2ddc0583bcec 175 *
rosarium 0:2ddc0583bcec 176 * 4 CS_BLANKING: Blank received data if signal is below the CS threshold
rosarium 0:2ddc0583bcec 177 *
rosarium 0:2ddc0583bcec 178 * 3 AS_ENABLE: Enable antenna switching
rosarium 0:2ddc0583bcec 179 * 1 - Enable
rosarium 0:2ddc0583bcec 180 * 0 - Disable
rosarium 0:2ddc0583bcec 181 *
rosarium 0:2ddc0583bcec 182 * 2:0 AS_MEAS_TIME[2:0]: Measurement time according to the formula Tmeas = 24*2^(EchFlt)*2^AS_MEAS_TIME/fxo
rosarium 0:2ddc0583bcec 183 * \endcode
rosarium 0:2ddc0583bcec 184 */
rosarium 0:2ddc0583bcec 185 #define ANT_SELECT_CONF_BASE ((uint8_t)0x27) /*!< Antenna diversity (works only in static carrier sense mode) */
rosarium 0:2ddc0583bcec 186 #define ANT_SELECT_CS_BLANKING_MASK ((uint8_t)0x10) /*!< CS data blanking on/off */
rosarium 0:2ddc0583bcec 187 #define ANT_SELECT_CONF_AS_MASK ((uint8_t)0x08) /*!< Antenna diversity on/off */
rosarium 0:2ddc0583bcec 188
rosarium 0:2ddc0583bcec 189 /**
rosarium 0:2ddc0583bcec 190 * @}
rosarium 0:2ddc0583bcec 191 */
rosarium 0:2ddc0583bcec 192
rosarium 0:2ddc0583bcec 193 /** @defgroup DEVICE_INFO1_Register
rosarium 0:2ddc0583bcec 194 * @{
rosarium 0:2ddc0583bcec 195 */
rosarium 0:2ddc0583bcec 196
rosarium 0:2ddc0583bcec 197 /**
rosarium 0:2ddc0583bcec 198 * \brief DEVICE_INFO1[7:0] registers
rosarium 0:2ddc0583bcec 199 * \code
rosarium 0:2ddc0583bcec 200 * Default value: 0x01
rosarium 0:2ddc0583bcec 201 * Read
rosarium 0:2ddc0583bcec 202 *
rosarium 0:2ddc0583bcec 203 * 7:0 PARTNUM[7:0]: Device part number
rosarium 0:2ddc0583bcec 204 * \endcode
rosarium 0:2ddc0583bcec 205 */
rosarium 0:2ddc0583bcec 206 #define DEVICE_INFO1_PARTNUM ((uint8_t)(0xF0)) /*!< Device part number [7:0] */
rosarium 0:2ddc0583bcec 207
rosarium 0:2ddc0583bcec 208 /**
rosarium 0:2ddc0583bcec 209 * @}
rosarium 0:2ddc0583bcec 210 */
rosarium 0:2ddc0583bcec 211
rosarium 0:2ddc0583bcec 212 /** @defgroup DEVICE_INFO0_Register
rosarium 0:2ddc0583bcec 213 * @{
rosarium 0:2ddc0583bcec 214 */
rosarium 0:2ddc0583bcec 215
rosarium 0:2ddc0583bcec 216 /**
rosarium 0:2ddc0583bcec 217 * \brief DEVICE_INFO0[7:0] registers
rosarium 0:2ddc0583bcec 218 * \code
rosarium 0:2ddc0583bcec 219 * Read
rosarium 0:2ddc0583bcec 220 *
rosarium 0:2ddc0583bcec 221 * 7:0 VERSION[7:0]: Device version number
rosarium 0:2ddc0583bcec 222 * \endcode
rosarium 0:2ddc0583bcec 223 */
rosarium 0:2ddc0583bcec 224 #define DEVICE_INFO0_VERSION ((uint8_t)(0xF1)) /*!< Device version [7:0]; (0x55 in CUT1.0) */
rosarium 0:2ddc0583bcec 225
rosarium 0:2ddc0583bcec 226 /**
rosarium 0:2ddc0583bcec 227 * @}
rosarium 0:2ddc0583bcec 228 */
rosarium 0:2ddc0583bcec 229
rosarium 0:2ddc0583bcec 230
rosarium 0:2ddc0583bcec 231 /**
rosarium 0:2ddc0583bcec 232 * @}
rosarium 0:2ddc0583bcec 233 */
rosarium 0:2ddc0583bcec 234
rosarium 0:2ddc0583bcec 235
rosarium 0:2ddc0583bcec 236 /** @defgroup GPIO_Registers
rosarium 0:2ddc0583bcec 237 * @{
rosarium 0:2ddc0583bcec 238 */
rosarium 0:2ddc0583bcec 239
rosarium 0:2ddc0583bcec 240 /** @defgroup GPIOx_CONF_Registers
rosarium 0:2ddc0583bcec 241 * @{
rosarium 0:2ddc0583bcec 242 */
rosarium 0:2ddc0583bcec 243
rosarium 0:2ddc0583bcec 244 /**
rosarium 0:2ddc0583bcec 245 * \brief GPIOx registers
rosarium 0:2ddc0583bcec 246 * \code
rosarium 0:2ddc0583bcec 247 * Read Write
rosarium 0:2ddc0583bcec 248 * Default value: 0x03
rosarium 0:2ddc0583bcec 249 * 7:3 GPIO_SELECT[4:0]: Specify the I/O signal.
rosarium 0:2ddc0583bcec 250 * GPIO_SELECT[4:0] | I/O | Signal
rosarium 0:2ddc0583bcec 251 * ------------------------------------------------
rosarium 0:2ddc0583bcec 252 * 0 | Output | nIRQ
rosarium 0:2ddc0583bcec 253 * 0 | Input | TX command
rosarium 0:2ddc0583bcec 254 * 1 | Output | POR inverted
rosarium 0:2ddc0583bcec 255 * 1 | Input | RX command
rosarium 0:2ddc0583bcec 256 * 2 | Output | Wake-Up timer expiration
rosarium 0:2ddc0583bcec 257 * 2 | Input | TX data for direct modulation
rosarium 0:2ddc0583bcec 258 * 3 | Output | Low Battery Detection
rosarium 0:2ddc0583bcec 259 * 3 | Input | Wake-up from external input
rosarium 0:2ddc0583bcec 260 * 4 | Output | TX clock output
rosarium 0:2ddc0583bcec 261 * 5 | Output | TX state
rosarium 0:2ddc0583bcec 262 * 6 | Output | TX FIFO Almost Empty Flag
rosarium 0:2ddc0583bcec 263 * 7 | Output | TX FIFO ALmost Full Flag
rosarium 0:2ddc0583bcec 264 * 8 | Output | RX data output
rosarium 0:2ddc0583bcec 265 * 9 | Output | RX clock output
rosarium 0:2ddc0583bcec 266 * 10 | Output | RX state
rosarium 0:2ddc0583bcec 267 * 11 | Output | RX FIFO Almost Full Flag
rosarium 0:2ddc0583bcec 268 * 12 | Output | RX FIFO Almost Empty Flag
rosarium 0:2ddc0583bcec 269 * 13 | Output | Antenna switch
rosarium 0:2ddc0583bcec 270 * 14 | Output | Valid preamble detected
rosarium 0:2ddc0583bcec 271 * 15 | Output | Sync word detected
rosarium 0:2ddc0583bcec 272 * 16 | Output | RSSI above threshold
rosarium 0:2ddc0583bcec 273 * 17 | Output | MCU clock
rosarium 0:2ddc0583bcec 274 * 18 | Output | TX or RX mode indicator
rosarium 0:2ddc0583bcec 275 * 19 | Output | VDD
rosarium 0:2ddc0583bcec 276 * 20 | Output | GND
rosarium 0:2ddc0583bcec 277 * 21 | Output | External SMPS enable signal
rosarium 0:2ddc0583bcec 278 * 22-31 | Not Used | Not Used
rosarium 0:2ddc0583bcec 279 * 2 Reserved
rosarium 0:2ddc0583bcec 280 * 1:0 GpioMode[1:0]: Specify the mode:
rosarium 0:2ddc0583bcec 281 * GPIO_MODE1 | GPIO_MODE0 | MODE
rosarium 0:2ddc0583bcec 282 * ------------------------------------------------------------
rosarium 0:2ddc0583bcec 283 * 0 | 0 | Analog (valid only for GPIO_0)
rosarium 0:2ddc0583bcec 284 * 0 | 1 | Digital Input
rosarium 0:2ddc0583bcec 285 * 1 | 0 | Digital Output Low Power
rosarium 0:2ddc0583bcec 286 * 1 | 1 | Digital Output High Power
rosarium 0:2ddc0583bcec 287 *
rosarium 0:2ddc0583bcec 288 * Note: The Analog mode is used only for temperature sensor indication. This is available only
rosarium 0:2ddc0583bcec 289 * on GPIO_0 by setting the TS bit in the ANA_FUNC_CONF_0_Register.
rosarium 0:2ddc0583bcec 290 * \endcode
rosarium 0:2ddc0583bcec 291 */
rosarium 0:2ddc0583bcec 292
rosarium 0:2ddc0583bcec 293
rosarium 0:2ddc0583bcec 294 #define GPIO3_CONF_BASE ((uint8_t)0x02) /*!< GPIO_3 register address */
rosarium 0:2ddc0583bcec 295 #define GPIO2_CONF_BASE ((uint8_t)0x03) /*!< GPIO_3 register address */
rosarium 0:2ddc0583bcec 296 #define GPIO1_CONF_BASE ((uint8_t)0x04) /*!< GPIO_3 register address */
rosarium 0:2ddc0583bcec 297 #define GPIO0_CONF_BASE ((uint8_t)0x05) /*!< GPIO_3 register address */
rosarium 0:2ddc0583bcec 298
rosarium 0:2ddc0583bcec 299 #define CONF_GPIO_IN_TX_Command ((uint8_t)0x00) /*!< TX command direct from PIN (rising edge, width min=50ns) */
rosarium 0:2ddc0583bcec 300 #define CONF_GPIO_IN_RX_Command ((uint8_t)0x08) /*!< RX command direct from PIN (rising edge, width min=50ns)*/
rosarium 0:2ddc0583bcec 301 #define CONF_GPIO_IN_TX_Data ((uint8_t)0x10) /*!< TX data input for direct modulation */
rosarium 0:2ddc0583bcec 302 #define CONF_GPIO_IN_WKUP_Ext ((uint8_t)0x18) /*!< Wake up from external input */
rosarium 0:2ddc0583bcec 303
rosarium 0:2ddc0583bcec 304 #define CONF_GPIO_OUT_nIRQ ((uint8_t)0x00) /*!< nIRQ (Interrupt Request, active low) , default configuration after POR */
rosarium 0:2ddc0583bcec 305 #define CONF_GPIO_OUT_POR_Inv ((uint8_t)0x08) /*!< POR inverted (active low) */
rosarium 0:2ddc0583bcec 306 #define CONF_GPIO_OUT_WUT_Exp ((uint8_t)0x10) /*!< Wake-Up Timer expiration: ‘1’ when WUT has expired */
rosarium 0:2ddc0583bcec 307 #define CONF_GPIO_OUT_LBD ((uint8_t)0x18) /*!< Low battery detection: ‘1’ when battery is below threshold setting */
rosarium 0:2ddc0583bcec 308 #define CONF_GPIO_OUT_TX_Data ((uint8_t)0x20) /*!< TX data internal clock output (TX data are sampled on the rising edge of it) */
rosarium 0:2ddc0583bcec 309 #define CONF_GPIO_OUT_TX_State ((uint8_t)0x28) /*!< TX state indication: ‘1’ when Spirit1 is transiting in the TX state */
rosarium 0:2ddc0583bcec 310 #define CONF_GPIO_OUT_TX_FIFO_Almost_Empty ((uint8_t)0x30) /*!< TX FIFO Almost Empty Flag */
rosarium 0:2ddc0583bcec 311 #define CONF_GPIO_OUT_TX_FIFO_Amost_Full ((uint8_t)0x38) /*!< TX FIFO Almost Full Flag */
rosarium 0:2ddc0583bcec 312 #define CONF_GPIO_OUT_RX_Data ((uint8_t)0x40) /*!< RX data output */
rosarium 0:2ddc0583bcec 313 #define CONF_GPIO_OUT_RX_Clock ((uint8_t)0x48) /*!< RX clock output (recovered from received data) */
rosarium 0:2ddc0583bcec 314 #define CONF_GPIO_OUT_RX_State ((uint8_t)0x50) /*!< RX state indication: ‘1’ when Spirit1 is transiting in the RX state */
rosarium 0:2ddc0583bcec 315 #define CONF_GPIO_OUT_RX_FIFO_Almost_Full ((uint8_t)0x58) /*!< RX FIFO Almost Full Flag */
rosarium 0:2ddc0583bcec 316 #define CONF_GPIO_OUT_RX_FIFO_Almost_Empty ((uint8_t)0x60) /*!< RX FIFO Almost Empty Flag */
rosarium 0:2ddc0583bcec 317 #define CONF_GPIO_OUT_Antenna_Switch ((uint8_t)0x68) /*!< Antenna switch used for antenna diversity */
rosarium 0:2ddc0583bcec 318 #define CONF_GPIO_OUT_Valid_Preamble ((uint8_t)0x70) /*!< Valid Preamble Detected Flag */
rosarium 0:2ddc0583bcec 319 #define CONF_GPIO_OUT_Sync_Detected ((uint8_t)0x78) /*!< Sync WordSync Word Detected Flag */
rosarium 0:2ddc0583bcec 320 #define CONF_GPIO_OUT_RSSI_Threshold ((uint8_t)0x80) /*!< CCA Assessment Flag */
rosarium 0:2ddc0583bcec 321 #define CONF_GPIO_OUT_MCU_Clock ((uint8_t)0x88) /*!< MCU Clock */
rosarium 0:2ddc0583bcec 322 #define CONF_GPIO_OUT_TX_RX_Mode ((uint8_t)0x90) /*!< TX or RX mode indicator (to enable an external range extender) */
rosarium 0:2ddc0583bcec 323 #define CONF_GPIO_OUT_VDD ((uint8_t)0x98) /*!< VDD (to emulate an additional GPIO of the MCU, programmable by SPI) */
rosarium 0:2ddc0583bcec 324 #define CONF_GPIO_OUT_GND ((uint8_t)0xA0) /*!< GND (to emulate an additional GPIO of the MCU, programmable by SPI) */
rosarium 0:2ddc0583bcec 325 #define CONF_GPIO_OUT_SMPS_Ext ((uint8_t)0xA8) /*!< External SMPS enable signal (active high) */
rosarium 0:2ddc0583bcec 326
rosarium 0:2ddc0583bcec 327 #define CONF_GPIO_MODE_ANALOG ((uint8_t)0x00) /*!< Analog test BUS on GPIO; used only in test mode (except for temperature sensor) */
rosarium 0:2ddc0583bcec 328 #define CONF_GPIO_MODE_DIG_IN ((uint8_t)0x01) /*!< Digital Input on GPIO */
rosarium 0:2ddc0583bcec 329 #define CONF_GPIO_MODE_DIG_OUTL ((uint8_t)0x02) /*!< Digital Output on GPIO (low current) */
rosarium 0:2ddc0583bcec 330 #define CONF_GPIO_MODE_DIG_OUTH ((uint8_t)0x03) /*!< Digital Output on GPIO (high current) */
rosarium 0:2ddc0583bcec 331
rosarium 0:2ddc0583bcec 332 /**
rosarium 0:2ddc0583bcec 333 * @}
rosarium 0:2ddc0583bcec 334 */
rosarium 0:2ddc0583bcec 335
rosarium 0:2ddc0583bcec 336
rosarium 0:2ddc0583bcec 337 /** @defgroup MCU_CK_CONF_Register
rosarium 0:2ddc0583bcec 338 * @{
rosarium 0:2ddc0583bcec 339 */
rosarium 0:2ddc0583bcec 340
rosarium 0:2ddc0583bcec 341 /**
rosarium 0:2ddc0583bcec 342 * \brief MCU_CK_CONF register
rosarium 0:2ddc0583bcec 343 * \code
rosarium 0:2ddc0583bcec 344 * Read Write
rosarium 0:2ddc0583bcec 345 * Default value: 0x00
rosarium 0:2ddc0583bcec 346 * 7 Reserved.
rosarium 0:2ddc0583bcec 347 * 6:5 CLOCK_TAIL[1:0]: Specifies the number of extra cylces provided before entering in STANDBY state.
rosarium 0:2ddc0583bcec 348 * CLOCK_TAIL1 | CLOCK_TAIL0 | Number of Extra Cycles
rosarium 0:2ddc0583bcec 349 * ------------------------------------------------------------
rosarium 0:2ddc0583bcec 350 * 0 | 0 | 0
rosarium 0:2ddc0583bcec 351 * 0 | 1 | 64
rosarium 0:2ddc0583bcec 352 * 1 | 0 | 256
rosarium 0:2ddc0583bcec 353 * 1 | 1 | 512
rosarium 0:2ddc0583bcec 354 * 4:1 XO_RATIO[3:0]: Specifies the division ratio when XO oscillator is the clock source
rosarium 0:2ddc0583bcec 355 * XO_RATIO[3:0] | Division Ratio
rosarium 0:2ddc0583bcec 356 * -----------------------------------
rosarium 0:2ddc0583bcec 357 * 0 | 1
rosarium 0:2ddc0583bcec 358 * 1 | 2/3
rosarium 0:2ddc0583bcec 359 * 2 | 1/2
rosarium 0:2ddc0583bcec 360 * 3 | 1/3
rosarium 0:2ddc0583bcec 361 * 4 | 1/4
rosarium 0:2ddc0583bcec 362 * 5 | 1/6
rosarium 0:2ddc0583bcec 363 * 6 | 1/8
rosarium 0:2ddc0583bcec 364 * 7 | 1/12
rosarium 0:2ddc0583bcec 365 * 8 | 1/16
rosarium 0:2ddc0583bcec 366 * 9 | 1/24
rosarium 0:2ddc0583bcec 367 * 10 | 1/36
rosarium 0:2ddc0583bcec 368 * 11 | 1/48
rosarium 0:2ddc0583bcec 369 * 12 | 1/64
rosarium 0:2ddc0583bcec 370 * 13 | 1/96
rosarium 0:2ddc0583bcec 371 * 14 | 1/128
rosarium 0:2ddc0583bcec 372 * 15 | 1/256
rosarium 0:2ddc0583bcec 373 * 0 RCO_RATIO: Specifies the divsion ratio when RC oscillator is the clock source
rosarium 0:2ddc0583bcec 374 * 0 - Division Ratio equal to 0
rosarium 0:2ddc0583bcec 375 * 1 - Division Ratio equal to 1/128
rosarium 0:2ddc0583bcec 376 * \endcode
rosarium 0:2ddc0583bcec 377 */
rosarium 0:2ddc0583bcec 378
rosarium 0:2ddc0583bcec 379
rosarium 0:2ddc0583bcec 380 #define MCU_CK_CONF_BASE ((uint8_t)0x06) /*!< MCU Clock Config register address */
rosarium 0:2ddc0583bcec 381
rosarium 0:2ddc0583bcec 382 #define MCU_CK_ENABLE ((uint8_t)0x80) /*!< MCU clock enable bit */
rosarium 0:2ddc0583bcec 383
rosarium 0:2ddc0583bcec 384 #define MCU_CK_CONF_CLOCK_TAIL_0 ((uint8_t)0x00) /*!< 0 extra clock cycles provided to the MCU before switching to STANDBY state */
rosarium 0:2ddc0583bcec 385 #define MCU_CK_CONF_CLOCK_TAIL_64 ((uint8_t)0x20) /*!< 64 extra clock cycles provided to the MCU before switching to STANDBY state */
rosarium 0:2ddc0583bcec 386 #define MCU_CK_CONF_CLOCK_TAIL_256 ((uint8_t)0x40) /*!< 256 extra clock cycles provided to the MCU before switching to STANDBY state */
rosarium 0:2ddc0583bcec 387 #define MCU_CK_CONF_CLOCK_TAIL_512 ((uint8_t)0x60) /*!< 512 extra clock cycles provided to the MCU before switching to STANDBY state */
rosarium 0:2ddc0583bcec 388 #define MCU_CK_CONF_XO_RATIO_1 ((uint8_t)0x00) /*!< XO Clock signal available on the GPIO divided by 1 */
rosarium 0:2ddc0583bcec 389 #define MCU_CK_CONF_XO_RATIO_2_3 ((uint8_t)0x02) /*!< XO Clock signal available on the GPIO divided by 2/3 */
rosarium 0:2ddc0583bcec 390 #define MCU_CK_CONF_XO_RATIO_1_2 ((uint8_t)0x04) /*!< XO Clock signal available on the GPIO divided by 1/2 */
rosarium 0:2ddc0583bcec 391 #define MCU_CK_CONF_XO_RATIO_1_3 ((uint8_t)0x06) /*!< XO Clock signal available on the GPIO divided by 1/3 */
rosarium 0:2ddc0583bcec 392 #define MCU_CK_CONF_XO_RATIO_1_4 ((uint8_t)0x08) /*!< XO Clock signal available on the GPIO divided by 1/4 */
rosarium 0:2ddc0583bcec 393 #define MCU_CK_CONF_XO_RATIO_1_6 ((uint8_t)0x0A) /*!< XO Clock signal available on the GPIO divided by 1/6 */
rosarium 0:2ddc0583bcec 394 #define MCU_CK_CONF_XO_RATIO_1_8 ((uint8_t)0x0C) /*!< XO Clock signal available on the GPIO divided by 1/8 */
rosarium 0:2ddc0583bcec 395 #define MCU_CK_CONF_XO_RATIO_1_12 ((uint8_t)0x0E) /*!< XO Clock signal available on the GPIO divided by 1/12 */
rosarium 0:2ddc0583bcec 396 #define MCU_CK_CONF_XO_RATIO_1_16 ((uint8_t)0x10) /*!< XO Clock signal available on the GPIO divided by 1/16 */
rosarium 0:2ddc0583bcec 397 #define MCU_CK_CONF_XO_RATIO_1_24 ((uint8_t)0x12) /*!< XO Clock signal available on the GPIO divided by 1/24 */
rosarium 0:2ddc0583bcec 398 #define MCU_CK_CONF_XO_RATIO_1_36 ((uint8_t)0x14) /*!< XO Clock signal available on the GPIO divided by 1/36 */
rosarium 0:2ddc0583bcec 399 #define MCU_CK_CONF_XO_RATIO_1_48 ((uint8_t)0x16) /*!< XO Clock signal available on the GPIO divided by 1/48 */
rosarium 0:2ddc0583bcec 400 #define MCU_CK_CONF_XO_RATIO_1_64 ((uint8_t)0x18) /*!< XO Clock signal available on the GPIO divided by 1/64 */
rosarium 0:2ddc0583bcec 401 #define MCU_CK_CONF_XO_RATIO_1_96 ((uint8_t)0x1A) /*!< XO Clock signal available on the GPIO divided by 1/96 */
rosarium 0:2ddc0583bcec 402 #define MCU_CK_CONF_XO_RATIO_1_128 ((uint8_t)0x1C) /*!< XO Clock signal available on the GPIO divided by 1/128 */
rosarium 0:2ddc0583bcec 403 #define MCU_CK_CONF_XO_RATIO_1_192 ((uint8_t)0x1E) /*!< XO Clock signal available on the GPIO divided by 1/196 */
rosarium 0:2ddc0583bcec 404 #define MCU_CK_CONF_RCO_RATIO_1 ((uint8_t)0x00) /*!< RCO Clock signal available on the GPIO divided by 1 */
rosarium 0:2ddc0583bcec 405 #define MCU_CK_CONF_RCO_RATIO_1_128 ((uint8_t)0x01) /*!< RCO Clock signal available on the GPIO divided by 1/128*/
rosarium 0:2ddc0583bcec 406
rosarium 0:2ddc0583bcec 407 /**
rosarium 0:2ddc0583bcec 408 * @}
rosarium 0:2ddc0583bcec 409 */
rosarium 0:2ddc0583bcec 410
rosarium 0:2ddc0583bcec 411 /**
rosarium 0:2ddc0583bcec 412 * @}
rosarium 0:2ddc0583bcec 413 */
rosarium 0:2ddc0583bcec 414
rosarium 0:2ddc0583bcec 415
rosarium 0:2ddc0583bcec 416 /** @defgroup Radio_Configuration_Registers
rosarium 0:2ddc0583bcec 417 * @{
rosarium 0:2ddc0583bcec 418 */
rosarium 0:2ddc0583bcec 419
rosarium 0:2ddc0583bcec 420
rosarium 0:2ddc0583bcec 421
rosarium 0:2ddc0583bcec 422 /** @defgroup SYNT3_Register
rosarium 0:2ddc0583bcec 423 * @{
rosarium 0:2ddc0583bcec 424 */
rosarium 0:2ddc0583bcec 425
rosarium 0:2ddc0583bcec 426 /**
rosarium 0:2ddc0583bcec 427 * \brief SYNT3 register
rosarium 0:2ddc0583bcec 428 * \code
rosarium 0:2ddc0583bcec 429 * Read Write
rosarium 0:2ddc0583bcec 430 * Default value: 0x0C
rosarium 0:2ddc0583bcec 431 *
rosarium 0:2ddc0583bcec 432 * 7:5 WCP[2:0]: Set the charge pump current according to the VCO frequency in RX mode.
rosarium 0:2ddc0583bcec 433 *
rosarium 0:2ddc0583bcec 434 * VCO Frequency | WCP2 | WCP1 | WCP0 | Charge Pump Current (uA)
rosarium 0:2ddc0583bcec 435 * ------------------------------------------------------------------------------------------------------------
rosarium 0:2ddc0583bcec 436 * 4644-4678 | 0 | 0 | 0 | 378.4
rosarium 0:2ddc0583bcec 437 * 4708-4772 | 0 | 0 | 1 | 368.9
rosarium 0:2ddc0583bcec 438 * 4772-4836 | 0 | 1 | 0 | 359.5
rosarium 0:2ddc0583bcec 439 * 4836-4902 | 0 | 1 | 1 | 350
rosarium 0:2ddc0583bcec 440 * 4902-4966 | 1 | 0 | 0 | 340.5
rosarium 0:2ddc0583bcec 441 * 4966-5030 | 1 | 0 | 1 | 331.1
rosarium 0:2ddc0583bcec 442 * 5030-5095 | 1 | 1 | 0 | 321.6
rosarium 0:2ddc0583bcec 443 * 5095-5161 | 1 | 1 | 1 | 312.2
rosarium 0:2ddc0583bcec 444 * 5161-5232 | 0 | 0 | 0 | 378.4
rosarium 0:2ddc0583bcec 445 * 5232-5303 | 0 | 0 | 1 | 368.9
rosarium 0:2ddc0583bcec 446 * 5303-5375 | 0 | 1 | 0 | 359.5
rosarium 0:2ddc0583bcec 447 * 5375-5448 | 0 | 1 | 1 | 350
rosarium 0:2ddc0583bcec 448 * 5448-5519 | 1 | 0 | 0 | 340.5
rosarium 0:2ddc0583bcec 449 * 5519-5592 | 1 | 0 | 1 | 331.1
rosarium 0:2ddc0583bcec 450 * 5592-5663 | 1 | 1 | 0 | 321.6
rosarium 0:2ddc0583bcec 451 * 5663-5736 | 1 | 1 | 1 | 312.2
rosarium 0:2ddc0583bcec 452 *
rosarium 0:2ddc0583bcec 453 *
rosarium 0:2ddc0583bcec 454 * 4:0 SYNT[25:21]: highest 5 bits of the PLL programmable divider
rosarium 0:2ddc0583bcec 455 * The valid range depends on fXO and REFDIV settings; for
rosarium 0:2ddc0583bcec 456 * fXO=26MHz
rosarium 0:2ddc0583bcec 457 * REFDIV = 0 - SYNT[25:21] = 11...13
rosarium 0:2ddc0583bcec 458 * REFDIV = 1 - SYNT[25:21] = 22…27
rosarium 0:2ddc0583bcec 459 *
rosarium 0:2ddc0583bcec 460 *
rosarium 0:2ddc0583bcec 461 * \endcode
rosarium 0:2ddc0583bcec 462 */
rosarium 0:2ddc0583bcec 463 #define SYNT3_BASE ((uint8_t)0x08) /*!< [4:0] -> SYNT[25:21], highest 5 bits of the PLL programmable divider */
rosarium 0:2ddc0583bcec 464
rosarium 0:2ddc0583bcec 465 #define WCP_CONF_WCP_378UA ((uint8_t)0x00) /*!< Charge pump current nominal value = 378uA [VCO 4644-4708]&[VCO 5161-5232] */
rosarium 0:2ddc0583bcec 466 #define WCP_CONF_WCP_369UA ((uint8_t)0x01) /*!< Charge pump current nominal value = 369uA [VCO 4708-4772]&[VCO 5232-5303] */
rosarium 0:2ddc0583bcec 467 #define WCP_CONF_WCP_359UA ((uint8_t)0x02) /*!< Charge pump current nominal value = 359uA [VCO 4772-4836]&[VCO 5303-5375] */
rosarium 0:2ddc0583bcec 468 #define WCP_CONF_WCP_350UA ((uint8_t)0x03) /*!< Charge pump current nominal value = 350uA [VCO 4836-4902]&[VCO 5375-5448] */
rosarium 0:2ddc0583bcec 469 #define WCP_CONF_WCP_340UA ((uint8_t)0x04) /*!< Charge pump current nominal value = 340uA [VCO 4902-4966]&[VCO 5448-5519] */
rosarium 0:2ddc0583bcec 470 #define WCP_CONF_WCP_331UA ((uint8_t)0x05) /*!< Charge pump current nominal value = 331uA [VCO 4966-5030]&[VCO 5519-5592] */
rosarium 0:2ddc0583bcec 471 #define WCP_CONF_WCP_321UA ((uint8_t)0x06) /*!< Charge pump current nominal value = 321uA [VCO 5030-5095]&[VCO 5592-5563] */
rosarium 0:2ddc0583bcec 472 #define WCP_CONF_WCP_312UA ((uint8_t)0x07) /*!< Charge pump current nominal value = 312uA [VCO 5095-5160]&[VCO 5563-5736] */
rosarium 0:2ddc0583bcec 473
rosarium 0:2ddc0583bcec 474
rosarium 0:2ddc0583bcec 475 /**
rosarium 0:2ddc0583bcec 476 * @}
rosarium 0:2ddc0583bcec 477 */
rosarium 0:2ddc0583bcec 478
rosarium 0:2ddc0583bcec 479
rosarium 0:2ddc0583bcec 480 /** @defgroup SYNT2_Register
rosarium 0:2ddc0583bcec 481 * @{
rosarium 0:2ddc0583bcec 482 */
rosarium 0:2ddc0583bcec 483
rosarium 0:2ddc0583bcec 484 /**
rosarium 0:2ddc0583bcec 485 * \brief SYNT2 register
rosarium 0:2ddc0583bcec 486 * \code
rosarium 0:2ddc0583bcec 487 * Read Write
rosarium 0:2ddc0583bcec 488 * Default value: 0x84
rosarium 0:2ddc0583bcec 489 * 7:0 SYNT[20:13]: intermediate bits of the PLL programmable divider.
rosarium 0:2ddc0583bcec 490 *
rosarium 0:2ddc0583bcec 491 * \endcode
rosarium 0:2ddc0583bcec 492 */
rosarium 0:2ddc0583bcec 493
rosarium 0:2ddc0583bcec 494 #define SYNT2_BASE ((uint8_t)0x09) /*!< SYNT[20:13], intermediate bits of the PLL programmable divider */
rosarium 0:2ddc0583bcec 495
rosarium 0:2ddc0583bcec 496 /**
rosarium 0:2ddc0583bcec 497 * @}
rosarium 0:2ddc0583bcec 498 */
rosarium 0:2ddc0583bcec 499
rosarium 0:2ddc0583bcec 500 /** @defgroup SYNT1_Register
rosarium 0:2ddc0583bcec 501 * @{
rosarium 0:2ddc0583bcec 502 */
rosarium 0:2ddc0583bcec 503
rosarium 0:2ddc0583bcec 504 /**
rosarium 0:2ddc0583bcec 505 * \brief SYNT1 register
rosarium 0:2ddc0583bcec 506 * \code
rosarium 0:2ddc0583bcec 507 * Read Write
rosarium 0:2ddc0583bcec 508 * Default value: 0xEC
rosarium 0:2ddc0583bcec 509 * 7:0 SYNT[12:5]: intermediate bits of the PLL programmable divider.
rosarium 0:2ddc0583bcec 510 *
rosarium 0:2ddc0583bcec 511 * \endcode
rosarium 0:2ddc0583bcec 512 */
rosarium 0:2ddc0583bcec 513
rosarium 0:2ddc0583bcec 514 #define SYNT1_BASE ((uint8_t)0x0A) /*!< SYNT[12:5], intermediate bits of the PLL programmable divider */
rosarium 0:2ddc0583bcec 515
rosarium 0:2ddc0583bcec 516 /**
rosarium 0:2ddc0583bcec 517 * @}
rosarium 0:2ddc0583bcec 518 */
rosarium 0:2ddc0583bcec 519
rosarium 0:2ddc0583bcec 520 /** @defgroup SYNT0_Register
rosarium 0:2ddc0583bcec 521 * @{
rosarium 0:2ddc0583bcec 522 */
rosarium 0:2ddc0583bcec 523
rosarium 0:2ddc0583bcec 524 /**
rosarium 0:2ddc0583bcec 525 * \brief SYNT0 register
rosarium 0:2ddc0583bcec 526 * \code
rosarium 0:2ddc0583bcec 527 * Read Write
rosarium 0:2ddc0583bcec 528 * Default value: 0x51
rosarium 0:2ddc0583bcec 529 * 7:3 SYNT[4:0]: lowest bits of the PLL programmable divider.
rosarium 0:2ddc0583bcec 530 * 2:0 BS[2:0]: Synthesizer band select. This parameter selects the out-of-loop divide factor of the synthesizer
rosarium 0:2ddc0583bcec 531 * according to the formula fxo/(B/2)/D*SYNT/2^18
rosarium 0:2ddc0583bcec 532 *
rosarium 0:2ddc0583bcec 533 * BS2 | BS1 | BS0 | value of B
rosarium 0:2ddc0583bcec 534 * ---------------------------------------------------------------------------
rosarium 0:2ddc0583bcec 535 * 0 | 0 | 1 | 6
rosarium 0:2ddc0583bcec 536 * 0 | 1 | 0 | 8
rosarium 0:2ddc0583bcec 537 * 0 | 1 | 1 | 12
rosarium 0:2ddc0583bcec 538 * 1 | 0 | 0 | 16
rosarium 0:2ddc0583bcec 539 * 1 | 0 | 1 | 32
rosarium 0:2ddc0583bcec 540 *
rosarium 0:2ddc0583bcec 541 * \endcode
rosarium 0:2ddc0583bcec 542 */
rosarium 0:2ddc0583bcec 543 #define SYNT0_BASE ((uint8_t)0x0B) /*!< [7:3] -> SYNT[4:0], lowest bits of the PLL programmable divider */
rosarium 0:2ddc0583bcec 544
rosarium 0:2ddc0583bcec 545 #define SYNT0_BS_6 ((uint8_t)0x01) /*!< Synthesizer band select (out-of-loop divide factor of the synthesizer)=6 (779-956MHz) */
rosarium 0:2ddc0583bcec 546 #define SYNT0_BS_8 ((uint8_t)0x02) /*!< Synthesizer band select (out-of-loop divide factor of the synthesizer)=8 (387-470MHz)*/
rosarium 0:2ddc0583bcec 547 #define SYNT0_BS_12 ((uint8_t)0x03) /*!< Synthesizer band select (out-of-loop divide factor of the synthesizer)=12 (387-470MHz)*/
rosarium 0:2ddc0583bcec 548 #define SYNT0_BS_16 ((uint8_t)0x04) /*!< Synthesizer band select (out-of-loop divide factor of the synthesizer)=16 (300-348MHz)*/
rosarium 0:2ddc0583bcec 549 #define SYNT0_BS_32 ((uint8_t)0x05) /*!< Synthesizer band select (out-of-loop divide factor of the synthesizer)=32 (150-174MHz)*/
rosarium 0:2ddc0583bcec 550
rosarium 0:2ddc0583bcec 551 /**
rosarium 0:2ddc0583bcec 552 * @}
rosarium 0:2ddc0583bcec 553 */
rosarium 0:2ddc0583bcec 554
rosarium 0:2ddc0583bcec 555 /** @defgroup CHSPACE_Register
rosarium 0:2ddc0583bcec 556 * @{
rosarium 0:2ddc0583bcec 557 */
rosarium 0:2ddc0583bcec 558
rosarium 0:2ddc0583bcec 559 /**
rosarium 0:2ddc0583bcec 560 * \brief CHSPACE register
rosarium 0:2ddc0583bcec 561 * \code
rosarium 0:2ddc0583bcec 562 * Read Write
rosarium 0:2ddc0583bcec 563 * Default value: 0xFC
rosarium 0:2ddc0583bcec 564 * 7:0 CH_SPACING[7:0]: Channel spacing. From ~793Hz to ~200KHz in 793Hz steps
rosarium 0:2ddc0583bcec 565 * (in general, frequency step is fXO/215=26MHz/215~793Hz).
rosarium 0:2ddc0583bcec 566 *
rosarium 0:2ddc0583bcec 567 * \endcode
rosarium 0:2ddc0583bcec 568 */
rosarium 0:2ddc0583bcec 569
rosarium 0:2ddc0583bcec 570 #define CHSPACE_BASE ((uint8_t)0x0C) /*!< Channel spacing. From ~0.8KHz to ~200KHz in (fXO/2^15)Hz (793Hz for 26MHz XO) steps */
rosarium 0:2ddc0583bcec 571
rosarium 0:2ddc0583bcec 572 /**
rosarium 0:2ddc0583bcec 573 * @}
rosarium 0:2ddc0583bcec 574 */
rosarium 0:2ddc0583bcec 575
rosarium 0:2ddc0583bcec 576
rosarium 0:2ddc0583bcec 577
rosarium 0:2ddc0583bcec 578 /** @defgroup IF_OFFSET_DIG_Register
rosarium 0:2ddc0583bcec 579 * @{
rosarium 0:2ddc0583bcec 580 */
rosarium 0:2ddc0583bcec 581
rosarium 0:2ddc0583bcec 582 /**
rosarium 0:2ddc0583bcec 583 * \brief IF_OFFSET_DIG register
rosarium 0:2ddc0583bcec 584 * \code
rosarium 0:2ddc0583bcec 585 * Read Write
rosarium 0:2ddc0583bcec 586 * Default value: 0xA3
rosarium 0:2ddc0583bcec 587 * 7:0 IF_OFFSET_DIG[7:0]: Intermediate frequency setting for the digital shift-to-baseband circuits. According to the formula: fIF=fXO*(IF_OFFSET_ANA+64)/(12*2^10)=fCLK*(IF_OFFSET_DIG+64)/(12*2^10) Hz.
rosarium 0:2ddc0583bcec 588 *
rosarium 0:2ddc0583bcec 589 * \endcode
rosarium 0:2ddc0583bcec 590 */
rosarium 0:2ddc0583bcec 591 #define IF_OFFSET_DIG_BASE ((uint8_t)0x0D) /*!< Intermediate frequency fIF=fXO*(IF_OFFSET_ANA+64)/(12*2^10)=fCLK*(IF_OFFSET_DIG+64)/(12*2^10) Hz */
rosarium 0:2ddc0583bcec 592
rosarium 0:2ddc0583bcec 593 /**
rosarium 0:2ddc0583bcec 594 * @}
rosarium 0:2ddc0583bcec 595 */
rosarium 0:2ddc0583bcec 596
rosarium 0:2ddc0583bcec 597 /** @defgroup IF_OFFSET_ANA_Register
rosarium 0:2ddc0583bcec 598 * @{
rosarium 0:2ddc0583bcec 599 */
rosarium 0:2ddc0583bcec 600
rosarium 0:2ddc0583bcec 601 /**
rosarium 0:2ddc0583bcec 602 * \brief IF_OFFSET_ANA register
rosarium 0:2ddc0583bcec 603 * \code
rosarium 0:2ddc0583bcec 604 * Read Write
rosarium 0:2ddc0583bcec 605 * Default value: 0xA3
rosarium 0:2ddc0583bcec 606 * 7:0 IF_OFFSET_ANA[7:0]: Intermediate frequency setting for the digital shift-to-baseband circuits. According to the formula: fIF=fXO*(IF_OFFSET_ANA+64)/(12*2^10)=fCLK*(IF_OFFSET_DIG+64)/(12*2^10) Hz.
rosarium 0:2ddc0583bcec 607 *
rosarium 0:2ddc0583bcec 608 * \endcode
rosarium 0:2ddc0583bcec 609 */
rosarium 0:2ddc0583bcec 610 #define IF_OFFSET_ANA_BASE ((uint8_t)0x07) /*!< Intermediate frequency fIF=fXO*(IF_OFFSET_ANA+64)/(12*2^10)=fCLK*(IF_OFFSET_DIG+64)/(12*2^10) Hz */
rosarium 0:2ddc0583bcec 611
rosarium 0:2ddc0583bcec 612
rosarium 0:2ddc0583bcec 613 /**
rosarium 0:2ddc0583bcec 614 * @}
rosarium 0:2ddc0583bcec 615 */
rosarium 0:2ddc0583bcec 616
rosarium 0:2ddc0583bcec 617 /** @defgroup FC_OFFSET1_Register
rosarium 0:2ddc0583bcec 618 * @{
rosarium 0:2ddc0583bcec 619 */
rosarium 0:2ddc0583bcec 620
rosarium 0:2ddc0583bcec 621 /**
rosarium 0:2ddc0583bcec 622 * \brief FC_OFFSET1 registers
rosarium 0:2ddc0583bcec 623 * \code
rosarium 0:2ddc0583bcec 624 * Read Write
rosarium 0:2ddc0583bcec 625 * Default value: 0xA3
rosarium 0:2ddc0583bcec 626 * 7:4 Reserved.
rosarium 0:2ddc0583bcec 627 * 3:0 FC_OFFSET[11:8]: Carrier offset. This value is the higher part of a 12-bit 2’s complement integer
rosarium 0:2ddc0583bcec 628 * representing an offset in 99Hz(2) units added/subtracted to the
rosarium 0:2ddc0583bcec 629 * carrier frequency set by registers SYNT3…SYNT0.
rosarium 0:2ddc0583bcec 630 * This register can be used to set a fixed correction value
rosarium 0:2ddc0583bcec 631 * obtained e.g. from crystal measurements.
rosarium 0:2ddc0583bcec 632 *
rosarium 0:2ddc0583bcec 633 * \endcode
rosarium 0:2ddc0583bcec 634 */
rosarium 0:2ddc0583bcec 635 #define FC_OFFSET1_BASE ((uint8_t)0x0E) /*!< [3:0] -> [11:8] Carrier offset (upper part) */
rosarium 0:2ddc0583bcec 636
rosarium 0:2ddc0583bcec 637 /**
rosarium 0:2ddc0583bcec 638 * @}
rosarium 0:2ddc0583bcec 639 */
rosarium 0:2ddc0583bcec 640
rosarium 0:2ddc0583bcec 641
rosarium 0:2ddc0583bcec 642 /** @defgroup FC_OFFSET0_Register
rosarium 0:2ddc0583bcec 643 * @{
rosarium 0:2ddc0583bcec 644 */
rosarium 0:2ddc0583bcec 645
rosarium 0:2ddc0583bcec 646 /**
rosarium 0:2ddc0583bcec 647 * \brief FC_OFFSET0 registers
rosarium 0:2ddc0583bcec 648 * \code
rosarium 0:2ddc0583bcec 649 * Default value: 0x00
rosarium 0:2ddc0583bcec 650 * Read Write
rosarium 0:2ddc0583bcec 651 * 7:0 FC_OFFSET[7:0]: Carrier offset. This value is the lower part of a 12-bit 2’s complement integer
rosarium 0:2ddc0583bcec 652 * representing an offset in 99Hz(2) units added/subtracted to the
rosarium 0:2ddc0583bcec 653 * carrier frequency set by registers SYNT3…SYNT0.
rosarium 0:2ddc0583bcec 654 * This register can be used to set a fixed correction value
rosarium 0:2ddc0583bcec 655 * obtained e.g. from crystal measurements.
rosarium 0:2ddc0583bcec 656 *
rosarium 0:2ddc0583bcec 657 * \endcode
rosarium 0:2ddc0583bcec 658 */
rosarium 0:2ddc0583bcec 659 #define FC_OFFSET0_BASE ((uint8_t)0x0F) /*!< [7:0] -> [7:0] Carrier offset (lower part). This value is a 12-bit 2’s complement integer
rosarium 0:2ddc0583bcec 660 representing an offset in fXO/2^18 (99Hz for 26 MHz XO) units added/subtracted to the carrier frequency
rosarium 0:2ddc0583bcec 661 set by registers SYNT3…SYNT0. Range is +/-200kHz with 26 MHz XO */
rosarium 0:2ddc0583bcec 662 /**
rosarium 0:2ddc0583bcec 663 * @}
rosarium 0:2ddc0583bcec 664 */
rosarium 0:2ddc0583bcec 665
rosarium 0:2ddc0583bcec 666
rosarium 0:2ddc0583bcec 667 /** @defgroup PA_LEVEL_x_Registers
rosarium 0:2ddc0583bcec 668 * @{
rosarium 0:2ddc0583bcec 669 */
rosarium 0:2ddc0583bcec 670
rosarium 0:2ddc0583bcec 671 /**
rosarium 0:2ddc0583bcec 672 * \brief PA_POWER_x[8:1] registers
rosarium 0:2ddc0583bcec 673 * \code
rosarium 0:2ddc0583bcec 674 * Default values from 8 to 1: [0x03, 0x0E, 0x1A, 0x25, 0x35, 0x40, 0x4E, 0x00]
rosarium 0:2ddc0583bcec 675 * Read Write
rosarium 0:2ddc0583bcec 676 *
rosarium 0:2ddc0583bcec 677 * 7 Reserved.
rosarium 0:2ddc0583bcec 678 * 6:0 PA_LEVEL_(x-1)[6:0]: Output power level for x-th slot.
rosarium 0:2ddc0583bcec 679 * \endcode
rosarium 0:2ddc0583bcec 680 */
rosarium 0:2ddc0583bcec 681
rosarium 0:2ddc0583bcec 682 #define PA_POWER8_BASE ((uint8_t)0x10) /*!< PA Power level for 8th slot of PA ramping or ASK modulation */
rosarium 0:2ddc0583bcec 683 #define PA_POWER7_BASE ((uint8_t)0x11) /*!< PA Power level for 7th slot of PA ramping or ASK modulation */
rosarium 0:2ddc0583bcec 684 #define PA_POWER6_BASE ((uint8_t)0x12) /*!< PA Power level for 6th slot of PA ramping or ASK modulation */
rosarium 0:2ddc0583bcec 685 #define PA_POWER5_BASE ((uint8_t)0x13) /*!< PA Power level for 5th slot of PA ramping or ASK modulation */
rosarium 0:2ddc0583bcec 686 #define PA_POWER4_BASE ((uint8_t)0x14) /*!< PA Power level for 4th slot of PA ramping or ASK modulation */
rosarium 0:2ddc0583bcec 687 #define PA_POWER3_BASE ((uint8_t)0x15) /*!< PA Power level for 3rd slot of PA ramping or ASK modulation */
rosarium 0:2ddc0583bcec 688 #define PA_POWER2_BASE ((uint8_t)0x16) /*!< PA Power level for 2nd slot of PA ramping or ASK modulation */
rosarium 0:2ddc0583bcec 689 #define PA_POWER1_BASE ((uint8_t)0x17) /*!< PA Power level for 1st slot of PA ramping or ASK modulation */
rosarium 0:2ddc0583bcec 690
rosarium 0:2ddc0583bcec 691 /**
rosarium 0:2ddc0583bcec 692 * @}
rosarium 0:2ddc0583bcec 693 */
rosarium 0:2ddc0583bcec 694
rosarium 0:2ddc0583bcec 695 /** @defgroup PA_POWER_CONF_Registers
rosarium 0:2ddc0583bcec 696 * @{
rosarium 0:2ddc0583bcec 697 */
rosarium 0:2ddc0583bcec 698
rosarium 0:2ddc0583bcec 699 /**
rosarium 0:2ddc0583bcec 700 * \brief PA_POWER_CONF_Registers
rosarium 0:2ddc0583bcec 701 * \code
rosarium 0:2ddc0583bcec 702 * Default value:0x07
rosarium 0:2ddc0583bcec 703 * Read Write
rosarium 0:2ddc0583bcec 704 *
rosarium 0:2ddc0583bcec 705 * 7:6 CWC[1:0]: Output stage additional load capacitors bank (to be used to
rosarium 0:2ddc0583bcec 706 * optimize the PA for different sub-bands).
rosarium 0:2ddc0583bcec 707 *
rosarium 0:2ddc0583bcec 708 * CWC1 | CWC0 | Total capacity in pF
rosarium 0:2ddc0583bcec 709 * ---------------------------------------------------------
rosarium 0:2ddc0583bcec 710 * 0 | 0 | 0
rosarium 0:2ddc0583bcec 711 * 0 | 1 | 1.2
rosarium 0:2ddc0583bcec 712 * 1 | 0 | 2.4
rosarium 0:2ddc0583bcec 713 * 1 | 1 | 3.6
rosarium 0:2ddc0583bcec 714 *
rosarium 0:2ddc0583bcec 715 * 5 PA_RAMP_ENABLE:
rosarium 0:2ddc0583bcec 716 * 1 - Enable the power ramping
rosarium 0:2ddc0583bcec 717 * 0 - Disable the power ramping
rosarium 0:2ddc0583bcec 718 * 4:3 PA_RAMP_STEP_WIDTH[1:0]: Step width in bit period
rosarium 0:2ddc0583bcec 719 *
rosarium 0:2ddc0583bcec 720 * PA_RAMP_STEP_WIDTH1 | PA_RAMP_STEP_WIDTH0 | PA ramping time step
rosarium 0:2ddc0583bcec 721 * -------------------------------------------------------------------------------------------
rosarium 0:2ddc0583bcec 722 * 0 | 0 | 1/8 Bit period
rosarium 0:2ddc0583bcec 723 * 0 | 1 | 2/8 Bit period
rosarium 0:2ddc0583bcec 724 * 1 | 0 | 3/8 Bit period
rosarium 0:2ddc0583bcec 725 * 1 | 1 | 4/8 Bit period
rosarium 0:2ddc0583bcec 726 *
rosarium 0:2ddc0583bcec 727 * 2:0 PA_LEVEL_MAX_INDEX[2:0]: Fixes the MAX PA LEVEL in PA ramping or ASK modulation
rosarium 0:2ddc0583bcec 728 *
rosarium 0:2ddc0583bcec 729 * \endcode
rosarium 0:2ddc0583bcec 730 */
rosarium 0:2ddc0583bcec 731 #define PA_POWER0_BASE ((uint8_t)0x18) /*!< PA ramping settings and additional load capacitor banks used
rosarium 0:2ddc0583bcec 732 for PA optimization in different sub bands*/
rosarium 0:2ddc0583bcec 733 #define PA_POWER0_CWC_MASK ((uint8_t)0x20) /*!< Output stage additional load capacitors bank */
rosarium 0:2ddc0583bcec 734 #define PA_POWER0_CWC_0 ((uint8_t)0x00) /*!< No additional PA load capacitor */
rosarium 0:2ddc0583bcec 735 #define PA_POWER0_CWC_1_2P ((uint8_t)0x40) /*!< 1.2pF additional PA load capacitor */
rosarium 0:2ddc0583bcec 736 #define PA_POWER0_CWC_2_4P ((uint8_t)0x80) /*!< 2.4pF additional PA load capacitor */
rosarium 0:2ddc0583bcec 737 #define PA_POWER0_CWC_3_6P ((uint8_t)0xC0) /*!< 3.6pF additional PA load capacitor */
rosarium 0:2ddc0583bcec 738 #define PA_POWER0_PA_RAMP_MASK ((uint8_t)0x20) /*!< The PA power ramping */
rosarium 0:2ddc0583bcec 739 #define PA_POWER0_PA_RAMP_STEP_WIDTH_MASK ((uint8_t)0x20) /*!< The step width */
rosarium 0:2ddc0583bcec 740 #define PA_POWER0_PA_RAMP_STEP_WIDTH_TB_8 ((uint8_t)0x00) /*!< PA ramping time step = 1/8 Bit period*/
rosarium 0:2ddc0583bcec 741 #define PA_POWER0_PA_RAMP_STEP_WIDTH_TB_4 ((uint8_t)0x08) /*!< PA ramping time step = 2/8 Bit period*/
rosarium 0:2ddc0583bcec 742 #define PA_POWER0_PA_RAMP_STEP_WIDTH_3TB_8 ((uint8_t)0x10) /*!< PA ramping time step = 3/8 Bit period*/
rosarium 0:2ddc0583bcec 743 #define PA_POWER0_PA_RAMP_STEP_WIDTH_TB_2 ((uint8_t)0x18) /*!< PA ramping time step = 4/8 Bit period*/
rosarium 0:2ddc0583bcec 744 #define PA_POWER0_PA_LEVEL_MAX_INDEX ((uint8_t)0x20) /*!< Final level for power ramping */
rosarium 0:2ddc0583bcec 745 #define PA_POWER0_PA_LEVEL_MAX_INDEX_0 ((uint8_t)0x00) /*!< */
rosarium 0:2ddc0583bcec 746 #define PA_POWER0_PA_LEVEL_MAX_INDEX_1 ((uint8_t)0x01) /*!< Fixes the MAX PA LEVEL in PA ramping or ASK modulation */
rosarium 0:2ddc0583bcec 747 #define PA_POWER0_PA_LEVEL_MAX_INDEX_2 ((uint8_t)0x02) /*!< */
rosarium 0:2ddc0583bcec 748 #define PA_POWER0_PA_LEVEL_MAX_INDEX_3 ((uint8_t)0x03) /*!< _________ */
rosarium 0:2ddc0583bcec 749 #define PA_POWER0_PA_LEVEL_MAX_INDEX_4 ((uint8_t)0x04) /*!< PA_LVL2 _| <--| */
rosarium 0:2ddc0583bcec 750 #define PA_POWER0_PA_LEVEL_MAX_INDEX_5 ((uint8_t)0x05) /*!< _| | */
rosarium 0:2ddc0583bcec 751 #define PA_POWER0_PA_LEVEL_MAX_INDEX_6 ((uint8_t)0x06) /*!< PA_LVL1 _| | */
rosarium 0:2ddc0583bcec 752 #define PA_POWER0_PA_LEVEL_MAX_INDEX_7 ((uint8_t)0x07) /*!< PA_LVL0 _| MAX_INDEX- */
rosarium 0:2ddc0583bcec 753
rosarium 0:2ddc0583bcec 754
rosarium 0:2ddc0583bcec 755
rosarium 0:2ddc0583bcec 756 /**
rosarium 0:2ddc0583bcec 757 * @}
rosarium 0:2ddc0583bcec 758 */
rosarium 0:2ddc0583bcec 759
rosarium 0:2ddc0583bcec 760
rosarium 0:2ddc0583bcec 761 /** @defgroup MOD1_Register
rosarium 0:2ddc0583bcec 762 * @{
rosarium 0:2ddc0583bcec 763 */
rosarium 0:2ddc0583bcec 764
rosarium 0:2ddc0583bcec 765 /**
rosarium 0:2ddc0583bcec 766 * \brief MOD1 register
rosarium 0:2ddc0583bcec 767 * \code
rosarium 0:2ddc0583bcec 768 * Read Write
rosarium 0:2ddc0583bcec 769 * Default value: 0x83
rosarium 0:2ddc0583bcec 770 * 7:0 DATARATE_M[7:0]: The Mantissa of the specified data rate
rosarium 0:2ddc0583bcec 771 *
rosarium 0:2ddc0583bcec 772 * \endcode
rosarium 0:2ddc0583bcec 773 */
rosarium 0:2ddc0583bcec 774 #define MOD1_BASE ((uint8_t)0x1A) /*!< The Mantissa of the specified data rate */
rosarium 0:2ddc0583bcec 775
rosarium 0:2ddc0583bcec 776 /**
rosarium 0:2ddc0583bcec 777 * @}
rosarium 0:2ddc0583bcec 778 */
rosarium 0:2ddc0583bcec 779
rosarium 0:2ddc0583bcec 780 /** @defgroup MOD0_Register
rosarium 0:2ddc0583bcec 781 * @{
rosarium 0:2ddc0583bcec 782 */
rosarium 0:2ddc0583bcec 783
rosarium 0:2ddc0583bcec 784 /**
rosarium 0:2ddc0583bcec 785 * \brief MOD0 register
rosarium 0:2ddc0583bcec 786 * \code
rosarium 0:2ddc0583bcec 787 * Read Write
rosarium 0:2ddc0583bcec 788 * Default value: 0x1A
rosarium 0:2ddc0583bcec 789 * 7 CW: 1 - CW Mode enabled - enables the generation of a continous wave carrier without any modulation
rosarium 0:2ddc0583bcec 790 * 0 - CW Mode disabled
rosarium 0:2ddc0583bcec 791 *
rosarium 0:2ddc0583bcec 792 * 6 BT_SEL: Select BT value for GFSK
rosarium 0:2ddc0583bcec 793 * 1 - BT=0.5
rosarium 0:2ddc0583bcec 794 * 0 - BT=1
rosarium 0:2ddc0583bcec 795 *
rosarium 0:2ddc0583bcec 796 * 5:4 MOD_TYPE[1:0]: Modulation type
rosarium 0:2ddc0583bcec 797 *
rosarium 0:2ddc0583bcec 798 *
rosarium 0:2ddc0583bcec 799 * MOD_TYPE1 | MOD_TYPE0 | Modulation
rosarium 0:2ddc0583bcec 800 * ---------------------------------------------------------
rosarium 0:2ddc0583bcec 801 * 0 | 0 | 2-FSK,MSK
rosarium 0:2ddc0583bcec 802 * 0 | 1 | GFSK,GMSK
rosarium 0:2ddc0583bcec 803 * 1 | 0 | ASK/OOK
rosarium 0:2ddc0583bcec 804 *
rosarium 0:2ddc0583bcec 805 * 3:0 DATARATE_E[3:0]: The Exponent of the specified data rate
rosarium 0:2ddc0583bcec 806 *
rosarium 0:2ddc0583bcec 807 * \endcode
rosarium 0:2ddc0583bcec 808 */
rosarium 0:2ddc0583bcec 809 #define MOD0_BASE ((uint8_t)0x1B) /*!< Modulation Settings, Exponent of the specified data rate, CW mode*/
rosarium 0:2ddc0583bcec 810
rosarium 0:2ddc0583bcec 811 #define MOD0_MOD_TYPE_2_FSK ((uint8_t)0x00) /*!< Modulation type 2-FSK (MSK if the frequency deviation is identical to a quarter of the data rate) */
rosarium 0:2ddc0583bcec 812 #define MOD0_MOD_TYPE_GFSK ((uint8_t)0x10) /*!< Modulation type GFSK (GMSK if the frequency deviation is identical to a quarter of the data rate) */
rosarium 0:2ddc0583bcec 813 #define MOD0_MOD_TYPE_ASK ((uint8_t)0x20) /*!< Modulation type ASK (OOK the PA is switched off for symbol "0") */
rosarium 0:2ddc0583bcec 814 #define MOD0_MOD_TYPE_MSK ((uint8_t)0x00) /*!< Modulation type MSK (the frequency deviation must be identical to a quarter of the data rate) */
rosarium 0:2ddc0583bcec 815 #define MOD0_MOD_TYPE_GMSK ((uint8_t)0x10) /*!< Modulation type GMSK (the frequency deviation must be identical to a quarter of the data rate) */
rosarium 0:2ddc0583bcec 816 #define MOD0_BT_SEL_BT_MASK ((uint8_t)0x00) /*!< Select the BT = 1 or BT = 0.5 valid only for GFSK or GMSK modulation*/
rosarium 0:2ddc0583bcec 817 #define MOD0_CW ((uint8_t)0x80) /*!< Set the Continous Wave (no modulation) transmit mode */
rosarium 0:2ddc0583bcec 818
rosarium 0:2ddc0583bcec 819 /**
rosarium 0:2ddc0583bcec 820 * @}
rosarium 0:2ddc0583bcec 821 */
rosarium 0:2ddc0583bcec 822
rosarium 0:2ddc0583bcec 823
rosarium 0:2ddc0583bcec 824 /** @defgroup FDEV0_Register
rosarium 0:2ddc0583bcec 825 * @{
rosarium 0:2ddc0583bcec 826 */
rosarium 0:2ddc0583bcec 827
rosarium 0:2ddc0583bcec 828 /**
rosarium 0:2ddc0583bcec 829 * \brief FDEV0 register
rosarium 0:2ddc0583bcec 830 * \code
rosarium 0:2ddc0583bcec 831 * Read Write
rosarium 0:2ddc0583bcec 832 * Default value: 0x45
rosarium 0:2ddc0583bcec 833 * 7:4 FDEV_E[3:0]: Exponent of the frequency deviation (allowed values from 0 to 9)
rosarium 0:2ddc0583bcec 834 *
rosarium 0:2ddc0583bcec 835 * 3 CLOCK_REC_ALGO_SEL: Select PLL or DLL mode for clock recovery
rosarium 0:2ddc0583bcec 836 * 1 - DLL mode
rosarium 0:2ddc0583bcec 837 * 0 - PLL mode
rosarium 0:2ddc0583bcec 838 *
rosarium 0:2ddc0583bcec 839 * 2:0 FDEV_M[1:0]: Mantissa of the frequency deviation (allowed values from 0 to 7)
rosarium 0:2ddc0583bcec 840 *
rosarium 0:2ddc0583bcec 841 *
rosarium 0:2ddc0583bcec 842 * \endcode
rosarium 0:2ddc0583bcec 843 */
rosarium 0:2ddc0583bcec 844 #define FDEV0_BASE ((uint8_t)0x1C) /*!< Sets the Mantissa and exponent of frequency deviation (frequency separation/2)
rosarium 0:2ddc0583bcec 845 and PLL or DLL alogrithm from clock recovery in RX digital demod*/
rosarium 0:2ddc0583bcec 846 #define FDEV0_CLOCK_REG_ALGO_SEL_MASK ((uint8_t)0x08) /*!< Can be DLL or PLL algorithm for clock recovery in RX digital demod (see CLOCKREC reg) */
rosarium 0:2ddc0583bcec 847 #define FDEV0_CLOCK_REG_ALGO_SEL_PLL ((uint8_t)0x00) /*!< Sets PLL alogrithm for clock recovery in RX digital demod (see CLOCKREC reg) */
rosarium 0:2ddc0583bcec 848 #define FDEV0_CLOCK_REG_ALGO_SEL_DLL ((uint8_t)0x08) /*!< Sets DLL alogrithm for clock recovery in RX digital demod (see CLOCKREC reg) */
rosarium 0:2ddc0583bcec 849
rosarium 0:2ddc0583bcec 850 /**
rosarium 0:2ddc0583bcec 851 * @}
rosarium 0:2ddc0583bcec 852 */
rosarium 0:2ddc0583bcec 853
rosarium 0:2ddc0583bcec 854 /** @defgroup CHFLT_Register
rosarium 0:2ddc0583bcec 855 * @{
rosarium 0:2ddc0583bcec 856 */
rosarium 0:2ddc0583bcec 857
rosarium 0:2ddc0583bcec 858 /**
rosarium 0:2ddc0583bcec 859 * \brief CHFLT register
rosarium 0:2ddc0583bcec 860 * \code
rosarium 0:2ddc0583bcec 861 * Read Write
rosarium 0:2ddc0583bcec 862 * Default value: 0x23
rosarium 0:2ddc0583bcec 863 * 7:4 CHFLT_M[3:0]: Mantissa of the channel filter BW (allowed values from 0 to 8)
rosarium 0:2ddc0583bcec 864 *
rosarium 0:2ddc0583bcec 865 * 3:0 CHFLT_E[3:0]: Exponent of the channel filter BW (allowed values from 0 to 9)
rosarium 0:2ddc0583bcec 866 *
rosarium 0:2ddc0583bcec 867 * M\E | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
rosarium 0:2ddc0583bcec 868 * -----+-------+-------+-------+-------+------+------+------+-----+-----+-----+
rosarium 0:2ddc0583bcec 869 * 0 | 800.1 | 450.9 | 224.7 | 112.3 | 56.1 | 28.0 | 14.0 | 7.0 | 3.5 | 1.8 |
rosarium 0:2ddc0583bcec 870 * 1 | 795.1 | 425.9 | 212.4 | 106.2 | 53.0 | 26.5 | 13.3 | 6.6 | 3.3 | 1.7 |
rosarium 0:2ddc0583bcec 871 * 2 | 768.4 | 403.2 | 201.1 | 100.5 | 50.2 | 25.1 | 12.6 | 6.3 | 3.1 | 1.6 |
rosarium 0:2ddc0583bcec 872 * 3 | 736.8 | 380.8 | 190.0 | 95.0 | 47.4 | 23.7 | 11.9 | 5.9 | 3.0 | 1.5 |
rosarium 0:2ddc0583bcec 873 * 4 | 705.1 | 362.1 | 180.7 | 90.3 | 45.1 | 22.6 | 11.3 | 5.6 | 2.8 | 1.4 |
rosarium 0:2ddc0583bcec 874 * 5 | 670.9 | 341.7 | 170.6 | 85.3 | 42.6 | 21.3 | 10.6 | 5.3 | 2.7 | 1.3 |
rosarium 0:2ddc0583bcec 875 * 6 | 642.3 | 325.4 | 162.4 | 81.2 | 40.6 | 20.3 | 10.1 | 5.1 | 2.5 | 1.3 |
rosarium 0:2ddc0583bcec 876 * 7 | 586.7 | 294.5 | 147.1 | 73.5 | 36.7 | 18.4 | 9.2 | 4.6 | 2.3 | 1.2 |
rosarium 0:2ddc0583bcec 877 * 8 | 541.4 | 270.3 | 135.0 | 67.5 | 33.7 | 16.9 | 8.4 | 4.2 | 2.1 | 1.1 |
rosarium 0:2ddc0583bcec 878 *
rosarium 0:2ddc0583bcec 879 * \endcode
rosarium 0:2ddc0583bcec 880 */
rosarium 0:2ddc0583bcec 881 #define CHFLT_BASE ((uint8_t)0x1D) /*!< RX Channel Filter Bandwidth */
rosarium 0:2ddc0583bcec 882
rosarium 0:2ddc0583bcec 883 #define CHFLT_800_1 ((uint8_t)0x00) /*!< RX Channel Filter Bandwidth = 800.1 kHz */
rosarium 0:2ddc0583bcec 884 #define CHFLT_795_1 ((uint8_t)0x10) /*!< RX Channel Filter Bandwidth = 795.1 kHz */
rosarium 0:2ddc0583bcec 885 #define CHFLT_768_4 ((uint8_t)0x20) /*!< RX Channel Filter Bandwidth = 768.4 kHz */
rosarium 0:2ddc0583bcec 886 #define CHFLT_736_8 ((uint8_t)0x30) /*!< RX Channel Filter Bandwidth = 736.8 kHz */
rosarium 0:2ddc0583bcec 887 #define CHFLT_705_1 ((uint8_t)0x40) /*!< RX Channel Filter Bandwidth = 705.1 kHz */
rosarium 0:2ddc0583bcec 888 #define CHFLT_670_9 ((uint8_t)0x50) /*!< RX Channel Filter Bandwidth = 670.9 kHz */
rosarium 0:2ddc0583bcec 889 #define CHFLT_642_3 ((uint8_t)0x60) /*!< RX Channel Filter Bandwidth = 642.3 kHz */
rosarium 0:2ddc0583bcec 890 #define CHFLT_586_7 ((uint8_t)0x70) /*!< RX Channel Filter Bandwidth = 586.7 kHz */
rosarium 0:2ddc0583bcec 891 #define CHFLT_541_4 ((uint8_t)0x80) /*!< RX Channel Filter Bandwidth = 541.4 kHz */
rosarium 0:2ddc0583bcec 892 #define CHFLT_450_9 ((uint8_t)0x01) /*!< RX Channel Filter Bandwidth = 450.9 kHz */
rosarium 0:2ddc0583bcec 893 #define CHFLT_425_9 ((uint8_t)0x11) /*!< RX Channel Filter Bandwidth = 425.9 kHz */
rosarium 0:2ddc0583bcec 894 #define CHFLT_403_2 ((uint8_t)0x21) /*!< RX Channel Filter Bandwidth = 403.2 kHz */
rosarium 0:2ddc0583bcec 895 #define CHFLT_380_8 ((uint8_t)0x31) /*!< RX Channel Filter Bandwidth = 380.8 kHz */
rosarium 0:2ddc0583bcec 896 #define CHFLT_362_1 ((uint8_t)0x41) /*!< RX Channel Filter Bandwidth = 362.1 kHz */
rosarium 0:2ddc0583bcec 897 #define CHFLT_341_7 ((uint8_t)0x51) /*!< RX Channel Filter Bandwidth = 341.7 kHz */
rosarium 0:2ddc0583bcec 898 #define CHFLT_325_4 ((uint8_t)0x61) /*!< RX Channel Filter Bandwidth = 325.4 kHz */
rosarium 0:2ddc0583bcec 899 #define CHFLT_294_5 ((uint8_t)0x71) /*!< RX Channel Filter Bandwidth = 294.5 kHz */
rosarium 0:2ddc0583bcec 900 #define CHFLT_270_3 ((uint8_t)0x81) /*!< RX Channel Filter Bandwidth = 270.3 kHz */
rosarium 0:2ddc0583bcec 901 #define CHFLT_224_7 ((uint8_t)0x02) /*!< RX Channel Filter Bandwidth = 224.7 kHz */
rosarium 0:2ddc0583bcec 902 #define CHFLT_212_4 ((uint8_t)0x12) /*!< RX Channel Filter Bandwidth = 212.4 kHz */
rosarium 0:2ddc0583bcec 903 #define CHFLT_201_1 ((uint8_t)0x22) /*!< RX Channel Filter Bandwidth = 201.1 kHz */
rosarium 0:2ddc0583bcec 904 #define CHFLT_190 ((uint8_t)0x32) /*!< RX Channel Filter Bandwidth = 190.0 kHz */
rosarium 0:2ddc0583bcec 905 #define CHFLT_180_7 ((uint8_t)0x42) /*!< RX Channel Filter Bandwidth = 180.7 kHz */
rosarium 0:2ddc0583bcec 906 #define CHFLT_170_6 ((uint8_t)0x52) /*!< RX Channel Filter Bandwidth = 170.6 kHz */
rosarium 0:2ddc0583bcec 907 #define CHFLT_162_4 ((uint8_t)0x62) /*!< RX Channel Filter Bandwidth = 162.4 kHz */
rosarium 0:2ddc0583bcec 908 #define CHFLT_147_1 ((uint8_t)0x72) /*!< RX Channel Filter Bandwidth = 147.1 kHz */
rosarium 0:2ddc0583bcec 909 #define CHFLT_135 ((uint8_t)0x82) /*!< RX Channel Filter Bandwidth = 135.0 kHz */
rosarium 0:2ddc0583bcec 910 #define CHFLT_112_3 ((uint8_t)0x03) /*!< RX Channel Filter Bandwidth = 112.3 kHz */
rosarium 0:2ddc0583bcec 911 #define CHFLT_106_2 ((uint8_t)0x13) /*!< RX Channel Filter Bandwidth = 106.2 kHz */
rosarium 0:2ddc0583bcec 912 #define CHFLT_100_5 ((uint8_t)0x23) /*!< RX Channel Filter Bandwidth = 100.5 kHz */
rosarium 0:2ddc0583bcec 913 #define CHFLT_95 ((uint8_t)0x33) /*!< RX Channel Filter Bandwidth = 95.0 kHz */
rosarium 0:2ddc0583bcec 914 #define CHFLT_90_3 ((uint8_t)0x43) /*!< RX Channel Filter Bandwidth = 90.3 kHz */
rosarium 0:2ddc0583bcec 915 #define CHFLT_85_3 ((uint8_t)0x53) /*!< RX Channel Filter Bandwidth = 85.3 kHz */
rosarium 0:2ddc0583bcec 916 #define CHFLT_81_2 ((uint8_t)0x63) /*!< RX Channel Filter Bandwidth = 81.2 kHz */
rosarium 0:2ddc0583bcec 917 #define CHFLT_73_5 ((uint8_t)0x73) /*!< RX Channel Filter Bandwidth = 73.5 kHz */
rosarium 0:2ddc0583bcec 918 #define CHFLT_67_5 ((uint8_t)0x83) /*!< RX Channel Filter Bandwidth = 67.5 kHz */
rosarium 0:2ddc0583bcec 919 #define CHFLT_56_1 ((uint8_t)0x04) /*!< RX Channel Filter Bandwidth = 56.1 kHz */
rosarium 0:2ddc0583bcec 920 #define CHFLT_53 ((uint8_t)0x14) /*!< RX Channel Filter Bandwidth = 53.0 kHz */
rosarium 0:2ddc0583bcec 921 #define CHFLT_50_2 ((uint8_t)0x24) /*!< RX Channel Filter Bandwidth = 50.2 kHz */
rosarium 0:2ddc0583bcec 922 #define CHFLT_47_4 ((uint8_t)0x34) /*!< RX Channel Filter Bandwidth = 47.4 kHz */
rosarium 0:2ddc0583bcec 923 #define CHFLT_45_1 ((uint8_t)0x44) /*!< RX Channel Filter Bandwidth = 45.1 kHz */
rosarium 0:2ddc0583bcec 924 #define CHFLT_42_6 ((uint8_t)0x54) /*!< RX Channel Filter Bandwidth = 42.6 kHz */
rosarium 0:2ddc0583bcec 925 #define CHFLT_40_6 ((uint8_t)0x64) /*!< RX Channel Filter Bandwidth = 40.6 kHz */
rosarium 0:2ddc0583bcec 926 #define CHFLT_36_7 ((uint8_t)0x74) /*!< RX Channel Filter Bandwidth = 36.7 kHz */
rosarium 0:2ddc0583bcec 927 #define CHFLT_33_7 ((uint8_t)0x84) /*!< RX Channel Filter Bandwidth = 33.7 kHz */
rosarium 0:2ddc0583bcec 928 #define CHFLT_28 ((uint8_t)0x05) /*!< RX Channel Filter Bandwidth = 28.0 kHz */
rosarium 0:2ddc0583bcec 929 #define CHFLT_26_5 ((uint8_t)0x15) /*!< RX Channel Filter Bandwidth = 26.5 kHz */
rosarium 0:2ddc0583bcec 930 #define CHFLT_25_1 ((uint8_t)0x25) /*!< RX Channel Filter Bandwidth = 25.1 kHz */
rosarium 0:2ddc0583bcec 931 #define CHFLT_23_7 ((uint8_t)0x35) /*!< RX Channel Filter Bandwidth = 23.7 kHz */
rosarium 0:2ddc0583bcec 932 #define CHFLT_22_6 ((uint8_t)0x45) /*!< RX Channel Filter Bandwidth = 22.6 kHz */
rosarium 0:2ddc0583bcec 933 #define CHFLT_21_3 ((uint8_t)0x55) /*!< RX Channel Filter Bandwidth = 21.3 kHz */
rosarium 0:2ddc0583bcec 934 #define CHFLT_20_3 ((uint8_t)0x65) /*!< RX Channel Filter Bandwidth = 20.3 kHz */
rosarium 0:2ddc0583bcec 935 #define CHFLT_18_4 ((uint8_t)0x75) /*!< RX Channel Filter Bandwidth = 18.4 kHz */
rosarium 0:2ddc0583bcec 936 #define CHFLT_16_9 ((uint8_t)0x85) /*!< RX Channel Filter Bandwidth = 16.9 kHz */
rosarium 0:2ddc0583bcec 937 #define CHFLT_14 ((uint8_t)0x06) /*!< RX Channel Filter Bandwidth = 14.0 kHz */
rosarium 0:2ddc0583bcec 938 #define CHFLT_13_3 ((uint8_t)0x16) /*!< RX Channel Filter Bandwidth = 13.3 kHz */
rosarium 0:2ddc0583bcec 939 #define CHFLT_12_6 ((uint8_t)0x26) /*!< RX Channel Filter Bandwidth = 12.6 kHz */
rosarium 0:2ddc0583bcec 940 #define CHFLT_11_9 ((uint8_t)0x36) /*!< RX Channel Filter Bandwidth = 11.9 kHz */
rosarium 0:2ddc0583bcec 941 #define CHFLT_11_3 ((uint8_t)0x46) /*!< RX Channel Filter Bandwidth = 11.3 kHz */
rosarium 0:2ddc0583bcec 942 #define CHFLT_10_6 ((uint8_t)0x56) /*!< RX Channel Filter Bandwidth = 10.6 kHz */
rosarium 0:2ddc0583bcec 943 #define CHFLT_10_1 ((uint8_t)0x66) /*!< RX Channel Filter Bandwidth = 10.1 kHz */
rosarium 0:2ddc0583bcec 944 #define CHFLT_9_2 ((uint8_t)0x76) /*!< RX Channel Filter Bandwidth = 9.2 kHz */
rosarium 0:2ddc0583bcec 945 #define CHFLT_8_4 ((uint8_t)0x86) /*!< RX Channel Filter Bandwidth = 8.4 kHz */
rosarium 0:2ddc0583bcec 946 #define CHFLT_7 ((uint8_t)0x07) /*!< RX Channel Filter Bandwidth = 7.0 kHz */
rosarium 0:2ddc0583bcec 947 #define CHFLT_6_6 ((uint8_t)0x17) /*!< RX Channel Filter Bandwidth = 6.6 kHz */
rosarium 0:2ddc0583bcec 948 #define CHFLT_6_3 ((uint8_t)0x27) /*!< RX Channel Filter Bandwidth = 6.3 kHz */
rosarium 0:2ddc0583bcec 949 #define CHFLT_5_9 ((uint8_t)0x37) /*!< RX Channel Filter Bandwidth = 5.9 kHz */
rosarium 0:2ddc0583bcec 950 #define CHFLT_5_6 ((uint8_t)0x47) /*!< RX Channel Filter Bandwidth = 5.6 kHz */
rosarium 0:2ddc0583bcec 951 #define CHFLT_5_3 ((uint8_t)0x57) /*!< RX Channel Filter Bandwidth = 5.3 kHz */
rosarium 0:2ddc0583bcec 952 #define CHFLT_5_1 ((uint8_t)0x67) /*!< RX Channel Filter Bandwidth = 5.1 kHz */
rosarium 0:2ddc0583bcec 953 #define CHFLT_4_6 ((uint8_t)0x77) /*!< RX Channel Filter Bandwidth = 4.6 kHz */
rosarium 0:2ddc0583bcec 954 #define CHFLT_4_2 ((uint8_t)0x87) /*!< RX Channel Filter Bandwidth = 4.2 kHz */
rosarium 0:2ddc0583bcec 955 #define CHFLT_3_5 ((uint8_t)0x08) /*!< RX Channel Filter Bandwidth = 3.5 kHz */
rosarium 0:2ddc0583bcec 956 #define CHFLT_3_3 ((uint8_t)0x18) /*!< RX Channel Filter Bandwidth = 3.3 kHz */
rosarium 0:2ddc0583bcec 957 #define CHFLT_3_1 ((uint8_t)0x28) /*!< RX Channel Filter Bandwidth = 3.1 kHz */
rosarium 0:2ddc0583bcec 958 #define CHFLT_3 ((uint8_t)0x38) /*!< RX Channel Filter Bandwidth = 3.0 kHz */
rosarium 0:2ddc0583bcec 959 #define CHFLT_2_8 ((uint8_t)0x48) /*!< RX Channel Filter Bandwidth = 2.8 kHz */
rosarium 0:2ddc0583bcec 960 #define CHFLT_2_7 ((uint8_t)0x58) /*!< RX Channel Filter Bandwidth = 2.7 kHz */
rosarium 0:2ddc0583bcec 961 #define CHFLT_2_5 ((uint8_t)0x68) /*!< RX Channel Filter Bandwidth = 2.5 kHz */
rosarium 0:2ddc0583bcec 962 #define CHFLT_2_3 ((uint8_t)0x78) /*!< RX Channel Filter Bandwidth = 2.3 kHz */
rosarium 0:2ddc0583bcec 963 #define CHFLT_2_1 ((uint8_t)0x88) /*!< RX Channel Filter Bandwidth = 2.1 kHz */
rosarium 0:2ddc0583bcec 964 #define CHFLT_1_8 ((uint8_t)0x09) /*!< RX Channel Filter Bandwidth = 1.8 kHz */
rosarium 0:2ddc0583bcec 965 #define CHFLT_1_7 ((uint8_t)0x19) /*!< RX Channel Filter Bandwidth = 1.7 kHz */
rosarium 0:2ddc0583bcec 966 #define CHFLT_1_6 ((uint8_t)0x29) /*!< RX Channel Filter Bandwidth = 1.6 kHz */
rosarium 0:2ddc0583bcec 967 #define CHFLT_1_5 ((uint8_t)0x39) /*!< RX Channel Filter Bandwidth = 1.5 kHz */
rosarium 0:2ddc0583bcec 968 #define CHFLT_1_4 ((uint8_t)0x49) /*!< RX Channel Filter Bandwidth = 1.4 kHz */
rosarium 0:2ddc0583bcec 969 #define CHFLT_1_3a ((uint8_t)0x59) /*!< RX Channel Filter Bandwidth = 1.3 kHz */
rosarium 0:2ddc0583bcec 970 #define CHFLT_1_3 ((uint8_t)0x69) /*!< RX Channel Filter Bandwidth = 1.3 kHz */
rosarium 0:2ddc0583bcec 971 #define CHFLT_1_2 ((uint8_t)0x79) /*!< RX Channel Filter Bandwidth = 1.2 kHz */
rosarium 0:2ddc0583bcec 972 #define CHFLT_1_1 ((uint8_t)0x89) /*!< RX Channel Filter Bandwidth = 1.1 kHz */
rosarium 0:2ddc0583bcec 973
rosarium 0:2ddc0583bcec 974 /**
rosarium 0:2ddc0583bcec 975 * @}
rosarium 0:2ddc0583bcec 976 */
rosarium 0:2ddc0583bcec 977
rosarium 0:2ddc0583bcec 978 /** @defgroup AFC2_Register
rosarium 0:2ddc0583bcec 979 * @{
rosarium 0:2ddc0583bcec 980 */
rosarium 0:2ddc0583bcec 981
rosarium 0:2ddc0583bcec 982 /**
rosarium 0:2ddc0583bcec 983 * \brief AFC2 register
rosarium 0:2ddc0583bcec 984 * \code
rosarium 0:2ddc0583bcec 985 * Read Write
rosarium 0:2ddc0583bcec 986 * Default value: 0x48
rosarium 0:2ddc0583bcec 987 * 7 AFC Freeze on Sync: Freeze AFC correction upon sync word detection.
rosarium 0:2ddc0583bcec 988 * 1 - AFC Freeze enabled
rosarium 0:2ddc0583bcec 989 * 0 - AFC Freeze disabled
rosarium 0:2ddc0583bcec 990 *
rosarium 0:2ddc0583bcec 991 * 6 AFC Enabled: Enable AFC
rosarium 0:2ddc0583bcec 992 * 1 - AFC enabled
rosarium 0:2ddc0583bcec 993 * 0 - AFC disabled
rosarium 0:2ddc0583bcec 994 *
rosarium 0:2ddc0583bcec 995 * 5 AFC Mode: Select AFC mode
rosarium 0:2ddc0583bcec 996 * 1 - AFC Loop closed on 2nd conversion stage.
rosarium 0:2ddc0583bcec 997 * 0 - AFC Loop closed on slicer
rosarium 0:2ddc0583bcec 998 *
rosarium 0:2ddc0583bcec 999 * 4:0 AFC PD leakage[4:0]: Peak detector leakage. This parameter sets the decay speed of the min/max frequency peak detector (AFC2 register),
rosarium 0:2ddc0583bcec 1000 * the range allowed is 0..31 (0 - no leakage, 31 - high leakage). The recommended value for this parameter is 4.
rosarium 0:2ddc0583bcec 1001 *
rosarium 0:2ddc0583bcec 1002 * \endcode
rosarium 0:2ddc0583bcec 1003 */
rosarium 0:2ddc0583bcec 1004 #define AFC2_BASE ((uint8_t)0x1E) /*!< Automatic frequency compensation algorithm parameters (FSK/GFSK/MSK)*/
rosarium 0:2ddc0583bcec 1005
rosarium 0:2ddc0583bcec 1006 #define AFC2_AFC_FREEZE_ON_SYNC_MASK ((uint8_t)0x80) /*!< The frequency correction value is frozen when SYNC word is detected */
rosarium 0:2ddc0583bcec 1007 #define AFC2_AFC_MASK ((uint8_t)0x40) /*!< Mask of Automatic Frequency Correction */
rosarium 0:2ddc0583bcec 1008 #define AFC2_AFC_MODE_MASK ((uint8_t)0x20) /*!< Automatic Frequency Correction can be in Main MODE or Auxiliary MODE*/
rosarium 0:2ddc0583bcec 1009 #define AFC2_AFC_MODE_SLICER ((uint8_t)0x00) /*!< Automatic Frequency Correction Main MODE */
rosarium 0:2ddc0583bcec 1010 #define AFC2_AFC_MODE_MIXER ((uint8_t)0x20) /*!< Automatic Frequency Correction Auxiliary MODE */
rosarium 0:2ddc0583bcec 1011
rosarium 0:2ddc0583bcec 1012 /**
rosarium 0:2ddc0583bcec 1013 * @}
rosarium 0:2ddc0583bcec 1014 */
rosarium 0:2ddc0583bcec 1015
rosarium 0:2ddc0583bcec 1016 /** @defgroup AFC1_Register
rosarium 0:2ddc0583bcec 1017 * @{
rosarium 0:2ddc0583bcec 1018 */
rosarium 0:2ddc0583bcec 1019
rosarium 0:2ddc0583bcec 1020 /**
rosarium 0:2ddc0583bcec 1021 * \brief AFC1 register
rosarium 0:2ddc0583bcec 1022 * \code
rosarium 0:2ddc0583bcec 1023 * Read Write
rosarium 0:2ddc0583bcec 1024 * Default value: 0x18
rosarium 0:2ddc0583bcec 1025 * 7:0 AFC_FAST_PERIOD: Length of the AFC fast period. this parameter sets the length of the fast period in number of samples (AFC1 register), the range allowed
rosarium 0:2ddc0583bcec 1026 * is 0..255. The recommended setting for this parameter is such that the fast period equals the preamble length. Since the
rosarium 0:2ddc0583bcec 1027 * algorithm operates typically on 2 samples per symbol, the programmed value should be twice the number of preamble
rosarium 0:2ddc0583bcec 1028 * symbols.
rosarium 0:2ddc0583bcec 1029 *
rosarium 0:2ddc0583bcec 1030 * \endcode
rosarium 0:2ddc0583bcec 1031 */
rosarium 0:2ddc0583bcec 1032 #define AFC1_BASE ((uint8_t)0x1F) /*!< Length of the AFC fast period */
rosarium 0:2ddc0583bcec 1033
rosarium 0:2ddc0583bcec 1034 /**
rosarium 0:2ddc0583bcec 1035 * @}
rosarium 0:2ddc0583bcec 1036 */
rosarium 0:2ddc0583bcec 1037
rosarium 0:2ddc0583bcec 1038 /** @defgroup AFC0_Register
rosarium 0:2ddc0583bcec 1039 * @{
rosarium 0:2ddc0583bcec 1040 */
rosarium 0:2ddc0583bcec 1041
rosarium 0:2ddc0583bcec 1042 /**
rosarium 0:2ddc0583bcec 1043 * \brief AFC0 register
rosarium 0:2ddc0583bcec 1044 * \code
rosarium 0:2ddc0583bcec 1045 * Read Write
rosarium 0:2ddc0583bcec 1046 * Default value: 0x25
rosarium 0:2ddc0583bcec 1047 * 7:4 AFC_FAST_GAIN_LOG2[3:0]: AFC loop gain in fast mode (2's log)
rosarium 0:2ddc0583bcec 1048 *
rosarium 0:2ddc0583bcec 1049 * 3:0 AFC_SLOW_GAIN_LOG2[3:0]: AFC loop gain in slow mode (2's log)
rosarium 0:2ddc0583bcec 1050 *
rosarium 0:2ddc0583bcec 1051 * \endcode
rosarium 0:2ddc0583bcec 1052 */
rosarium 0:2ddc0583bcec 1053 #define AFC0_BASE ((uint8_t)0x20) /*!< AFC loop gain in fast and slow modes (2's log) */
rosarium 0:2ddc0583bcec 1054
rosarium 0:2ddc0583bcec 1055 /**
rosarium 0:2ddc0583bcec 1056 * @}
rosarium 0:2ddc0583bcec 1057 */
rosarium 0:2ddc0583bcec 1058
rosarium 0:2ddc0583bcec 1059 /** @defgroup CLOCKREC_Register
rosarium 0:2ddc0583bcec 1060 * @{
rosarium 0:2ddc0583bcec 1061 */
rosarium 0:2ddc0583bcec 1062
rosarium 0:2ddc0583bcec 1063 /**
rosarium 0:2ddc0583bcec 1064 * \brief CLOCKREC register
rosarium 0:2ddc0583bcec 1065 * \code
rosarium 0:2ddc0583bcec 1066 * Read Write
rosarium 0:2ddc0583bcec 1067 * Default value: 0x58
rosarium 0:2ddc0583bcec 1068 *
rosarium 0:2ddc0583bcec 1069 * 7:5 CLK_REC_P_GAIN [2:0]: Clock recovery loop gain (log2)
rosarium 0:2ddc0583bcec 1070 *
rosarium 0:2ddc0583bcec 1071 * 4 PSTFLT_LEN: Set Postfilter length
rosarium 0:2ddc0583bcec 1072 * 1 - 16 symbols
rosarium 0:2ddc0583bcec 1073 * 0 - 8 symbols
rosarium 0:2ddc0583bcec 1074 *
rosarium 0:2ddc0583bcec 1075 * 3:0 CLK_REC_I_GAIN[3:0]: Integral gain for the clock recovery loop
rosarium 0:2ddc0583bcec 1076 * \endcode
rosarium 0:2ddc0583bcec 1077 */
rosarium 0:2ddc0583bcec 1078
rosarium 0:2ddc0583bcec 1079 #define CLOCKREC_BASE ((uint8_t)0x23) /*!< Gain of clock recovery loop - Postfilter length 0-8 symbols, 1-16 symbols */
rosarium 0:2ddc0583bcec 1080
rosarium 0:2ddc0583bcec 1081 /**
rosarium 0:2ddc0583bcec 1082 * @}
rosarium 0:2ddc0583bcec 1083 */
rosarium 0:2ddc0583bcec 1084
rosarium 0:2ddc0583bcec 1085 /** @defgroup AGCCTRL2_Register
rosarium 0:2ddc0583bcec 1086 * @{
rosarium 0:2ddc0583bcec 1087 */
rosarium 0:2ddc0583bcec 1088
rosarium 0:2ddc0583bcec 1089 /**
rosarium 0:2ddc0583bcec 1090 * \brief AGCCTRL2 register
rosarium 0:2ddc0583bcec 1091 * \code
rosarium 0:2ddc0583bcec 1092 * Read Write
rosarium 0:2ddc0583bcec 1093 * Default value: 0x22
rosarium 0:2ddc0583bcec 1094 *
rosarium 0:2ddc0583bcec 1095 * 7 Reserved
rosarium 0:2ddc0583bcec 1096 *
rosarium 0:2ddc0583bcec 1097 * 6 FREEZE_ON_STEADY: Enable freezing on steady state
rosarium 0:2ddc0583bcec 1098 * 1 - Enable
rosarium 0:2ddc0583bcec 1099 * 0 - Disable
rosarium 0:2ddc0583bcec 1100 *
rosarium 0:2ddc0583bcec 1101 * 5 FREEZE_ON_SYNC: Enable freezing on sync detection
rosarium 0:2ddc0583bcec 1102 * 1 - Enable
rosarium 0:2ddc0583bcec 1103 * 0 - Disable
rosarium 0:2ddc0583bcec 1104 *
rosarium 0:2ddc0583bcec 1105 * 4 START_MAX_ATTENUATION: Start with max attenuation
rosarium 0:2ddc0583bcec 1106 * 1 - Enable
rosarium 0:2ddc0583bcec 1107 * 0 - Disable
rosarium 0:2ddc0583bcec 1108 *
rosarium 0:2ddc0583bcec 1109 * 3:0 MEAS_TIME[3:0]: Measure time during which the signal peak is detected (according to the formula 12/fxo*2^MEAS_TIME)
rosarium 0:2ddc0583bcec 1110 * \endcode
rosarium 0:2ddc0583bcec 1111 */
rosarium 0:2ddc0583bcec 1112 #define AGCCTRL2_BASE ((uint8_t)0x24) /*!< AGC freeze strategy, AGC attenuation strategy, AGC measure time */
rosarium 0:2ddc0583bcec 1113
rosarium 0:2ddc0583bcec 1114 #define AGCCTRL2_FREEZE_ON_STEADY_MASK ((uint8_t)0x40) /*!< The attenuation settings will be frozen as soon as signal level
rosarium 0:2ddc0583bcec 1115 is betweeen min and max treshold (see AGCCTRL1) */
rosarium 0:2ddc0583bcec 1116 #define AGCCTRL2_FREEZE_ON_SYNC_MASK ((uint8_t)0x20) /*!< The attenuation settings will be frozen as soon sync word is detected */
rosarium 0:2ddc0583bcec 1117 #define AGCCTRL2_START_MAX_ATTENUATION_MASK ((uint8_t)0x10) /*!< The AGC algorithm can start with MAX attenuation or MIN attenuation */
rosarium 0:2ddc0583bcec 1118
rosarium 0:2ddc0583bcec 1119 /**
rosarium 0:2ddc0583bcec 1120 * @}
rosarium 0:2ddc0583bcec 1121 */
rosarium 0:2ddc0583bcec 1122
rosarium 0:2ddc0583bcec 1123 /** @defgroup AGCCTRL1_Register
rosarium 0:2ddc0583bcec 1124 * @{
rosarium 0:2ddc0583bcec 1125 */
rosarium 0:2ddc0583bcec 1126
rosarium 0:2ddc0583bcec 1127 /**
rosarium 0:2ddc0583bcec 1128 * \brief AGCCTRL1 register
rosarium 0:2ddc0583bcec 1129 * \code
rosarium 0:2ddc0583bcec 1130 * Read Write
rosarium 0:2ddc0583bcec 1131 * Default value: 0x65
rosarium 0:2ddc0583bcec 1132 *
rosarium 0:2ddc0583bcec 1133 * 7:4 THRESHOLD_HIGH[3:0]: High threshold for the AGC
rosarium 0:2ddc0583bcec 1134 *
rosarium 0:2ddc0583bcec 1135 * 3:0 THRESHOLD_LOW[3:0]: Low threshold for the AGC
rosarium 0:2ddc0583bcec 1136 * \endcode
rosarium 0:2ddc0583bcec 1137 */
rosarium 0:2ddc0583bcec 1138 #define AGCCTRL1_BASE ((uint8_t)0x25) /*!< Sets low and high threshold for AGC */
rosarium 0:2ddc0583bcec 1139
rosarium 0:2ddc0583bcec 1140 /**
rosarium 0:2ddc0583bcec 1141 * @}
rosarium 0:2ddc0583bcec 1142 */
rosarium 0:2ddc0583bcec 1143
rosarium 0:2ddc0583bcec 1144 /** @defgroup AGCCTRL0_Register
rosarium 0:2ddc0583bcec 1145 * @{
rosarium 0:2ddc0583bcec 1146 */
rosarium 0:2ddc0583bcec 1147
rosarium 0:2ddc0583bcec 1148 /**
rosarium 0:2ddc0583bcec 1149 * \brief AGCCTRL0 register
rosarium 0:2ddc0583bcec 1150 * \code
rosarium 0:2ddc0583bcec 1151 * Read Write
rosarium 0:2ddc0583bcec 1152 * Default value: 0x8A
rosarium 0:2ddc0583bcec 1153 *
rosarium 0:2ddc0583bcec 1154 * 7 AGC S_ENABLE: Enable AGC
rosarium 0:2ddc0583bcec 1155 * 1 - Enable
rosarium 0:2ddc0583bcec 1156 * 0 - Disable
rosarium 0:2ddc0583bcec 1157 *
rosarium 0:2ddc0583bcec 1158 * 6 AGC_MODE: Set linear-Binary AGC mode
rosarium 0:2ddc0583bcec 1159 * 1 - Enable
rosarium 0:2ddc0583bcec 1160 * 0 - Disable
rosarium 0:2ddc0583bcec 1161 *
rosarium 0:2ddc0583bcec 1162 * 5:0 HOLD_TIME[5:0]: Hold time after gain adjustment according to formula 12/fxo*HOLD_TIME
rosarium 0:2ddc0583bcec 1163 * \endcode
rosarium 0:2ddc0583bcec 1164 */
rosarium 0:2ddc0583bcec 1165 #define AGCCTRL0_BASE ((uint8_t)0x26) /*!< Enables AGC, set AGC algo between linear/binary mode, set hold time
rosarium 0:2ddc0583bcec 1166 to account signal propagation through RX chain */
rosarium 0:2ddc0583bcec 1167 #define AGCCTRL0_AGC_MASK ((uint8_t)0x80) /*!< AGC on/off */
rosarium 0:2ddc0583bcec 1168 #define AGCCTRL0_AGC_MODE_MASK ((uint8_t)0x40) /*!< AGC search correct attenuation in binary mode or sequential mode */
rosarium 0:2ddc0583bcec 1169 #define AGCCTRL0_AGC_MODE_LINEAR ((uint8_t)0x00) /*!< AGC search correct attenuation in sequential mode (recommended) */
rosarium 0:2ddc0583bcec 1170 #define AGCCTRL0_AGC_MODE_BINARY ((uint8_t)0x40) /*!< AGC search correct attenuation in binary mode */
rosarium 0:2ddc0583bcec 1171
rosarium 0:2ddc0583bcec 1172 /**
rosarium 0:2ddc0583bcec 1173 * @}
rosarium 0:2ddc0583bcec 1174 */
rosarium 0:2ddc0583bcec 1175
rosarium 0:2ddc0583bcec 1176 /** @defgroup CHNUM_Register
rosarium 0:2ddc0583bcec 1177 * @{
rosarium 0:2ddc0583bcec 1178 */
rosarium 0:2ddc0583bcec 1179
rosarium 0:2ddc0583bcec 1180 /**
rosarium 0:2ddc0583bcec 1181 * \brief CHNUM registers
rosarium 0:2ddc0583bcec 1182 * \code
rosarium 0:2ddc0583bcec 1183 * Default value: 0x00
rosarium 0:2ddc0583bcec 1184 * Read Write
rosarium 0:2ddc0583bcec 1185 * 7:0 CH_NUM[7:0]: Channel number. This value is multiplied by the channel spacing and added to the
rosarium 0:2ddc0583bcec 1186 * synthesizer base frequency to generate the actual RF carrier frequency.
rosarium 0:2ddc0583bcec 1187 * \endcode
rosarium 0:2ddc0583bcec 1188 */
rosarium 0:2ddc0583bcec 1189 #define CHNUM_BASE ((uint8_t)0x6C) /*!< Channel number. This value is multiplied by the channel
rosarium 0:2ddc0583bcec 1190 spacing and added to the synthesizer base frequency to generate the actual RF carrier frequency */
rosarium 0:2ddc0583bcec 1191 /**
rosarium 0:2ddc0583bcec 1192 * @}
rosarium 0:2ddc0583bcec 1193 */
rosarium 0:2ddc0583bcec 1194
rosarium 0:2ddc0583bcec 1195 /** @defgroup AFC_CORR_Register
rosarium 0:2ddc0583bcec 1196 * @{
rosarium 0:2ddc0583bcec 1197 */
rosarium 0:2ddc0583bcec 1198
rosarium 0:2ddc0583bcec 1199 /**
rosarium 0:2ddc0583bcec 1200 * \brief AFC_CORR registers
rosarium 0:2ddc0583bcec 1201 * \code
rosarium 0:2ddc0583bcec 1202 * Default value: 0x00
rosarium 0:2ddc0583bcec 1203 * Read
rosarium 0:2ddc0583bcec 1204 *
rosarium 0:2ddc0583bcec 1205 * 7:0 AFC_CORR[7:0]: AFC word of the received packet
rosarium 0:2ddc0583bcec 1206 * \endcode
rosarium 0:2ddc0583bcec 1207 */
rosarium 0:2ddc0583bcec 1208 #define AFC_CORR_BASE ((uint8_t)(0xC4)) /*!< AFC word of the received packet */
rosarium 0:2ddc0583bcec 1209
rosarium 0:2ddc0583bcec 1210 /**
rosarium 0:2ddc0583bcec 1211 * @}
rosarium 0:2ddc0583bcec 1212 */
rosarium 0:2ddc0583bcec 1213
rosarium 0:2ddc0583bcec 1214 /**
rosarium 0:2ddc0583bcec 1215 * @}
rosarium 0:2ddc0583bcec 1216 */
rosarium 0:2ddc0583bcec 1217
rosarium 0:2ddc0583bcec 1218
rosarium 0:2ddc0583bcec 1219 /** @defgroup Packet_Configuration_Registers
rosarium 0:2ddc0583bcec 1220 * @{
rosarium 0:2ddc0583bcec 1221 */
rosarium 0:2ddc0583bcec 1222
rosarium 0:2ddc0583bcec 1223 /** @defgroup PCKTCTRL4_Register
rosarium 0:2ddc0583bcec 1224 * @{
rosarium 0:2ddc0583bcec 1225 */
rosarium 0:2ddc0583bcec 1226
rosarium 0:2ddc0583bcec 1227 /**
rosarium 0:2ddc0583bcec 1228 * \brief PCKTCTRL4 register
rosarium 0:2ddc0583bcec 1229 * \code
rosarium 0:2ddc0583bcec 1230 * Read Write
rosarium 0:2ddc0583bcec 1231 * Default value: 0x00
rosarium 0:2ddc0583bcec 1232 *
rosarium 0:2ddc0583bcec 1233 * 7:5 NOT_USED.
rosarium 0:2ddc0583bcec 1234 *
rosarium 0:2ddc0583bcec 1235 * 4:3 ADDRESS_LEN[1:0]: length of address field in bytes
rosarium 0:2ddc0583bcec 1236 *
rosarium 0:2ddc0583bcec 1237 * 2:0 control_len[2:0]: length of control field in bytes
rosarium 0:2ddc0583bcec 1238 * \endcode
rosarium 0:2ddc0583bcec 1239 */
rosarium 0:2ddc0583bcec 1240 #define PCKTCTRL4_BASE ((uint8_t)0x30) /*!< lenghts of address and control field */
rosarium 0:2ddc0583bcec 1241
rosarium 0:2ddc0583bcec 1242 #define PCKTCTRL4_ADDRESS_LEN_MASK ((uint8_t)0x18)
rosarium 0:2ddc0583bcec 1243 #define PCKTCTRL4_CONTROL_LEN_MASK ((uint8_t)0x07)
rosarium 0:2ddc0583bcec 1244
rosarium 0:2ddc0583bcec 1245 /**
rosarium 0:2ddc0583bcec 1246 * @}
rosarium 0:2ddc0583bcec 1247 */
rosarium 0:2ddc0583bcec 1248
rosarium 0:2ddc0583bcec 1249 /** @defgroup PCKTCTRL3_Register
rosarium 0:2ddc0583bcec 1250 * @{
rosarium 0:2ddc0583bcec 1251 */
rosarium 0:2ddc0583bcec 1252
rosarium 0:2ddc0583bcec 1253 /**
rosarium 0:2ddc0583bcec 1254 * \brief PCKTCTRL3 register
rosarium 0:2ddc0583bcec 1255 * \code
rosarium 0:2ddc0583bcec 1256 * Read Write
rosarium 0:2ddc0583bcec 1257 * Default value: 0x07
rosarium 0:2ddc0583bcec 1258 *
rosarium 0:2ddc0583bcec 1259 * 7:6 PCKT_FRMT[1:0]: format of packet
rosarium 0:2ddc0583bcec 1260 *
rosarium 0:2ddc0583bcec 1261 * PCKT_FRMT1 | PCKT_FRMT0 | Format
rosarium 0:2ddc0583bcec 1262 * ----------------------------------------------------------------------
rosarium 0:2ddc0583bcec 1263 * 0 | 0 | BASIC
rosarium 0:2ddc0583bcec 1264 * 1 | 0 | MBUS
rosarium 0:2ddc0583bcec 1265 * 1 | 1 | STACK
rosarium 0:2ddc0583bcec 1266 *
rosarium 0:2ddc0583bcec 1267 * 5:4 RX_MODE[1:0]: length of address 0x30 field in bytes
rosarium 0:2ddc0583bcec 1268 *
rosarium 0:2ddc0583bcec 1269 * RX_MODE1 | RX_MODE0 | Rx Mode
rosarium 0:2ddc0583bcec 1270 * --------------------------------------------------------------------
rosarium 0:2ddc0583bcec 1271 * 0 | 0 | normal
rosarium 0:2ddc0583bcec 1272 * 0 | 1 | direct through FIFO
rosarium 0:2ddc0583bcec 1273 * 1 | 0 | direct through GPIO
rosarium 0:2ddc0583bcec 1274 *
rosarium 0:2ddc0583bcec 1275 * 3:0 LEN_WID[3:0]: length of length field in bits
rosarium 0:2ddc0583bcec 1276 * \endcode
rosarium 0:2ddc0583bcec 1277 */
rosarium 0:2ddc0583bcec 1278 #define PCKTCTRL3_BASE ((uint8_t)0x31) /*!< packet format, RX mode, lenght of length field */
rosarium 0:2ddc0583bcec 1279
rosarium 0:2ddc0583bcec 1280 #define PCKTCTRL3_PCKT_FRMT_BASIC ((uint8_t)0x00) /*!< Basic Packet Format */
rosarium 0:2ddc0583bcec 1281 #define PCKTCTRL3_PCKT_FRMT_MBUS ((uint8_t)0x80) /*!< Wireless M-BUS Packet Format */
rosarium 0:2ddc0583bcec 1282 #define PCKTCTRL3_PCKT_FRMT_STACK ((uint8_t)0xC0) /*!< STack Packet Format */
rosarium 0:2ddc0583bcec 1283
rosarium 0:2ddc0583bcec 1284 #define PCKTCTRL3_RX_MODE_NORMAL ((uint8_t)0x00) /*!< Normal RX Mode */
rosarium 0:2ddc0583bcec 1285 #define PCKTCTRL3_RX_MODE_DIRECT_FIFO ((uint8_t)0x10) /*!< RX Direct Mode; data available through FIFO */
rosarium 0:2ddc0583bcec 1286 #define PCKTCTRL3_RX_MODE_DIRECT_GPIO ((uint8_t)0x20) /*!< RX Direct Mode; data available through selected GPIO */
rosarium 0:2ddc0583bcec 1287
rosarium 0:2ddc0583bcec 1288 #define PCKTCTRL3_PKT_FRMT_MASK ((uint8_t)0xC0)
rosarium 0:2ddc0583bcec 1289 #define PCKTCTRL3_RX_MODE_MASK ((uint8_t)0x30)
rosarium 0:2ddc0583bcec 1290 #define PCKTCTRL3_LEN_WID_MASK ((uint8_t)0x0F)
rosarium 0:2ddc0583bcec 1291
rosarium 0:2ddc0583bcec 1292 /**
rosarium 0:2ddc0583bcec 1293 * @}
rosarium 0:2ddc0583bcec 1294 */
rosarium 0:2ddc0583bcec 1295
rosarium 0:2ddc0583bcec 1296 /** @defgroup PCKTCTRL2_Register
rosarium 0:2ddc0583bcec 1297 * @{
rosarium 0:2ddc0583bcec 1298 */
rosarium 0:2ddc0583bcec 1299
rosarium 0:2ddc0583bcec 1300 /**
rosarium 0:2ddc0583bcec 1301 * \brief PCKTCTRL2 register
rosarium 0:2ddc0583bcec 1302 * \code
rosarium 0:2ddc0583bcec 1303 * Read Write
rosarium 0:2ddc0583bcec 1304 * Default value: 0x1E
rosarium 0:2ddc0583bcec 1305 *
rosarium 0:2ddc0583bcec 1306 * 7:3 PREAMBLE_LENGTH[4:0]: length of preamble field in bytes (0..31)
rosarium 0:2ddc0583bcec 1307 *
rosarium 0:2ddc0583bcec 1308 *
rosarium 0:2ddc0583bcec 1309 * 2:1 SYNC_LENGTH[1:0]: length of sync field in bytes
rosarium 0:2ddc0583bcec 1310 *
rosarium 0:2ddc0583bcec 1311 *
rosarium 0:2ddc0583bcec 1312 * 0 FIX_VAR_LEN: fixed/variable packet length
rosarium 0:2ddc0583bcec 1313 * 1 - Variable
rosarium 0:2ddc0583bcec 1314 * 0 - Fixed
rosarium 0:2ddc0583bcec 1315 * \endcode
rosarium 0:2ddc0583bcec 1316 */
rosarium 0:2ddc0583bcec 1317 #define PCKTCTRL2_BASE ((uint8_t)0x32) /*!< length of preamble and sync fields (in bytes), fix or variable packet length */
rosarium 0:2ddc0583bcec 1318
rosarium 0:2ddc0583bcec 1319 #define PCKTCTRL2_FIX_VAR_LEN_MASK ((uint8_t)0x01) /*!< Enable/disable the length mode */
rosarium 0:2ddc0583bcec 1320 #define PCKTCTRL2_PREAMBLE_LENGTH_MASK ((uint8_t)0xF8)
rosarium 0:2ddc0583bcec 1321 #define PCKTCTRL2_SYNC_LENGTH_MASK ((uint8_t)0x06)
rosarium 0:2ddc0583bcec 1322
rosarium 0:2ddc0583bcec 1323 /**
rosarium 0:2ddc0583bcec 1324 * @}
rosarium 0:2ddc0583bcec 1325 */
rosarium 0:2ddc0583bcec 1326
rosarium 0:2ddc0583bcec 1327 /** @defgroup PCKTCTRL1_Register
rosarium 0:2ddc0583bcec 1328 * @{
rosarium 0:2ddc0583bcec 1329 */
rosarium 0:2ddc0583bcec 1330
rosarium 0:2ddc0583bcec 1331 /**
rosarium 0:2ddc0583bcec 1332 * \brief PCKTCTRL1 register
rosarium 0:2ddc0583bcec 1333 * \code
rosarium 0:2ddc0583bcec 1334 * Read Write
rosarium 0:2ddc0583bcec 1335 * Default value: 0x20
rosarium 0:2ddc0583bcec 1336 *
rosarium 0:2ddc0583bcec 1337 * 7:5 CRC_MODE[2:0]: CRC type (0, 8, 16, 24 bits)
rosarium 0:2ddc0583bcec 1338 *
rosarium 0:2ddc0583bcec 1339 * CRC_MODE2 | CRC_MODE1 | CRC_MODE0 | CRC Mode (n. bits - poly)
rosarium 0:2ddc0583bcec 1340 * -------------------------------------------------------------------------------------------------
rosarium 0:2ddc0583bcec 1341 * 0 | 0 | 1 | 8 - 0x07
rosarium 0:2ddc0583bcec 1342 * 0 | 1 | 0 | 16 - 0x8005
rosarium 0:2ddc0583bcec 1343 * 0 | 1 | 1 | 16 - 0x1021
rosarium 0:2ddc0583bcec 1344 * 1 | 0 | 0 | 24 - 0x864CBF
rosarium 0:2ddc0583bcec 1345 *
rosarium 0:2ddc0583bcec 1346 * 4 WHIT_EN[0]: Enable Whitening
rosarium 0:2ddc0583bcec 1347 * 1 - Enable
rosarium 0:2ddc0583bcec 1348 * 0 - Disable
rosarium 0:2ddc0583bcec 1349 *
rosarium 0:2ddc0583bcec 1350 * 3:2 TX_SOURCE[1:0]: length of sync field in bytes
rosarium 0:2ddc0583bcec 1351 *
rosarium 0:2ddc0583bcec 1352 * TX_SOURCE1 | TX_SOURCE0 | Tx Mode
rosarium 0:2ddc0583bcec 1353 * --------------------------------------------------------------------
rosarium 0:2ddc0583bcec 1354 * 0 | 0 | normal
rosarium 0:2ddc0583bcec 1355 * 0 | 1 | direct through FIFO
rosarium 0:2ddc0583bcec 1356 * 1 | 0 | direct through GPIO
rosarium 0:2ddc0583bcec 1357 * 1 | 1 | pn9
rosarium 0:2ddc0583bcec 1358 *
rosarium 0:2ddc0583bcec 1359 * 1 NOT_USED
rosarium 0:2ddc0583bcec 1360 *
rosarium 0:2ddc0583bcec 1361 * 0 FEC_EN: enable FEC
rosarium 0:2ddc0583bcec 1362 * 1 - FEC in TX , Viterbi decoding in RX
rosarium 0:2ddc0583bcec 1363 * 0 - Disabled
rosarium 0:2ddc0583bcec 1364 * \endcode
rosarium 0:2ddc0583bcec 1365 */
rosarium 0:2ddc0583bcec 1366 #define PCKTCTRL1_BASE ((uint8_t)0x33) /*!< CRC type, whitening enable, TX mode */
rosarium 0:2ddc0583bcec 1367
rosarium 0:2ddc0583bcec 1368 #define PCKTCTRL1_FEC_MASK ((uint8_t)0x01) /*!< Enable/disable the Forward Error Correction */
rosarium 0:2ddc0583bcec 1369 #define PCKTCTRL1_TX_SOURCE_MASK ((uint8_t)0x0C) /*!< TX source mode */
rosarium 0:2ddc0583bcec 1370 #define PCKTCTRL1_CRC_MODE_MASK ((uint8_t)0xE0) /*!< CRC type */
rosarium 0:2ddc0583bcec 1371 #define PCKTCTRL1_WHIT_MASK ((uint8_t)0x10) /*!< Enable/disable the Whitening */
rosarium 0:2ddc0583bcec 1372
rosarium 0:2ddc0583bcec 1373 /**
rosarium 0:2ddc0583bcec 1374 * @}
rosarium 0:2ddc0583bcec 1375 */
rosarium 0:2ddc0583bcec 1376
rosarium 0:2ddc0583bcec 1377
rosarium 0:2ddc0583bcec 1378
rosarium 0:2ddc0583bcec 1379 /** @defgroup PCKTLEN1_Register
rosarium 0:2ddc0583bcec 1380 * @{
rosarium 0:2ddc0583bcec 1381 */
rosarium 0:2ddc0583bcec 1382
rosarium 0:2ddc0583bcec 1383 /**
rosarium 0:2ddc0583bcec 1384 * \brief PCKTLEN1 register
rosarium 0:2ddc0583bcec 1385 * \code
rosarium 0:2ddc0583bcec 1386 * Read Write
rosarium 0:2ddc0583bcec 1387 * Default value: 0x00
rosarium 0:2ddc0583bcec 1388 *
rosarium 0:2ddc0583bcec 1389 * 7:0 pktlen1[7:0]: lenght of packet in bytes (upper field) LENGHT/256
rosarium 0:2ddc0583bcec 1390 * \endcode
rosarium 0:2ddc0583bcec 1391 */
rosarium 0:2ddc0583bcec 1392 #define PCKTLEN1_BASE ((uint8_t)0x34) /*!< lenght of packet in bytes (upper field) */
rosarium 0:2ddc0583bcec 1393
rosarium 0:2ddc0583bcec 1394 /**
rosarium 0:2ddc0583bcec 1395 * @}
rosarium 0:2ddc0583bcec 1396 */
rosarium 0:2ddc0583bcec 1397
rosarium 0:2ddc0583bcec 1398 /** @defgroup PCKTLEN0_Register
rosarium 0:2ddc0583bcec 1399 * @{
rosarium 0:2ddc0583bcec 1400 */
rosarium 0:2ddc0583bcec 1401
rosarium 0:2ddc0583bcec 1402 /**
rosarium 0:2ddc0583bcec 1403 * \brief PCKTLEN0 register
rosarium 0:2ddc0583bcec 1404 * \code
rosarium 0:2ddc0583bcec 1405 * Read Write
rosarium 0:2ddc0583bcec 1406 * Default value: 0x14
rosarium 0:2ddc0583bcec 1407 *
rosarium 0:2ddc0583bcec 1408 * 7:0 pktlen0[7:0]: lenght of packet in bytes (lower field) LENGHT%256
rosarium 0:2ddc0583bcec 1409 * \endcode
rosarium 0:2ddc0583bcec 1410 */
rosarium 0:2ddc0583bcec 1411 #define PCKTLEN0_BASE ((uint8_t)0x35) /*!< lenght of packet in bytes (lower field) [PCKTLEN=PCKTLEN1x256+PCKTLEN0]*/
rosarium 0:2ddc0583bcec 1412
rosarium 0:2ddc0583bcec 1413 /**
rosarium 0:2ddc0583bcec 1414 * @}
rosarium 0:2ddc0583bcec 1415 */
rosarium 0:2ddc0583bcec 1416
rosarium 0:2ddc0583bcec 1417 /** @defgroup SYNCx_Registers
rosarium 0:2ddc0583bcec 1418 * @{
rosarium 0:2ddc0583bcec 1419 */
rosarium 0:2ddc0583bcec 1420 /**
rosarium 0:2ddc0583bcec 1421 * \brief SYNCx[4:1] Registers
rosarium 0:2ddc0583bcec 1422 * \code
rosarium 0:2ddc0583bcec 1423 * Read Write
rosarium 0:2ddc0583bcec 1424 * Default value: 0x88
rosarium 0:2ddc0583bcec 1425 *
rosarium 0:2ddc0583bcec 1426 * 7:0 SYNCx[7:0]: xth sync word
rosarium 0:2ddc0583bcec 1427 * \endcode
rosarium 0:2ddc0583bcec 1428 */
rosarium 0:2ddc0583bcec 1429 #define SYNC4_BASE ((uint8_t)0x36) /*!< Sync word 4 */
rosarium 0:2ddc0583bcec 1430 #define SYNC3_BASE ((uint8_t)0x37) /*!< Sync word 3 */
rosarium 0:2ddc0583bcec 1431 #define SYNC2_BASE ((uint8_t)0x38) /*!< Sync word 2 */
rosarium 0:2ddc0583bcec 1432 #define SYNC1_BASE ((uint8_t)0x39) /*!< Sync word 1 */
rosarium 0:2ddc0583bcec 1433
rosarium 0:2ddc0583bcec 1434 /**
rosarium 0:2ddc0583bcec 1435 * @}
rosarium 0:2ddc0583bcec 1436 */
rosarium 0:2ddc0583bcec 1437
rosarium 0:2ddc0583bcec 1438
rosarium 0:2ddc0583bcec 1439 /** @defgroup MBUS_PRMBL_Register
rosarium 0:2ddc0583bcec 1440 * @{
rosarium 0:2ddc0583bcec 1441 */
rosarium 0:2ddc0583bcec 1442
rosarium 0:2ddc0583bcec 1443 /**
rosarium 0:2ddc0583bcec 1444 * \brief MBUS_PRMBL register
rosarium 0:2ddc0583bcec 1445 * \code
rosarium 0:2ddc0583bcec 1446 * Read Write
rosarium 0:2ddc0583bcec 1447 * Default value: 0x20
rosarium 0:2ddc0583bcec 1448 *
rosarium 0:2ddc0583bcec 1449 * 7:0 MBUS_PRMBL[7:0]: MBUS preamble control
rosarium 0:2ddc0583bcec 1450 * \endcode
rosarium 0:2ddc0583bcec 1451 */
rosarium 0:2ddc0583bcec 1452 #define MBUS_PRMBL_BASE ((uint8_t)0x3B) /*!< MBUS preamble lenght (in 01 bit pairs) */
rosarium 0:2ddc0583bcec 1453
rosarium 0:2ddc0583bcec 1454 /**
rosarium 0:2ddc0583bcec 1455 * @}
rosarium 0:2ddc0583bcec 1456 */
rosarium 0:2ddc0583bcec 1457
rosarium 0:2ddc0583bcec 1458
rosarium 0:2ddc0583bcec 1459 /** @defgroup MBUS_PSTMBL_Register
rosarium 0:2ddc0583bcec 1460 * @{
rosarium 0:2ddc0583bcec 1461 */
rosarium 0:2ddc0583bcec 1462
rosarium 0:2ddc0583bcec 1463 /**
rosarium 0:2ddc0583bcec 1464 * \brief MBUS_PSTMBL register
rosarium 0:2ddc0583bcec 1465 * \code
rosarium 0:2ddc0583bcec 1466 * Read Write
rosarium 0:2ddc0583bcec 1467 * Default value: 0x20
rosarium 0:2ddc0583bcec 1468 *
rosarium 0:2ddc0583bcec 1469 * 7:0 MBUS_PSTMBL[7:0]: MBUS postamble control
rosarium 0:2ddc0583bcec 1470 * \endcode
rosarium 0:2ddc0583bcec 1471 */
rosarium 0:2ddc0583bcec 1472 #define MBUS_PSTMBL_BASE ((uint8_t)0x3C) /*!< MBUS postamble length (in 01 bit pairs) */
rosarium 0:2ddc0583bcec 1473
rosarium 0:2ddc0583bcec 1474 /**
rosarium 0:2ddc0583bcec 1475 * @}
rosarium 0:2ddc0583bcec 1476 */
rosarium 0:2ddc0583bcec 1477
rosarium 0:2ddc0583bcec 1478 /** @defgroup MBUS_CTRL_Register
rosarium 0:2ddc0583bcec 1479 * @{
rosarium 0:2ddc0583bcec 1480 */
rosarium 0:2ddc0583bcec 1481
rosarium 0:2ddc0583bcec 1482 /**
rosarium 0:2ddc0583bcec 1483 * \brief MBUS_CTRL register
rosarium 0:2ddc0583bcec 1484 * \code
rosarium 0:2ddc0583bcec 1485 * Read Write
rosarium 0:2ddc0583bcec 1486 * Default value: 0x00
rosarium 0:2ddc0583bcec 1487 *
rosarium 0:2ddc0583bcec 1488 * 7:4 NOT_USED
rosarium 0:2ddc0583bcec 1489 *
rosarium 0:2ddc0583bcec 1490 * 3:1 MBUS_SUBMODE[2:0]: MBUS submode (allowed values are 0,1,3,5)
rosarium 0:2ddc0583bcec 1491 *
rosarium 0:2ddc0583bcec 1492 * 0 NOT_USED
rosarium 0:2ddc0583bcec 1493 * \endcode
rosarium 0:2ddc0583bcec 1494 */
rosarium 0:2ddc0583bcec 1495 #define MBUS_CTRL_BASE ((uint8_t)0x3D) /*!< MBUS sub-modes (S1, S2 short/long header, T1, T2, R2) */
rosarium 0:2ddc0583bcec 1496
rosarium 0:2ddc0583bcec 1497 #define MBUS_CTRL_MBUS_SUBMODE_S1_S2L ((uint8_t)0x00) /*!< MBUS sub-modes S1 & S2L, header lenght min 279, sync 0x7696, Manchester */
rosarium 0:2ddc0583bcec 1498 #define MBUS_CTRL_MBUS_SUBMODE_S2_S1M_T2_OTHER ((uint8_t)0x02) /*!< MBUS sub-modes S2, S1-m, T2 (only other to meter) short header, header lenght min 15, sync 0x7696, Manchester */
rosarium 0:2ddc0583bcec 1499 #define MBUS_CTRL_MBUS_SUBMODE_T1_T2_METER ((uint8_t)0x06) /*!< MBUS sub-modes T1, T2 (only meter to other), header lenght min 19, sync 0x3D, 3 out of 6 */
rosarium 0:2ddc0583bcec 1500 #define MBUS_CTRL_MBUS_SUBMODE_R2 ((uint8_t)0x0A) /*!< MBUS sub-mode R2, header lenght min 39, sync 0x7696, Manchester */
rosarium 0:2ddc0583bcec 1501
rosarium 0:2ddc0583bcec 1502 /**
rosarium 0:2ddc0583bcec 1503 * @}
rosarium 0:2ddc0583bcec 1504 */
rosarium 0:2ddc0583bcec 1505
rosarium 0:2ddc0583bcec 1506
rosarium 0:2ddc0583bcec 1507
rosarium 0:2ddc0583bcec 1508 /** @defgroup PCKT_FLT_GOALS_CONTROLx_MASK_Registers
rosarium 0:2ddc0583bcec 1509 * @{
rosarium 0:2ddc0583bcec 1510 */
rosarium 0:2ddc0583bcec 1511
rosarium 0:2ddc0583bcec 1512 /**
rosarium 0:2ddc0583bcec 1513 * \brief PCKT_FLT_GOALS_CONTROLx_MASK registers
rosarium 0:2ddc0583bcec 1514 * \code
rosarium 0:2ddc0583bcec 1515 * Default value: 0x00
rosarium 0:2ddc0583bcec 1516 * Read Write
rosarium 0:2ddc0583bcec 1517 * 7:0 CONTROLx_MASK[7:0]: All 0s - no filtering
rosarium 0:2ddc0583bcec 1518 *
rosarium 0:2ddc0583bcec 1519 * \endcode
rosarium 0:2ddc0583bcec 1520 */
rosarium 0:2ddc0583bcec 1521 #define PCKT_FLT_GOALS_CONTROL0_MASK_BASE ((uint8_t)0x42) /*!< Packet control field #3 mask, all 0s -> no filtering */
rosarium 0:2ddc0583bcec 1522
rosarium 0:2ddc0583bcec 1523 #define PCKT_FLT_GOALS_CONTROL1_MASK_BASE ((uint8_t)0x43) /*!< Packet control field #2 mask, all 0s -> no filtering */
rosarium 0:2ddc0583bcec 1524
rosarium 0:2ddc0583bcec 1525 #define PCKT_FLT_GOALS_CONTROL2_MASK_BASE ((uint8_t)0x44) /*!< Packet control field #1 mask, all 0s -> no filtering */
rosarium 0:2ddc0583bcec 1526
rosarium 0:2ddc0583bcec 1527 #define PCKT_FLT_GOALS_CONTROL3_MASK_BASE ((uint8_t)0x45) /*!< Packet control field #0 mask, all 0s -> no filtering */
rosarium 0:2ddc0583bcec 1528
rosarium 0:2ddc0583bcec 1529 /**
rosarium 0:2ddc0583bcec 1530 * @}
rosarium 0:2ddc0583bcec 1531 */
rosarium 0:2ddc0583bcec 1532
rosarium 0:2ddc0583bcec 1533 /** @defgroup PCKT_FLT_GOALS_CONTROLx_FIELD_Registers
rosarium 0:2ddc0583bcec 1534 * @{
rosarium 0:2ddc0583bcec 1535 */
rosarium 0:2ddc0583bcec 1536
rosarium 0:2ddc0583bcec 1537 /**
rosarium 0:2ddc0583bcec 1538 * \brief PCKT_FLT_GOALS_CONTROLx_FIELD registers
rosarium 0:2ddc0583bcec 1539 * \code
rosarium 0:2ddc0583bcec 1540 * Default value: 0x00
rosarium 0:2ddc0583bcec 1541 * Read Write
rosarium 0:2ddc0583bcec 1542 * 7:0 CONTROLx_FIELD[7:0]: Control field (byte x) to be used as reference
rosarium 0:2ddc0583bcec 1543 *
rosarium 0:2ddc0583bcec 1544 * \endcode
rosarium 0:2ddc0583bcec 1545 */
rosarium 0:2ddc0583bcec 1546 #define PCKT_FLT_GOALS_CONTROL0_FIELD_BASE ((uint8_t)0x46) /*!< Control field (byte #3) */
rosarium 0:2ddc0583bcec 1547
rosarium 0:2ddc0583bcec 1548 #define PCKT_FLT_GOALS_CONTROL1_FIELD_BASE ((uint8_t)0x47) /*!< Control field (byte #2) */
rosarium 0:2ddc0583bcec 1549
rosarium 0:2ddc0583bcec 1550 #define PCKT_FLT_GOALS_CONTROL2_FIELD_BASE ((uint8_t)0x48) /*!< Control field (byte #1) */
rosarium 0:2ddc0583bcec 1551
rosarium 0:2ddc0583bcec 1552 #define PCKT_FLT_GOALS_CONTROL3_FIELD_BASE ((uint8_t)0x49) /*!< Control field (byte #0) */
rosarium 0:2ddc0583bcec 1553
rosarium 0:2ddc0583bcec 1554 /**
rosarium 0:2ddc0583bcec 1555 * @}
rosarium 0:2ddc0583bcec 1556 */
rosarium 0:2ddc0583bcec 1557
rosarium 0:2ddc0583bcec 1558 /** @defgroup PCKT_FLT_GOALS_SOURCE_MASK_Register
rosarium 0:2ddc0583bcec 1559 * @{
rosarium 0:2ddc0583bcec 1560 */
rosarium 0:2ddc0583bcec 1561
rosarium 0:2ddc0583bcec 1562 /**
rosarium 0:2ddc0583bcec 1563 * \brief PCKT_FLT_GOALS_SOURCE_MASK register
rosarium 0:2ddc0583bcec 1564 * \code
rosarium 0:2ddc0583bcec 1565 * Default value: 0x00
rosarium 0:2ddc0583bcec 1566 * Read Write
rosarium 0:2ddc0583bcec 1567 * 7:0 RX_SOURCE_MASK[7:0]: For received packet only: all 0s - no filtering
rosarium 0:2ddc0583bcec 1568 *
rosarium 0:2ddc0583bcec 1569 * \endcode
rosarium 0:2ddc0583bcec 1570 */
rosarium 0:2ddc0583bcec 1571 #define PCKT_FLT_GOALS_SOURCE_MASK_BASE ((uint8_t)0x4A) /*!< Source address mask, valid in RX mode */
rosarium 0:2ddc0583bcec 1572
rosarium 0:2ddc0583bcec 1573 /**
rosarium 0:2ddc0583bcec 1574 * @}
rosarium 0:2ddc0583bcec 1575 */
rosarium 0:2ddc0583bcec 1576
rosarium 0:2ddc0583bcec 1577 /** @defgroup PCKT_FLT_GOALS_SOURCE_ADDR_Register
rosarium 0:2ddc0583bcec 1578 * @{
rosarium 0:2ddc0583bcec 1579 */
rosarium 0:2ddc0583bcec 1580 /**
rosarium 0:2ddc0583bcec 1581 * \brief PCKT_FLT_GOALS_SOURCE_ADDR register
rosarium 0:2ddc0583bcec 1582 * \code
rosarium 0:2ddc0583bcec 1583 * Default value: 0x00
rosarium 0:2ddc0583bcec 1584 * Read Write
rosarium 0:2ddc0583bcec 1585 * 7:0 RX_SOURCE_ADDR[7:0]: RX packet source / TX packet destination fields
rosarium 0:2ddc0583bcec 1586 *
rosarium 0:2ddc0583bcec 1587 * \endcode
rosarium 0:2ddc0583bcec 1588 */
rosarium 0:2ddc0583bcec 1589 #define PCKT_FLT_GOALS_SOURCE_ADDR_BASE ((uint8_t)0x4B) /*!< Source address */
rosarium 0:2ddc0583bcec 1590
rosarium 0:2ddc0583bcec 1591 /**
rosarium 0:2ddc0583bcec 1592 * @}
rosarium 0:2ddc0583bcec 1593 */
rosarium 0:2ddc0583bcec 1594
rosarium 0:2ddc0583bcec 1595 /** @defgroup PCKT_FLT_GOALS_BROADCAST_Register
rosarium 0:2ddc0583bcec 1596 * @{
rosarium 0:2ddc0583bcec 1597 */
rosarium 0:2ddc0583bcec 1598
rosarium 0:2ddc0583bcec 1599 /**
rosarium 0:2ddc0583bcec 1600 * \brief PCKT_FLT_GOALS_BROADCAST register
rosarium 0:2ddc0583bcec 1601 * \code
rosarium 0:2ddc0583bcec 1602 * Default value: 0x00
rosarium 0:2ddc0583bcec 1603 * Read Write
rosarium 0:2ddc0583bcec 1604 * 7:0 BROADCAST[7:0]: Address shared for broadcast communication link
rosarium 0:2ddc0583bcec 1605 *
rosarium 0:2ddc0583bcec 1606 * \endcode
rosarium 0:2ddc0583bcec 1607 */
rosarium 0:2ddc0583bcec 1608 #define PCKT_FLT_GOALS_BROADCAST_BASE ((uint8_t)0x4C) /*!< Address shared for broadcast communication links */
rosarium 0:2ddc0583bcec 1609
rosarium 0:2ddc0583bcec 1610 /**
rosarium 0:2ddc0583bcec 1611 * @}
rosarium 0:2ddc0583bcec 1612 */
rosarium 0:2ddc0583bcec 1613
rosarium 0:2ddc0583bcec 1614 /** @defgroup PCKT_FLT_GOALS_MULTICAST_Register
rosarium 0:2ddc0583bcec 1615 * @{
rosarium 0:2ddc0583bcec 1616 */
rosarium 0:2ddc0583bcec 1617
rosarium 0:2ddc0583bcec 1618 /**
rosarium 0:2ddc0583bcec 1619 * \brief PCKT_FLT_GOALS_MULTICAST register
rosarium 0:2ddc0583bcec 1620 * \code
rosarium 0:2ddc0583bcec 1621 * Default value: 0x00
rosarium 0:2ddc0583bcec 1622 * Read Write
rosarium 0:2ddc0583bcec 1623 * 7:0 MULTICAST[7:0]: Address shared for multicast communication links
rosarium 0:2ddc0583bcec 1624 *
rosarium 0:2ddc0583bcec 1625 * \endcode
rosarium 0:2ddc0583bcec 1626 */
rosarium 0:2ddc0583bcec 1627 #define PCKT_FLT_GOALS_MULTICAST_BASE ((uint8_t)0x4D) /*!< Address shared for multicast communication links */
rosarium 0:2ddc0583bcec 1628
rosarium 0:2ddc0583bcec 1629 /**
rosarium 0:2ddc0583bcec 1630 * @}
rosarium 0:2ddc0583bcec 1631 */
rosarium 0:2ddc0583bcec 1632
rosarium 0:2ddc0583bcec 1633 /** @defgroup PCKT_FLT_GOALS_TX_SOURCE_ADDR_Register
rosarium 0:2ddc0583bcec 1634 * @{
rosarium 0:2ddc0583bcec 1635 */
rosarium 0:2ddc0583bcec 1636
rosarium 0:2ddc0583bcec 1637 /**
rosarium 0:2ddc0583bcec 1638 * \brief PCKT_FLT_GOALS_TX_SOURCE_ADDR register
rosarium 0:2ddc0583bcec 1639 * \code
rosarium 0:2ddc0583bcec 1640 * Default value: 0x00
rosarium 0:2ddc0583bcec 1641 * Read Write
rosarium 0:2ddc0583bcec 1642 * 7:0 TX_SOURCE_ADDR[7:0]: TX packet source / RX packet destination fields
rosarium 0:2ddc0583bcec 1643 *
rosarium 0:2ddc0583bcec 1644 * \endcode
rosarium 0:2ddc0583bcec 1645 */
rosarium 0:2ddc0583bcec 1646 #define PCKT_FLT_GOALS_TX_ADDR_BASE ((uint8_t)0x4E) /*!< Address of the destination (also device own address) */
rosarium 0:2ddc0583bcec 1647
rosarium 0:2ddc0583bcec 1648 /**
rosarium 0:2ddc0583bcec 1649 * @}
rosarium 0:2ddc0583bcec 1650 */
rosarium 0:2ddc0583bcec 1651
rosarium 0:2ddc0583bcec 1652 /** @defgroup PCKT_FLT_OPTIONS_Register
rosarium 0:2ddc0583bcec 1653 * @{
rosarium 0:2ddc0583bcec 1654 */
rosarium 0:2ddc0583bcec 1655
rosarium 0:2ddc0583bcec 1656 /**
rosarium 0:2ddc0583bcec 1657 * \brief PCKT_FLT_OPTIONS register
rosarium 0:2ddc0583bcec 1658 * \code
rosarium 0:2ddc0583bcec 1659 * Default value: 0x70
rosarium 0:2ddc0583bcec 1660 * Read Write
rosarium 0:2ddc0583bcec 1661 * 7 Reserved.
rosarium 0:2ddc0583bcec 1662 *
rosarium 0:2ddc0583bcec 1663 * 6 RX_TIMEOUT_AND_OR_SELECT[0]: 1 - ‘OR’ logical function applied to CS/SQI/PQI
rosarium 0:2ddc0583bcec 1664 * values (masked by 7:5 bits in PROTOCOL register)
rosarium 0:2ddc0583bcec 1665 * 5 CONTROL_FILTERING[0]: 1 - RX packet accepted if its control fields matches
rosarium 0:2ddc0583bcec 1666 * with masked CONTROLx_FIELD registers.
rosarium 0:2ddc0583bcec 1667 * 4 SOURCE_FILTERING[0]: 1 - RX packet accepted if its source field
rosarium 0:2ddc0583bcec 1668 * matches w/ masked RX_SOURCE_ADDR register.
rosarium 0:2ddc0583bcec 1669 * 3 DEST_VS_ SOURCE _ADDR[0]: 1 - RX packet accepted if its destination
rosarium 0:2ddc0583bcec 1670 * address matches with TX_SOURCE_ADDR reg.
rosarium 0:2ddc0583bcec 1671 * 2 DEST_VS_MULTICAST_ADDR[0]: 1 - RX packet accepted if its destination
rosarium 0:2ddc0583bcec 1672 * address matches with MULTICAST register
rosarium 0:2ddc0583bcec 1673 * 1 DEST_VS_BROADCAST_ADDR[0]: 1 - RX packet accepted if its destination
rosarium 0:2ddc0583bcec 1674 * address matches with BROADCAST register.
rosarium 0:2ddc0583bcec 1675 * 0 CRC_CHECK[0]: 1 - packet discarded if CRC not valid.
rosarium 0:2ddc0583bcec 1676 *
rosarium 0:2ddc0583bcec 1677 * \endcode
rosarium 0:2ddc0583bcec 1678 */
rosarium 0:2ddc0583bcec 1679 #define PCKT_FLT_OPTIONS_BASE ((uint8_t)0x4F) /*!< Options relative to packet filtering */
rosarium 0:2ddc0583bcec 1680
rosarium 0:2ddc0583bcec 1681 #define PCKT_FLT_OPTIONS_CRC_CHECK_MASK ((uint8_t)0x01) /*!< Enable/disable of CRC check: packet is discarded if CRC is not valid [RX] */
rosarium 0:2ddc0583bcec 1682 #define PCKT_FLT_OPTIONS_DEST_VS_BROADCAST_ADDR_MASK ((uint8_t)0x02) /*!< Packet discarded if destination address differs from BROADCAST register [RX] */
rosarium 0:2ddc0583bcec 1683 #define PCKT_FLT_OPTIONS_DEST_VS_MULTICAST_ADDR_MASK ((uint8_t)0x04) /*!< Packet discarded if destination address differs from MULTICAST register [RX] */
rosarium 0:2ddc0583bcec 1684 #define PCKT_FLT_OPTIONS_DEST_VS_TX_ADDR_MASK ((uint8_t)0x08) /*!< Packet discarded if destination address differs from TX_ADDR register [RX] */
rosarium 0:2ddc0583bcec 1685 #define PCKT_FLT_OPTIONS_SOURCE_FILTERING_MASK ((uint8_t)0x10) /*!< Packet discarded if source address (masked by the SOURCE_MASK register)
rosarium 0:2ddc0583bcec 1686 differs from SOURCE_ADDR register [RX] */
rosarium 0:2ddc0583bcec 1687 #define PCKT_FLT_OPTIONS_CONTROL_FILTERING_MASK ((uint8_t)0x20) /*!< Packet discarded if the x-byte (x=1¸4) control field (masked by the CONTROLx_MASK register)
rosarium 0:2ddc0583bcec 1688 differs from CONTROLx_FIELD register [RX] */
rosarium 0:2ddc0583bcec 1689 #define PCKT_FLT_OPTIONS_RX_TIMEOUT_AND_OR_SELECT ((uint8_t)0x40) /*!< Logical function applied to CS/SQI/PQI values (masked by [7:5] bits in PROTOCOL[2]
rosarium 0:2ddc0583bcec 1690 register) */
rosarium 0:2ddc0583bcec 1691
rosarium 0:2ddc0583bcec 1692 /**
rosarium 0:2ddc0583bcec 1693 * @}
rosarium 0:2ddc0583bcec 1694 */
rosarium 0:2ddc0583bcec 1695
rosarium 0:2ddc0583bcec 1696 /** @defgroup TX_CTRL_FIELD_Registers
rosarium 0:2ddc0583bcec 1697 * @{
rosarium 0:2ddc0583bcec 1698 */
rosarium 0:2ddc0583bcec 1699
rosarium 0:2ddc0583bcec 1700 /**
rosarium 0:2ddc0583bcec 1701 * \brief TX_CTRL_FIELDx registers
rosarium 0:2ddc0583bcec 1702 * \code
rosarium 0:2ddc0583bcec 1703 * Default value: 0x00
rosarium 0:2ddc0583bcec 1704 * Read Write
rosarium 0:2ddc0583bcec 1705 * 7:0 TX_CTRLx[7:0]: Control field value to be used in TX packet as byte n.x
rosarium 0:2ddc0583bcec 1706 * \endcode
rosarium 0:2ddc0583bcec 1707 */
rosarium 0:2ddc0583bcec 1708 #define TX_CTRL_FIELD3_BASE ((uint8_t)0x68) /*!< Control field value to be used in TX packet as byte n.3 */
rosarium 0:2ddc0583bcec 1709
rosarium 0:2ddc0583bcec 1710 #define TX_CTRL_FIELD2_BASE ((uint8_t)0x69) /*!< Control field value to be used in TX packet as byte n.2 */
rosarium 0:2ddc0583bcec 1711
rosarium 0:2ddc0583bcec 1712 #define TX_CTRL_FIELD1_BASE ((uint8_t)0x6A) /*!< Control field value to be used in TX packet as byte n.1 */
rosarium 0:2ddc0583bcec 1713
rosarium 0:2ddc0583bcec 1714 #define TX_CTRL_FIELD0_BASE ((uint8_t)0x6B) /*!< Control field value to be used in TX packet as byte n.0 */
rosarium 0:2ddc0583bcec 1715
rosarium 0:2ddc0583bcec 1716 /**
rosarium 0:2ddc0583bcec 1717 * @}
rosarium 0:2ddc0583bcec 1718 */
rosarium 0:2ddc0583bcec 1719
rosarium 0:2ddc0583bcec 1720
rosarium 0:2ddc0583bcec 1721 /** @defgroup TX_PCKT_INFO_Register
rosarium 0:2ddc0583bcec 1722 * @{
rosarium 0:2ddc0583bcec 1723 */
rosarium 0:2ddc0583bcec 1724
rosarium 0:2ddc0583bcec 1725 /**
rosarium 0:2ddc0583bcec 1726 * \brief TX_PCKT_INFO registers
rosarium 0:2ddc0583bcec 1727 * \code
rosarium 0:2ddc0583bcec 1728 * Default value: 0x00
rosarium 0:2ddc0583bcec 1729 * Read
rosarium 0:2ddc0583bcec 1730 *
rosarium 0:2ddc0583bcec 1731 * 7:6 Not used.
rosarium 0:2ddc0583bcec 1732 *
rosarium 0:2ddc0583bcec 1733 * 5:4 TX_SEQ_NUM: Current TX packet sequence number
rosarium 0:2ddc0583bcec 1734 *
rosarium 0:2ddc0583bcec 1735 * 0 N_RETX[3:0]: Number of retransmissions done on the
rosarium 0:2ddc0583bcec 1736 * last TX packet
rosarium 0:2ddc0583bcec 1737 * \endcode
rosarium 0:2ddc0583bcec 1738 */
rosarium 0:2ddc0583bcec 1739 #define TX_PCKT_INFO_BASE ((uint8_t)(0xC2)) /*!< Current TX packet sequence number [5:4];
rosarium 0:2ddc0583bcec 1740 Number of retransmissions done on the last TX packet [3:0]*/
rosarium 0:2ddc0583bcec 1741 /**
rosarium 0:2ddc0583bcec 1742 * @}
rosarium 0:2ddc0583bcec 1743 */
rosarium 0:2ddc0583bcec 1744
rosarium 0:2ddc0583bcec 1745 /** @defgroup RX_PCKT_INFO_Register
rosarium 0:2ddc0583bcec 1746 * @{
rosarium 0:2ddc0583bcec 1747 */
rosarium 0:2ddc0583bcec 1748
rosarium 0:2ddc0583bcec 1749 /**
rosarium 0:2ddc0583bcec 1750 * \brief RX_PCKT_INFO registers
rosarium 0:2ddc0583bcec 1751 * \code
rosarium 0:2ddc0583bcec 1752 * Default value: 0x00
rosarium 0:2ddc0583bcec 1753 * Read
rosarium 0:2ddc0583bcec 1754 *
rosarium 0:2ddc0583bcec 1755 * 7:3 Not used.
rosarium 0:2ddc0583bcec 1756 *
rosarium 0:2ddc0583bcec 1757 * 2 NACK_RX: NACK field of the received packet
rosarium 0:2ddc0583bcec 1758 *
rosarium 0:2ddc0583bcec 1759 * 1:0 RX_SEQ_NUM[1:0]: Sequence number of the received packet
rosarium 0:2ddc0583bcec 1760 * \endcode
rosarium 0:2ddc0583bcec 1761 */
rosarium 0:2ddc0583bcec 1762 #define RX_PCKT_INFO_BASE ((uint8_t)(0xC3)) /*!< NO_ACK field of the received packet [2];
rosarium 0:2ddc0583bcec 1763 sequence number of the received packet [1:0]*/
rosarium 0:2ddc0583bcec 1764
rosarium 0:2ddc0583bcec 1765 #define TX_PCKT_INFO_NACK_RX ((uint8_t)(0x04)) /*!< NACK field of the received packet */
rosarium 0:2ddc0583bcec 1766
rosarium 0:2ddc0583bcec 1767 /**
rosarium 0:2ddc0583bcec 1768 * @}
rosarium 0:2ddc0583bcec 1769 */
rosarium 0:2ddc0583bcec 1770
rosarium 0:2ddc0583bcec 1771 /** @defgroup RX_PCKT_LEN1
rosarium 0:2ddc0583bcec 1772 * @{
rosarium 0:2ddc0583bcec 1773 */
rosarium 0:2ddc0583bcec 1774
rosarium 0:2ddc0583bcec 1775 /**
rosarium 0:2ddc0583bcec 1776 * \brief RX_PCKT_LEN1 registers
rosarium 0:2ddc0583bcec 1777 * \code
rosarium 0:2ddc0583bcec 1778 * Default value: 0x00
rosarium 0:2ddc0583bcec 1779 * Read
rosarium 0:2ddc0583bcec 1780 *
rosarium 0:2ddc0583bcec 1781 * 7:0 RX_PCKT_LEN1[7:0]: Length (number of bytes) of the received packet: RX_PCKT_LEN=RX_PCKT_LEN1 × 256 + RX_PCKT_LEN0
rosarium 0:2ddc0583bcec 1782 * This value is packet_length/256
rosarium 0:2ddc0583bcec 1783 * \endcode
rosarium 0:2ddc0583bcec 1784 */
rosarium 0:2ddc0583bcec 1785 #define RX_PCKT_LEN1_BASE ((uint8_t)(0xC9)) /*!< Length (number of bytes) of the received packet: */
rosarium 0:2ddc0583bcec 1786
rosarium 0:2ddc0583bcec 1787 /**
rosarium 0:2ddc0583bcec 1788 * @}
rosarium 0:2ddc0583bcec 1789 */
rosarium 0:2ddc0583bcec 1790
rosarium 0:2ddc0583bcec 1791 /** @defgroup RX_PCKT_LEN0
rosarium 0:2ddc0583bcec 1792 * @{
rosarium 0:2ddc0583bcec 1793 */
rosarium 0:2ddc0583bcec 1794
rosarium 0:2ddc0583bcec 1795 /**
rosarium 0:2ddc0583bcec 1796 * \brief RX_PCKT_LEN0 registers
rosarium 0:2ddc0583bcec 1797 * \code
rosarium 0:2ddc0583bcec 1798 * Default value: 0x00
rosarium 0:2ddc0583bcec 1799 * Read
rosarium 0:2ddc0583bcec 1800 *
rosarium 0:2ddc0583bcec 1801 * 7:0 RX_PCKT_LEN0[7:0]: Length (number of bytes) of the received packet: RX_PCKT_LEN=RX_PCKT_LEN1 × 256 + RX_PCKT_LEN0
rosarium 0:2ddc0583bcec 1802 * This value is packet_length%256
rosarium 0:2ddc0583bcec 1803 * \endcode
rosarium 0:2ddc0583bcec 1804 */
rosarium 0:2ddc0583bcec 1805 #define RX_PCKT_LEN0_BASE ((uint8_t)(0xCA)) /*!< RX_PCKT_LEN=RX_PCKT_LEN1 × 256 + RX_PCKT_LEN0 */
rosarium 0:2ddc0583bcec 1806
rosarium 0:2ddc0583bcec 1807 /**
rosarium 0:2ddc0583bcec 1808 * @}
rosarium 0:2ddc0583bcec 1809 */
rosarium 0:2ddc0583bcec 1810
rosarium 0:2ddc0583bcec 1811
rosarium 0:2ddc0583bcec 1812 /** @defgroup CRC_FIELD_Register
rosarium 0:2ddc0583bcec 1813 * @{
rosarium 0:2ddc0583bcec 1814 */
rosarium 0:2ddc0583bcec 1815
rosarium 0:2ddc0583bcec 1816 /**
rosarium 0:2ddc0583bcec 1817 * \brief CRC_FIELD[2:0] registers
rosarium 0:2ddc0583bcec 1818 * \code
rosarium 0:2ddc0583bcec 1819 * Default value: 0x00
rosarium 0:2ddc0583bcec 1820 * Read
rosarium 0:2ddc0583bcec 1821 *
rosarium 0:2ddc0583bcec 1822 * 7:0 CRC_FIELDx[7:0]: upper(x=2), middle(x=1) and lower(x=0) part of the crc field of the received packet
rosarium 0:2ddc0583bcec 1823 * \endcode
rosarium 0:2ddc0583bcec 1824 */
rosarium 0:2ddc0583bcec 1825 #define CRC_FIELD2_BASE ((uint8_t)(0xCB)) /*!< CRC2 field of the received packet */
rosarium 0:2ddc0583bcec 1826
rosarium 0:2ddc0583bcec 1827 #define CRC_FIELD1_BASE ((uint8_t)(0xCC)) /*!< CRC1 field of the received packet */
rosarium 0:2ddc0583bcec 1828
rosarium 0:2ddc0583bcec 1829 #define CRC_FIELD0_BASE ((uint8_t)(0xCD)) /*!< CRC0 field of the received packet */
rosarium 0:2ddc0583bcec 1830
rosarium 0:2ddc0583bcec 1831 /**
rosarium 0:2ddc0583bcec 1832 * @}
rosarium 0:2ddc0583bcec 1833 */
rosarium 0:2ddc0583bcec 1834
rosarium 0:2ddc0583bcec 1835 /** @defgroup RX_CTRL_FIELD_Register
rosarium 0:2ddc0583bcec 1836 * @{
rosarium 0:2ddc0583bcec 1837 */
rosarium 0:2ddc0583bcec 1838
rosarium 0:2ddc0583bcec 1839 /**
rosarium 0:2ddc0583bcec 1840 * \brief RX_CTRL_FIELD[3:0] registers
rosarium 0:2ddc0583bcec 1841 * \code
rosarium 0:2ddc0583bcec 1842 * Default value: 0x00
rosarium 0:2ddc0583bcec 1843 * Read
rosarium 0:2ddc0583bcec 1844 *
rosarium 0:2ddc0583bcec 1845 * 7:0 RX_CTRL_FIELDx[7:0]: upper(x=3), middle(x=2), middle(x=1) and lower(x=0) part of the control field of the received packet
rosarium 0:2ddc0583bcec 1846 * \endcode
rosarium 0:2ddc0583bcec 1847 */
rosarium 0:2ddc0583bcec 1848 #define RX_CTRL_FIELD0_BASE ((uint8_t)(0xCE)) /*!< CRTL3 Control field of the received packet */
rosarium 0:2ddc0583bcec 1849
rosarium 0:2ddc0583bcec 1850 #define RX_CTRL_FIELD1_BASE ((uint8_t)(0xCF)) /*!< CRTL2 Control field of the received packet */
rosarium 0:2ddc0583bcec 1851
rosarium 0:2ddc0583bcec 1852 #define RX_CTRL_FIELD2_BASE ((uint8_t)(0xD0)) /*!< CRTL1 Control field of the received packet */
rosarium 0:2ddc0583bcec 1853
rosarium 0:2ddc0583bcec 1854 #define RX_CTRL_FIELD3_BASE ((uint8_t)(0xD1)) /*!< CRTL0 Control field of the received packet */
rosarium 0:2ddc0583bcec 1855
rosarium 0:2ddc0583bcec 1856 /**
rosarium 0:2ddc0583bcec 1857 * @}
rosarium 0:2ddc0583bcec 1858 */
rosarium 0:2ddc0583bcec 1859
rosarium 0:2ddc0583bcec 1860 /** @defgroup RX_ADDR_FIELD_Register
rosarium 0:2ddc0583bcec 1861 * @{
rosarium 0:2ddc0583bcec 1862 */
rosarium 0:2ddc0583bcec 1863
rosarium 0:2ddc0583bcec 1864 /**
rosarium 0:2ddc0583bcec 1865 * \brief RX_ADDR_FIELD[1:0] registers
rosarium 0:2ddc0583bcec 1866 * \code
rosarium 0:2ddc0583bcec 1867 * Default value: 0x00
rosarium 0:2ddc0583bcec 1868 * Read
rosarium 0:2ddc0583bcec 1869 *
rosarium 0:2ddc0583bcec 1870 * 7:0 RX_ADDR_FIELDx[7:0]: source(x=1) and destination(x=0) address field of the received packet
rosarium 0:2ddc0583bcec 1871 * \endcode
rosarium 0:2ddc0583bcec 1872 */
rosarium 0:2ddc0583bcec 1873 #define RX_ADDR_FIELD1_BASE ((uint8_t)(0xD2)) /*!< ADDR1 Address field of the received packet */
rosarium 0:2ddc0583bcec 1874
rosarium 0:2ddc0583bcec 1875 #define RX_ADDR_FIELD0_BASE ((uint8_t)(0xD3)) /*!< ADDR0 Address field of the received packet */
rosarium 0:2ddc0583bcec 1876
rosarium 0:2ddc0583bcec 1877 /**
rosarium 0:2ddc0583bcec 1878 * @}
rosarium 0:2ddc0583bcec 1879 */
rosarium 0:2ddc0583bcec 1880
rosarium 0:2ddc0583bcec 1881 /**
rosarium 0:2ddc0583bcec 1882 * @}
rosarium 0:2ddc0583bcec 1883 */
rosarium 0:2ddc0583bcec 1884
rosarium 0:2ddc0583bcec 1885
rosarium 0:2ddc0583bcec 1886 /** @defgroup Protocol_Registers
rosarium 0:2ddc0583bcec 1887 * @{
rosarium 0:2ddc0583bcec 1888 */
rosarium 0:2ddc0583bcec 1889
rosarium 0:2ddc0583bcec 1890 /** @defgroup PROTOCOL2_Register
rosarium 0:2ddc0583bcec 1891 * @{
rosarium 0:2ddc0583bcec 1892 */
rosarium 0:2ddc0583bcec 1893
rosarium 0:2ddc0583bcec 1894 /**
rosarium 0:2ddc0583bcec 1895 * \brief PROTOCOL2 register
rosarium 0:2ddc0583bcec 1896 * \code
rosarium 0:2ddc0583bcec 1897 * Default value: 0x06
rosarium 0:2ddc0583bcec 1898 * Read Write
rosarium 0:2ddc0583bcec 1899 * 7 CS_TIMEOUT_MASK: 1 - CS value contributes to timeout disabling
rosarium 0:2ddc0583bcec 1900 *
rosarium 0:2ddc0583bcec 1901 * 6 SQI_TIMEOUT_MASK: 1 - SQI value contributes to timeout disabling
rosarium 0:2ddc0583bcec 1902 *
rosarium 0:2ddc0583bcec 1903 * 5 PQI_TIMEOUT_MASK: 1 - PQI value contributes to timeout disabling
rosarium 0:2ddc0583bcec 1904 *
rosarium 0:2ddc0583bcec 1905 * 4:3 TX_SEQ_NUM_RELOAD[1:0]: TX sequence number to be used when counting reset is required using the related command.
rosarium 0:2ddc0583bcec 1906 *
rosarium 0:2ddc0583bcec 1907 * 2 RCO_CALIBRATION[0]: 1 - Enables the automatic RCO calibration
rosarium 0:2ddc0583bcec 1908 *
rosarium 0:2ddc0583bcec 1909 * 1 VCO_CALIBRATION[0]: 1 - Enables the automatic VCO calibration
rosarium 0:2ddc0583bcec 1910 *
rosarium 0:2ddc0583bcec 1911 * 0 LDCR_MODE[0]: 1 - LDCR mode enabled
rosarium 0:2ddc0583bcec 1912 *
rosarium 0:2ddc0583bcec 1913 * \endcode
rosarium 0:2ddc0583bcec 1914 */
rosarium 0:2ddc0583bcec 1915 #define PROTOCOL2_BASE ((uint8_t)0x50) /*!< Protocol2 regisetr address */
rosarium 0:2ddc0583bcec 1916
rosarium 0:2ddc0583bcec 1917 #define PROTOCOL2_LDC_MODE_MASK ((uint8_t)0x01) /*!< Enable/disable Low duty Cycle mode */
rosarium 0:2ddc0583bcec 1918 #define PROTOCOL2_VCO_CALIBRATION_MASK ((uint8_t)0x02) /*!< Enable/disable VCO automatic calibration */
rosarium 0:2ddc0583bcec 1919 #define PROTOCOL2_RCO_CALIBRATION_MASK ((uint8_t)0x04) /*!< Enable/disable RCO automatic calibration */
rosarium 0:2ddc0583bcec 1920 #define PROTOCOL2_PQI_TIMEOUT_MASK ((uint8_t)0x20) /*!< PQI value contributes to timeout disabling */
rosarium 0:2ddc0583bcec 1921 #define PROTOCOL2_SQI_TIMEOUT_MASK ((uint8_t)0x40) /*!< SQI value contributes to timeout disabling */
rosarium 0:2ddc0583bcec 1922 #define PROTOCOL2_CS_TIMEOUT_MASK ((uint8_t)0x80) /*!< CS value contributes to timeout disabling */
rosarium 0:2ddc0583bcec 1923
rosarium 0:2ddc0583bcec 1924 /**
rosarium 0:2ddc0583bcec 1925 * @}
rosarium 0:2ddc0583bcec 1926 */
rosarium 0:2ddc0583bcec 1927
rosarium 0:2ddc0583bcec 1928 /** @defgroup PROTOCOL1_Register
rosarium 0:2ddc0583bcec 1929 * @{
rosarium 0:2ddc0583bcec 1930 */
rosarium 0:2ddc0583bcec 1931
rosarium 0:2ddc0583bcec 1932 /**
rosarium 0:2ddc0583bcec 1933 * \brief PROTOCOL1 register
rosarium 0:2ddc0583bcec 1934 * \code
rosarium 0:2ddc0583bcec 1935 * Default value: 0x00
rosarium 0:2ddc0583bcec 1936 * Read Write
rosarium 0:2ddc0583bcec 1937 * 7 LDCR_RELOAD_ON_SYNC: 1 - LDCR timer will be reloaded with the value stored in the LDCR_RELOAD registers
rosarium 0:2ddc0583bcec 1938 *
rosarium 0:2ddc0583bcec 1939 * 6 PIGGYBACKING: 1 - PIGGYBACKING enabled
rosarium 0:2ddc0583bcec 1940 *
rosarium 0:2ddc0583bcec 1941 * 5:4 Reserved.
rosarium 0:2ddc0583bcec 1942 *
rosarium 0:2ddc0583bcec 1943 * 3 SEED_RELOAD[0]: 1 - Reload the back-off random generator
rosarium 0:2ddc0583bcec 1944 * seed using the value written in the
rosarium 0:2ddc0583bcec 1945 * BU_COUNTER_SEED_MSByte / LSByte registers
rosarium 0:2ddc0583bcec 1946 *
rosarium 0:2ddc0583bcec 1947 * 2 CSMA_ON [0]: 1 - CSMA channel access mode enabled
rosarium 0:2ddc0583bcec 1948 *
rosarium 0:2ddc0583bcec 1949 * 1 CSMA_PERS_ON[0]: 1 - CSMA persistent (no back-off) enabled
rosarium 0:2ddc0583bcec 1950 *
rosarium 0:2ddc0583bcec 1951 * 0 AUTO_PCKT_FLT[0]: 1 - automatic packet filtering mode enabled
rosarium 0:2ddc0583bcec 1952 *
rosarium 0:2ddc0583bcec 1953 * \endcode
rosarium 0:2ddc0583bcec 1954 */
rosarium 0:2ddc0583bcec 1955 #define PROTOCOL1_BASE ((uint8_t)0x51) /*!< Protocol1 regisetr address */
rosarium 0:2ddc0583bcec 1956
rosarium 0:2ddc0583bcec 1957 #define PROTOCOL1_AUTO_PCKT_FLT_MASK ((uint8_t)0x01) /*!< Enable/disable automatic packet filtering mode */
rosarium 0:2ddc0583bcec 1958 #define PROTOCOL1_CSMA_PERS_ON_MASK ((uint8_t)0x02) /*!< Enable/disable CSMA persistent (no back-off) */
rosarium 0:2ddc0583bcec 1959 #define PROTOCOL1_CSMA_ON_MASK ((uint8_t)0x04) /*!< Enable/disable CSMA channel access mode */
rosarium 0:2ddc0583bcec 1960 #define PROTOCOL1_SEED_RELOAD_MASK ((uint8_t)0x08) /*!< Reloads the seed of the PN generator for CSMA procedure */
rosarium 0:2ddc0583bcec 1961 #define PROTOCOL1_PIGGYBACKING_MASK ((uint8_t)0x40) /*!< Enable/disable Piggybacking */
rosarium 0:2ddc0583bcec 1962 #define PROTOCOL1_LDC_RELOAD_ON_SYNC_MASK ((uint8_t)0x80) /*!< LDC timer will be reloaded with the value stored in the LDC_RELOAD registers */
rosarium 0:2ddc0583bcec 1963
rosarium 0:2ddc0583bcec 1964 /**
rosarium 0:2ddc0583bcec 1965 * @}
rosarium 0:2ddc0583bcec 1966 */
rosarium 0:2ddc0583bcec 1967
rosarium 0:2ddc0583bcec 1968 /** @defgroup PROTOCOL0_Register
rosarium 0:2ddc0583bcec 1969 * @{
rosarium 0:2ddc0583bcec 1970 */
rosarium 0:2ddc0583bcec 1971
rosarium 0:2ddc0583bcec 1972 /**
rosarium 0:2ddc0583bcec 1973 * \brief PROTOCOL0 register
rosarium 0:2ddc0583bcec 1974 * \code
rosarium 0:2ddc0583bcec 1975 * Default value: 0x08
rosarium 0:2ddc0583bcec 1976 * Read Write
rosarium 0:2ddc0583bcec 1977 * 7:4 NMAX_RETX[3:0]: Max number of re-TX. 0 - re-transmission is not performed
rosarium 0:2ddc0583bcec 1978 *
rosarium 0:2ddc0583bcec 1979 * 3 NACK_TX[0]: 1 - field NO_ACK=1 on transmitted packet
rosarium 0:2ddc0583bcec 1980 *
rosarium 0:2ddc0583bcec 1981 * 2 AUTO_ACK[0]: 1 - automatic ack after RX
rosarium 0:2ddc0583bcec 1982 *
rosarium 0:2ddc0583bcec 1983 * 1 PERS_RX[0]: 1 - persistent reception enabled
rosarium 0:2ddc0583bcec 1984 *
rosarium 0:2ddc0583bcec 1985 * 0 PERS_TX[0]: 1 - persistent transmission enabled
rosarium 0:2ddc0583bcec 1986 *
rosarium 0:2ddc0583bcec 1987 * \endcode
rosarium 0:2ddc0583bcec 1988 */
rosarium 0:2ddc0583bcec 1989 #define PROTOCOL0_BASE ((uint8_t)0x52) /*!< Persistent RX/TX, autoack, Max number of retransmissions */
rosarium 0:2ddc0583bcec 1990
rosarium 0:2ddc0583bcec 1991 #define PROTOCOL0_PERS_TX_MASK ((uint8_t)0x01) /*!< Enables persistent transmission */
rosarium 0:2ddc0583bcec 1992 #define PROTOCOL0_PERS_RX_MASK ((uint8_t)0x02) /*!< Enables persistent reception */
rosarium 0:2ddc0583bcec 1993 #define PROTOCOL0_AUTO_ACK_MASK ((uint8_t)0x04) /*!< Enables auto acknowlegment */
rosarium 0:2ddc0583bcec 1994 #define PROTOCOL0_NACK_TX_MASK ((uint8_t)0x08) /*!< Writes field NO_ACK=1 on transmitted packet */
rosarium 0:2ddc0583bcec 1995 #define PROTOCOL0_NMAX_RETX_MASK ((uint8_t)0xF0) /*!< Retransmission mask */
rosarium 0:2ddc0583bcec 1996
rosarium 0:2ddc0583bcec 1997 /**
rosarium 0:2ddc0583bcec 1998 * @}
rosarium 0:2ddc0583bcec 1999 */
rosarium 0:2ddc0583bcec 2000
rosarium 0:2ddc0583bcec 2001 /** @defgroup TIMERS5_Register
rosarium 0:2ddc0583bcec 2002 * @{
rosarium 0:2ddc0583bcec 2003 */
rosarium 0:2ddc0583bcec 2004
rosarium 0:2ddc0583bcec 2005 /**
rosarium 0:2ddc0583bcec 2006 * \brief TIMERS5 register
rosarium 0:2ddc0583bcec 2007 * \code
rosarium 0:2ddc0583bcec 2008 * Default value: 0x00
rosarium 0:2ddc0583bcec 2009 * Read Write
rosarium 0:2ddc0583bcec 2010 * 7:0 RX_TIMEOUT_PRESCALER[7:0] : RX operation timeout: prescaler value
rosarium 0:2ddc0583bcec 2011 * \endcode
rosarium 0:2ddc0583bcec 2012 */
rosarium 0:2ddc0583bcec 2013 #define TIMERS5_RX_TIMEOUT_PRESCALER_BASE ((uint8_t)0x53) /*!< RX operation timeout: prescaler value */
rosarium 0:2ddc0583bcec 2014
rosarium 0:2ddc0583bcec 2015 /**
rosarium 0:2ddc0583bcec 2016 * @}
rosarium 0:2ddc0583bcec 2017 */
rosarium 0:2ddc0583bcec 2018
rosarium 0:2ddc0583bcec 2019 /** @defgroup TIMERS4_Register
rosarium 0:2ddc0583bcec 2020 * @{
rosarium 0:2ddc0583bcec 2021 */
rosarium 0:2ddc0583bcec 2022
rosarium 0:2ddc0583bcec 2023 /**
rosarium 0:2ddc0583bcec 2024 * \brief TIMERS4 register
rosarium 0:2ddc0583bcec 2025 * \code
rosarium 0:2ddc0583bcec 2026 * Default value: 0x00
rosarium 0:2ddc0583bcec 2027 * Read Write
rosarium 0:2ddc0583bcec 2028 * 7:0 RX_TIMEOUT_COUNTER[7:0] : RX operation timeout: counter value
rosarium 0:2ddc0583bcec 2029 * \endcode
rosarium 0:2ddc0583bcec 2030 */
rosarium 0:2ddc0583bcec 2031 #define TIMERS4_RX_TIMEOUT_COUNTER_BASE ((uint8_t)0x54) /*!< RX operation timeout: counter value */
rosarium 0:2ddc0583bcec 2032
rosarium 0:2ddc0583bcec 2033 /**
rosarium 0:2ddc0583bcec 2034 * @}
rosarium 0:2ddc0583bcec 2035 */
rosarium 0:2ddc0583bcec 2036
rosarium 0:2ddc0583bcec 2037 /** @defgroup TIMERS3_Register
rosarium 0:2ddc0583bcec 2038 * @{
rosarium 0:2ddc0583bcec 2039 */
rosarium 0:2ddc0583bcec 2040
rosarium 0:2ddc0583bcec 2041 /**
rosarium 0:2ddc0583bcec 2042 * \brief TIMERS3 register
rosarium 0:2ddc0583bcec 2043 * \code
rosarium 0:2ddc0583bcec 2044 * Default value: 0x00
rosarium 0:2ddc0583bcec 2045 * Read Write
rosarium 0:2ddc0583bcec 2046 * 7:0 LDCR_PRESCALER[7:0] : LDC Mode: Prescaler part of the wake-up value
rosarium 0:2ddc0583bcec 2047 * \endcode
rosarium 0:2ddc0583bcec 2048 */
rosarium 0:2ddc0583bcec 2049 #define TIMERS3_LDC_PRESCALER_BASE ((uint8_t)0x55) /*!< LDC Mode: Prescaler of the wake-up timer */
rosarium 0:2ddc0583bcec 2050
rosarium 0:2ddc0583bcec 2051 /**
rosarium 0:2ddc0583bcec 2052 * @}
rosarium 0:2ddc0583bcec 2053 */
rosarium 0:2ddc0583bcec 2054
rosarium 0:2ddc0583bcec 2055 /** @defgroup TIMERS2_Register
rosarium 0:2ddc0583bcec 2056 * @{
rosarium 0:2ddc0583bcec 2057 */
rosarium 0:2ddc0583bcec 2058
rosarium 0:2ddc0583bcec 2059 /**
rosarium 0:2ddc0583bcec 2060 * \brief TIMERS2 register
rosarium 0:2ddc0583bcec 2061 * \code
rosarium 0:2ddc0583bcec 2062 * Default value: 0x00
rosarium 0:2ddc0583bcec 2063 * Read Write
rosarium 0:2ddc0583bcec 2064 * 7:0 LDCR_COUNTER[7:0] : LDC Mode: counter part of the wake-up value
rosarium 0:2ddc0583bcec 2065 * \endcode
rosarium 0:2ddc0583bcec 2066 */
rosarium 0:2ddc0583bcec 2067 #define TIMERS2_LDC_COUNTER_BASE ((uint8_t)0x56) /*!< LDC Mode: counter of the wake-up timer */
rosarium 0:2ddc0583bcec 2068
rosarium 0:2ddc0583bcec 2069 /**
rosarium 0:2ddc0583bcec 2070 * @}
rosarium 0:2ddc0583bcec 2071 */
rosarium 0:2ddc0583bcec 2072
rosarium 0:2ddc0583bcec 2073 /** @defgroup TIMERS1_Register
rosarium 0:2ddc0583bcec 2074 * @{
rosarium 0:2ddc0583bcec 2075 */
rosarium 0:2ddc0583bcec 2076
rosarium 0:2ddc0583bcec 2077 /**
rosarium 0:2ddc0583bcec 2078 * \brief TIMERS1 register
rosarium 0:2ddc0583bcec 2079 * \code
rosarium 0:2ddc0583bcec 2080 * Default value: 0x00
rosarium 0:2ddc0583bcec 2081 * Read Write
rosarium 0:2ddc0583bcec 2082 * 7:0 LDCR_RELOAD_PRESCALER[7:0] : LDC Mode: Prescaler part of the reload value
rosarium 0:2ddc0583bcec 2083 * \endcode
rosarium 0:2ddc0583bcec 2084 */
rosarium 0:2ddc0583bcec 2085 #define TIMERS1_LDC_RELOAD_PRESCALER_BASE ((uint8_t)0x57) /*!< LDC Mode: Prescaler part of the reload value */
rosarium 0:2ddc0583bcec 2086
rosarium 0:2ddc0583bcec 2087 /**
rosarium 0:2ddc0583bcec 2088 * @}
rosarium 0:2ddc0583bcec 2089 */
rosarium 0:2ddc0583bcec 2090
rosarium 0:2ddc0583bcec 2091 /** @defgroup TIMERS0_Register
rosarium 0:2ddc0583bcec 2092 * @{
rosarium 0:2ddc0583bcec 2093 */
rosarium 0:2ddc0583bcec 2094
rosarium 0:2ddc0583bcec 2095 /**
rosarium 0:2ddc0583bcec 2096 * \brief TIMERS0 register
rosarium 0:2ddc0583bcec 2097 * \code
rosarium 0:2ddc0583bcec 2098 * Default value: 0x00
rosarium 0:2ddc0583bcec 2099 * Read Write
rosarium 0:2ddc0583bcec 2100 * 7:0 LDCR_RELOAD_COUNTER[7:0] : LDC Mode: Counter part of the reload value
rosarium 0:2ddc0583bcec 2101 * \endcode
rosarium 0:2ddc0583bcec 2102 */
rosarium 0:2ddc0583bcec 2103 #define TIMERS0_LDC_RELOAD_COUNTER_BASE ((uint8_t)0x58) /*!< LDC Mode: Counter part of the reload value */
rosarium 0:2ddc0583bcec 2104
rosarium 0:2ddc0583bcec 2105 /**
rosarium 0:2ddc0583bcec 2106 * @}
rosarium 0:2ddc0583bcec 2107 */
rosarium 0:2ddc0583bcec 2108
rosarium 0:2ddc0583bcec 2109
rosarium 0:2ddc0583bcec 2110 /** @defgroup CSMA_CONFIG3_Register
rosarium 0:2ddc0583bcec 2111 * @{
rosarium 0:2ddc0583bcec 2112 */
rosarium 0:2ddc0583bcec 2113
rosarium 0:2ddc0583bcec 2114 /**
rosarium 0:2ddc0583bcec 2115 * \brief CSMA_CONFIG3 registers
rosarium 0:2ddc0583bcec 2116 * \code
rosarium 0:2ddc0583bcec 2117 * Default value: 0xFF
rosarium 0:2ddc0583bcec 2118 * Read Write
rosarium 0:2ddc0583bcec 2119 * 7:0 BU_COUNTER_SEED_MSByte: Seed of the random number generator used to apply the BEB (Binary Exponential Backoff) algorithm (MSB)
rosarium 0:2ddc0583bcec 2120 * \endcode
rosarium 0:2ddc0583bcec 2121 */
rosarium 0:2ddc0583bcec 2122 #define CSMA_CONFIG3_BASE ((uint8_t)0x64) /*!< CSMA/CA: Seed of the random number generator used to apply the BEB (Binary Exponential Backoff) algorithm (MSB) */
rosarium 0:2ddc0583bcec 2123
rosarium 0:2ddc0583bcec 2124 /**
rosarium 0:2ddc0583bcec 2125 * @}
rosarium 0:2ddc0583bcec 2126 */
rosarium 0:2ddc0583bcec 2127
rosarium 0:2ddc0583bcec 2128 /** @defgroup CSMA_CONFIG2_Register
rosarium 0:2ddc0583bcec 2129 * @{
rosarium 0:2ddc0583bcec 2130 */
rosarium 0:2ddc0583bcec 2131
rosarium 0:2ddc0583bcec 2132 /**
rosarium 0:2ddc0583bcec 2133 * \brief CSMA_CONFIG2 registers
rosarium 0:2ddc0583bcec 2134 * \code
rosarium 0:2ddc0583bcec 2135 * Default value: 0x00
rosarium 0:2ddc0583bcec 2136 * Read Write
rosarium 0:2ddc0583bcec 2137 * 7:0 BU_COUNTER_SEED_LSByte: Seed of the random number generator used to apply the BEB (Binary Exponential Backoff) algorithm (LSB)
rosarium 0:2ddc0583bcec 2138 * \endcode
rosarium 0:2ddc0583bcec 2139 */
rosarium 0:2ddc0583bcec 2140 #define CSMA_CONFIG2_BASE ((uint8_t)0x65) /*!< CSMA/CA: Seed of the random number generator used to apply the BEB (Binary Exponential Backoff) algorithm (LSB) */
rosarium 0:2ddc0583bcec 2141
rosarium 0:2ddc0583bcec 2142 /**
rosarium 0:2ddc0583bcec 2143 * @}
rosarium 0:2ddc0583bcec 2144 */
rosarium 0:2ddc0583bcec 2145
rosarium 0:2ddc0583bcec 2146 /** @defgroup CSMA_CONFIG1_Register
rosarium 0:2ddc0583bcec 2147 * @{
rosarium 0:2ddc0583bcec 2148 */
rosarium 0:2ddc0583bcec 2149
rosarium 0:2ddc0583bcec 2150 /**
rosarium 0:2ddc0583bcec 2151 * \brief CSMA_CONFIG1 registers
rosarium 0:2ddc0583bcec 2152 * \code
rosarium 0:2ddc0583bcec 2153 * Default value: 0x04
rosarium 0:2ddc0583bcec 2154 * Read Write
rosarium 0:2ddc0583bcec 2155 * 7:2 BU_PRESCALER[5:0]: Used to program the back-off unit BU
rosarium 0:2ddc0583bcec 2156 *
rosarium 0:2ddc0583bcec 2157 * 1:0 CCA_PERIOD[1:0]: Used to program the Tcca time (64 / 128 /256 / 512 × Tbit.
rosarium 0:2ddc0583bcec 2158 * \endcode
rosarium 0:2ddc0583bcec 2159 */
rosarium 0:2ddc0583bcec 2160 #define CSMA_CONFIG1_BASE ((uint8_t)0x66) /*!< CSMA/CA: Prescaler of the back-off time unit (BU); CCA period */
rosarium 0:2ddc0583bcec 2161
rosarium 0:2ddc0583bcec 2162 #define CSMA_CCA_PERIOD_64TBIT ((uint8_t)0x00) /*!< CSMA/CA: Sets CCA period to 64*TBIT */
rosarium 0:2ddc0583bcec 2163 #define CSMA_CCA_PERIOD_128TBIT ((uint8_t)0x01) /*!< CSMA/CA: Sets CCA period to 128*TBIT */
rosarium 0:2ddc0583bcec 2164 #define CSMA_CCA_PERIOD_256TBIT ((uint8_t)0x02) /*!< CSMA/CA: Sets CCA period to 256*TBIT */
rosarium 0:2ddc0583bcec 2165 #define CSMA_CCA_PERIOD_512TBIT ((uint8_t)0x03) /*!< CSMA/CA: Sets CCA period to 512*TBIT */
rosarium 0:2ddc0583bcec 2166
rosarium 0:2ddc0583bcec 2167 /**
rosarium 0:2ddc0583bcec 2168 * @}
rosarium 0:2ddc0583bcec 2169 */
rosarium 0:2ddc0583bcec 2170
rosarium 0:2ddc0583bcec 2171 /** @defgroup CSMA_CONFIG0_Register
rosarium 0:2ddc0583bcec 2172 * @{
rosarium 0:2ddc0583bcec 2173 */
rosarium 0:2ddc0583bcec 2174
rosarium 0:2ddc0583bcec 2175 /**
rosarium 0:2ddc0583bcec 2176 * \brief CSMA_CONFIG0 registers
rosarium 0:2ddc0583bcec 2177 * \code
rosarium 0:2ddc0583bcec 2178 * Default value: 0x00
rosarium 0:2ddc0583bcec 2179 * Read Write
rosarium 0:2ddc0583bcec 2180 * 7:4 CCA_LENGTH[3:0]: Used to program the Tlisten time
rosarium 0:2ddc0583bcec 2181 *
rosarium 0:2ddc0583bcec 2182 * 3 Reserved.
rosarium 0:2ddc0583bcec 2183 *
rosarium 0:2ddc0583bcec 2184 * 2:0 NBACKOFF_MAX[2:0]: Max number of back-off cycles.
rosarium 0:2ddc0583bcec 2185 * \endcode
rosarium 0:2ddc0583bcec 2186 */
rosarium 0:2ddc0583bcec 2187 #define CSMA_CONFIG0_BASE ((uint8_t)0x67) /*!< CSMA/CA: CCA lenght; Max number of backoff cycles */
rosarium 0:2ddc0583bcec 2188
rosarium 0:2ddc0583bcec 2189 /**
rosarium 0:2ddc0583bcec 2190 * @}
rosarium 0:2ddc0583bcec 2191 */
rosarium 0:2ddc0583bcec 2192
rosarium 0:2ddc0583bcec 2193 /**
rosarium 0:2ddc0583bcec 2194 * @}
rosarium 0:2ddc0583bcec 2195 */
rosarium 0:2ddc0583bcec 2196
rosarium 0:2ddc0583bcec 2197
rosarium 0:2ddc0583bcec 2198 /** @defgroup Link_Quality_Registers
rosarium 0:2ddc0583bcec 2199 * @{
rosarium 0:2ddc0583bcec 2200 */
rosarium 0:2ddc0583bcec 2201
rosarium 0:2ddc0583bcec 2202 /** @defgroup QI_Register
rosarium 0:2ddc0583bcec 2203 * @{
rosarium 0:2ddc0583bcec 2204 */
rosarium 0:2ddc0583bcec 2205
rosarium 0:2ddc0583bcec 2206 /**
rosarium 0:2ddc0583bcec 2207 * \brief QI register
rosarium 0:2ddc0583bcec 2208 * \code
rosarium 0:2ddc0583bcec 2209 * Read Write
rosarium 0:2ddc0583bcec 2210 * Default value: 0x02
rosarium 0:2ddc0583bcec 2211 *
rosarium 0:2ddc0583bcec 2212 * 7:6 SQI_TH[1:0]: SQI threshold according to the formula: 8*SYNC_LEN - 2*SQI_TH
rosarium 0:2ddc0583bcec 2213 *
rosarium 0:2ddc0583bcec 2214 * 5:2 PQI_TH[3:0]: PQI threshold according to the formula: 4*PQI_THR
rosarium 0:2ddc0583bcec 2215 *
rosarium 0:2ddc0583bcec 2216 *
rosarium 0:2ddc0583bcec 2217 * 1 SQI_EN[0]: SQI enable
rosarium 0:2ddc0583bcec 2218 * 1 - Enable
rosarium 0:2ddc0583bcec 2219 * 0 - Disable
rosarium 0:2ddc0583bcec 2220 *
rosarium 0:2ddc0583bcec 2221 * 0 PQI_EN[0]: PQI enable
rosarium 0:2ddc0583bcec 2222 * 1 - Enable
rosarium 0:2ddc0583bcec 2223 * 0 - Disable
rosarium 0:2ddc0583bcec 2224 * \endcode
rosarium 0:2ddc0583bcec 2225 */
rosarium 0:2ddc0583bcec 2226 #define QI_BASE ((uint8_t)0x3A) /*!< QI register */
rosarium 0:2ddc0583bcec 2227
rosarium 0:2ddc0583bcec 2228 #define QI_PQI_MASK ((uint8_t)0x01) /*!< PQI enable/disable */
rosarium 0:2ddc0583bcec 2229 #define QI_SQI_MASK ((uint8_t)0x02) /*!< SQI enable/disable */
rosarium 0:2ddc0583bcec 2230
rosarium 0:2ddc0583bcec 2231 /**
rosarium 0:2ddc0583bcec 2232 * @}
rosarium 0:2ddc0583bcec 2233 */
rosarium 0:2ddc0583bcec 2234
rosarium 0:2ddc0583bcec 2235 /** @defgroup LINK_QUALIF2
rosarium 0:2ddc0583bcec 2236 * @{
rosarium 0:2ddc0583bcec 2237 */
rosarium 0:2ddc0583bcec 2238
rosarium 0:2ddc0583bcec 2239 /**
rosarium 0:2ddc0583bcec 2240 * \brief LINK_QUALIF2 registers
rosarium 0:2ddc0583bcec 2241 * \code
rosarium 0:2ddc0583bcec 2242 * Default value: 0x00
rosarium 0:2ddc0583bcec 2243 * Read
rosarium 0:2ddc0583bcec 2244 *
rosarium 0:2ddc0583bcec 2245 * 7:0 PQI[7:0]: PQI value of the received packet
rosarium 0:2ddc0583bcec 2246 * \endcode
rosarium 0:2ddc0583bcec 2247 */
rosarium 0:2ddc0583bcec 2248 #define LINK_QUALIF2_BASE ((uint8_t)(0xC5)) /*!< PQI value of the received packet */
rosarium 0:2ddc0583bcec 2249
rosarium 0:2ddc0583bcec 2250 /**
rosarium 0:2ddc0583bcec 2251 * @}
rosarium 0:2ddc0583bcec 2252 */
rosarium 0:2ddc0583bcec 2253
rosarium 0:2ddc0583bcec 2254 /** @defgroup LINK_QUALIF1
rosarium 0:2ddc0583bcec 2255 * @{
rosarium 0:2ddc0583bcec 2256 */
rosarium 0:2ddc0583bcec 2257
rosarium 0:2ddc0583bcec 2258 /**
rosarium 0:2ddc0583bcec 2259 * \brief LINK_QUALIF1 registers
rosarium 0:2ddc0583bcec 2260 * \code
rosarium 0:2ddc0583bcec 2261 * Default value: 0x00
rosarium 0:2ddc0583bcec 2262 * Read
rosarium 0:2ddc0583bcec 2263 *
rosarium 0:2ddc0583bcec 2264 * 7 CS: Carrier Sense indication
rosarium 0:2ddc0583bcec 2265 *
rosarium 0:2ddc0583bcec 2266 * 6:0 SQI[6:0]: SQI value of the received packet
rosarium 0:2ddc0583bcec 2267 * \endcode
rosarium 0:2ddc0583bcec 2268 */
rosarium 0:2ddc0583bcec 2269 #define LINK_QUALIF1_BASE ((uint8_t)(0xC6)) /*!< Carrier sense indication [7]; SQI value of the received packet */
rosarium 0:2ddc0583bcec 2270
rosarium 0:2ddc0583bcec 2271 #define LINK_QUALIF1_CS ((uint8_t)(0x80)) /*!< Carrier sense indication [7] */
rosarium 0:2ddc0583bcec 2272
rosarium 0:2ddc0583bcec 2273 /**
rosarium 0:2ddc0583bcec 2274 * @}
rosarium 0:2ddc0583bcec 2275 */
rosarium 0:2ddc0583bcec 2276
rosarium 0:2ddc0583bcec 2277 /** @defgroup LINK_QUALIF0
rosarium 0:2ddc0583bcec 2278 * @{
rosarium 0:2ddc0583bcec 2279 */
rosarium 0:2ddc0583bcec 2280
rosarium 0:2ddc0583bcec 2281 /**
rosarium 0:2ddc0583bcec 2282 * \brief LINK_QUALIF0 registers
rosarium 0:2ddc0583bcec 2283 * \code
rosarium 0:2ddc0583bcec 2284 * Default value: 0x00
rosarium 0:2ddc0583bcec 2285 * Read
rosarium 0:2ddc0583bcec 2286 *
rosarium 0:2ddc0583bcec 2287 * 7:4 LQI [3:0]: LQI value of the received packet
rosarium 0:2ddc0583bcec 2288 *
rosarium 0:2ddc0583bcec 2289 * 3:0 AGC_WORD[3:0]: AGC word of the received packet
rosarium 0:2ddc0583bcec 2290 * \endcode
rosarium 0:2ddc0583bcec 2291 */
rosarium 0:2ddc0583bcec 2292 #define LINK_QUALIF0_BASE ((uint8_t)(0xC7)) /*!< LQI value of the received packet [7:4]; AGC word of the received packet [3:0] */
rosarium 0:2ddc0583bcec 2293
rosarium 0:2ddc0583bcec 2294 /**
rosarium 0:2ddc0583bcec 2295 * @}
rosarium 0:2ddc0583bcec 2296 */
rosarium 0:2ddc0583bcec 2297
rosarium 0:2ddc0583bcec 2298 /** @defgroup RSSI_LEVEL
rosarium 0:2ddc0583bcec 2299 * @{
rosarium 0:2ddc0583bcec 2300 */
rosarium 0:2ddc0583bcec 2301
rosarium 0:2ddc0583bcec 2302 /**
rosarium 0:2ddc0583bcec 2303 * \brief RSSI_LEVEL registers
rosarium 0:2ddc0583bcec 2304 * \code
rosarium 0:2ddc0583bcec 2305 * Default value: 0x00
rosarium 0:2ddc0583bcec 2306 * Read
rosarium 0:2ddc0583bcec 2307 *
rosarium 0:2ddc0583bcec 2308 * 7:0 RSSI_LEVEL[7:0]: RSSI level of the received packet
rosarium 0:2ddc0583bcec 2309 * \endcode
rosarium 0:2ddc0583bcec 2310 */
rosarium 0:2ddc0583bcec 2311 #define RSSI_LEVEL_BASE ((uint8_t)(0xC8)) /*!< RSSI level of the received packet */
rosarium 0:2ddc0583bcec 2312
rosarium 0:2ddc0583bcec 2313 /**
rosarium 0:2ddc0583bcec 2314 * @}
rosarium 0:2ddc0583bcec 2315 */
rosarium 0:2ddc0583bcec 2316
rosarium 0:2ddc0583bcec 2317 /** @defgroup RSSI_FLT_Register
rosarium 0:2ddc0583bcec 2318 * @{
rosarium 0:2ddc0583bcec 2319 */
rosarium 0:2ddc0583bcec 2320
rosarium 0:2ddc0583bcec 2321 /**
rosarium 0:2ddc0583bcec 2322 * \brief RSSI register
rosarium 0:2ddc0583bcec 2323 * \code
rosarium 0:2ddc0583bcec 2324 * Read Write
rosarium 0:2ddc0583bcec 2325 * Default value: 0xF3
rosarium 0:2ddc0583bcec 2326 * 7:4 RSSI_FLT[3:0]: Gain of the RSSI filter
rosarium 0:2ddc0583bcec 2327 *
rosarium 0:2ddc0583bcec 2328 * 3:2 CS_MODE[1:0]: AFC loop gain in slow mode (2's log)
rosarium 0:2ddc0583bcec 2329 *
rosarium 0:2ddc0583bcec 2330 * CS_MODE1 | CS_MODE0 | CS Mode
rosarium 0:2ddc0583bcec 2331 * -----------------------------------------------------------------------------------------
rosarium 0:2ddc0583bcec 2332 * 0 | 0 | Static CS
rosarium 0:2ddc0583bcec 2333 * 0 | 1 | Dynamic CS with 6dB dynamic threshold
rosarium 0:2ddc0583bcec 2334 * 1 | 0 | Dynamic CS with 12dB dynamic threshold
rosarium 0:2ddc0583bcec 2335 * 1 | 1 | Dynamic CS with 18dB dynamic threshold
rosarium 0:2ddc0583bcec 2336 *
rosarium 0:2ddc0583bcec 2337 * 1:0 OOK_PEAK_DECAY[1:0]: Peak decay control for OOK: 3 slow decay; 0 fast decay
rosarium 0:2ddc0583bcec 2338 *
rosarium 0:2ddc0583bcec 2339 * \endcode
rosarium 0:2ddc0583bcec 2340 */
rosarium 0:2ddc0583bcec 2341 #define RSSI_FLT_BASE ((uint8_t)0x21) /*!< Gain of the RSSI filter; lower value is fast but inaccurate,
rosarium 0:2ddc0583bcec 2342 higher value is slow and more accurate */
rosarium 0:2ddc0583bcec 2343 #define RSSI_FLT_CS_MODE_MASK ((uint8_t)0x0C) /*!< Carrier sense mode mask */
rosarium 0:2ddc0583bcec 2344 #define RSSI_FLT_CS_MODE_STATIC ((uint8_t)0x00) /*!< Carrier sense mode; static carrier sensing */
rosarium 0:2ddc0583bcec 2345 #define RSSI_FLT_CS_MODE_DYNAMIC_6 ((uint8_t)0x04) /*!< Carrier sense mode; dynamic carrier sensing with 6dB threshold */
rosarium 0:2ddc0583bcec 2346 #define RSSI_FLT_CS_MODE_DYNAMIC_12 ((uint8_t)0x08) /*!< Carrier sense mode; dynamic carrier sensing with 12dB threshold */
rosarium 0:2ddc0583bcec 2347 #define RSSI_FLT_CS_MODE_DYNAMIC_18 ((uint8_t)0x0C) /*!< Carrier sense mode; dynamic carrier sensing with 18dB threshold */
rosarium 0:2ddc0583bcec 2348 #define RSSI_FLT_OOK_PEAK_DECAY_MASK ((uint8_t)0x03) /*!< Peak decay control for OOK mask */
rosarium 0:2ddc0583bcec 2349 #define RSSI_FLT_OOK_PEAK_DECAY_FAST ((uint8_t)0x00) /*!< Peak decay control for OOK: fast decay */
rosarium 0:2ddc0583bcec 2350 #define RSSI_FLT_OOK_PEAK_DECAY_MEDIUM_FAST ((uint8_t)0x01) /*!< Peak decay control for OOK: medium_fast decay */
rosarium 0:2ddc0583bcec 2351 #define RSSI_FLT_OOK_PEAK_DECAY_MEDIUM_SLOW ((uint8_t)0x02) /*!< Peak decay control for OOK: medium_fast decay */
rosarium 0:2ddc0583bcec 2352 #define RSSI_FLT_OOK_PEAK_DECAY_SLOW ((uint8_t)0x03) /*!< Peak decay control for OOK: slow decay */
rosarium 0:2ddc0583bcec 2353
rosarium 0:2ddc0583bcec 2354 /**
rosarium 0:2ddc0583bcec 2355 * @}
rosarium 0:2ddc0583bcec 2356 */
rosarium 0:2ddc0583bcec 2357
rosarium 0:2ddc0583bcec 2358 /** @defgroup RSSI_TH_Register
rosarium 0:2ddc0583bcec 2359 * @{
rosarium 0:2ddc0583bcec 2360 */
rosarium 0:2ddc0583bcec 2361
rosarium 0:2ddc0583bcec 2362 /**
rosarium 0:2ddc0583bcec 2363 * \brief RSSI_TH register
rosarium 0:2ddc0583bcec 2364 * \code
rosarium 0:2ddc0583bcec 2365 * Read Write
rosarium 0:2ddc0583bcec 2366 * Default value: 0x24
rosarium 0:2ddc0583bcec 2367 *
rosarium 0:2ddc0583bcec 2368 * 7:0 RSSI_THRESHOLD [7:0]: Signal detect threshold in 0.5dB. -120dBm corresponds to 20
rosarium 0:2ddc0583bcec 2369 * \endcode
rosarium 0:2ddc0583bcec 2370 */
rosarium 0:2ddc0583bcec 2371 #define RSSI_TH_BASE ((uint8_t)0x22) /*!< Signal detect threshold in 0.5dB stp. 20 correspond to -120 dBm */
rosarium 0:2ddc0583bcec 2372
rosarium 0:2ddc0583bcec 2373 /**
rosarium 0:2ddc0583bcec 2374 * @}
rosarium 0:2ddc0583bcec 2375 */
rosarium 0:2ddc0583bcec 2376
rosarium 0:2ddc0583bcec 2377 /**
rosarium 0:2ddc0583bcec 2378 * @}
rosarium 0:2ddc0583bcec 2379 */
rosarium 0:2ddc0583bcec 2380
rosarium 0:2ddc0583bcec 2381
rosarium 0:2ddc0583bcec 2382 /** @defgroup FIFO_Registers
rosarium 0:2ddc0583bcec 2383 * @{
rosarium 0:2ddc0583bcec 2384 */
rosarium 0:2ddc0583bcec 2385
rosarium 0:2ddc0583bcec 2386 /** @defgroup FIFO_CONFIG3_Register
rosarium 0:2ddc0583bcec 2387 * @{
rosarium 0:2ddc0583bcec 2388 */
rosarium 0:2ddc0583bcec 2389
rosarium 0:2ddc0583bcec 2390 /**
rosarium 0:2ddc0583bcec 2391 * \brief FIFO_CONFIG3 registers
rosarium 0:2ddc0583bcec 2392 * \code
rosarium 0:2ddc0583bcec 2393 * Default value: 0x30
rosarium 0:2ddc0583bcec 2394 * Read Write
rosarium 0:2ddc0583bcec 2395 * 7 Reserved.
rosarium 0:2ddc0583bcec 2396 *
rosarium 0:2ddc0583bcec 2397 * 6:0 rxafthr [6:0]: FIFO Almost Full threshold for rx fifo.
rosarium 0:2ddc0583bcec 2398 *
rosarium 0:2ddc0583bcec 2399 * \endcode
rosarium 0:2ddc0583bcec 2400 */
rosarium 0:2ddc0583bcec 2401 #define FIFO_CONFIG3_RXAFTHR_BASE ((uint8_t)0x3E) /*!< FIFO Almost Full threshold for rx fifo [6:0] */
rosarium 0:2ddc0583bcec 2402
rosarium 0:2ddc0583bcec 2403 /**
rosarium 0:2ddc0583bcec 2404 * @}
rosarium 0:2ddc0583bcec 2405 */
rosarium 0:2ddc0583bcec 2406
rosarium 0:2ddc0583bcec 2407 /** @defgroup FIFO_CONFIG2_Register
rosarium 0:2ddc0583bcec 2408 * @{
rosarium 0:2ddc0583bcec 2409 */
rosarium 0:2ddc0583bcec 2410
rosarium 0:2ddc0583bcec 2411 /**
rosarium 0:2ddc0583bcec 2412 * \brief FIFO_CONFIG2 registers
rosarium 0:2ddc0583bcec 2413 * \code
rosarium 0:2ddc0583bcec 2414 * Default value: 0x30
rosarium 0:2ddc0583bcec 2415 * Read Write
rosarium 0:2ddc0583bcec 2416 * 7 Reserved.
rosarium 0:2ddc0583bcec 2417 *
rosarium 0:2ddc0583bcec 2418 * 6:0 rxaethr [6:0]: FIFO Almost Empty threshold for rx fifo.
rosarium 0:2ddc0583bcec 2419 *
rosarium 0:2ddc0583bcec 2420 * \endcode
rosarium 0:2ddc0583bcec 2421 */
rosarium 0:2ddc0583bcec 2422 #define FIFO_CONFIG2_RXAETHR_BASE ((uint8_t)0x3F) /*!< FIFO Almost Empty threshold for rx fifo [6:0] */
rosarium 0:2ddc0583bcec 2423
rosarium 0:2ddc0583bcec 2424 /**
rosarium 0:2ddc0583bcec 2425 * @}
rosarium 0:2ddc0583bcec 2426 */
rosarium 0:2ddc0583bcec 2427
rosarium 0:2ddc0583bcec 2428 /** @defgroup FIFO_CONFIG1_Register
rosarium 0:2ddc0583bcec 2429 * @{
rosarium 0:2ddc0583bcec 2430 */
rosarium 0:2ddc0583bcec 2431
rosarium 0:2ddc0583bcec 2432 /**
rosarium 0:2ddc0583bcec 2433 * \brief FIFO_CONFIG1 registers
rosarium 0:2ddc0583bcec 2434 * \code
rosarium 0:2ddc0583bcec 2435 * Default value: 0x30
rosarium 0:2ddc0583bcec 2436 * Read Write
rosarium 0:2ddc0583bcec 2437 * 7 Reserved.
rosarium 0:2ddc0583bcec 2438 *
rosarium 0:2ddc0583bcec 2439 * 6:0 txafthr [6:0]: FIFO Almost Full threshold for tx fifo.
rosarium 0:2ddc0583bcec 2440 *
rosarium 0:2ddc0583bcec 2441 * \endcode
rosarium 0:2ddc0583bcec 2442 */
rosarium 0:2ddc0583bcec 2443 #define FIFO_CONFIG1_TXAFTHR_BASE ((uint8_t)0x40) /*!< FIFO Almost Full threshold for tx fifo [6:0] */
rosarium 0:2ddc0583bcec 2444
rosarium 0:2ddc0583bcec 2445 /**
rosarium 0:2ddc0583bcec 2446 * @}
rosarium 0:2ddc0583bcec 2447 */
rosarium 0:2ddc0583bcec 2448
rosarium 0:2ddc0583bcec 2449 /** @defgroup FIFO_CONFIG0_Register
rosarium 0:2ddc0583bcec 2450 * @{
rosarium 0:2ddc0583bcec 2451 */
rosarium 0:2ddc0583bcec 2452
rosarium 0:2ddc0583bcec 2453 /**
rosarium 0:2ddc0583bcec 2454 * \brief FIFO_CONFIG0 registers
rosarium 0:2ddc0583bcec 2455 * \code
rosarium 0:2ddc0583bcec 2456 * Default value: 0x30
rosarium 0:2ddc0583bcec 2457 * Read Write
rosarium 0:2ddc0583bcec 2458 * 7 Reserved.
rosarium 0:2ddc0583bcec 2459 *
rosarium 0:2ddc0583bcec 2460 * 6:0 txaethr [6:0]: FIFO Almost Empty threshold for tx fifo.
rosarium 0:2ddc0583bcec 2461 *
rosarium 0:2ddc0583bcec 2462 * \endcode
rosarium 0:2ddc0583bcec 2463 */
rosarium 0:2ddc0583bcec 2464 #define FIFO_CONFIG0_TXAETHR_BASE ((uint8_t)0x41) /*!< FIFO Almost Empty threshold for tx fifo [6:0] */
rosarium 0:2ddc0583bcec 2465
rosarium 0:2ddc0583bcec 2466 /**
rosarium 0:2ddc0583bcec 2467 * @}
rosarium 0:2ddc0583bcec 2468 */
rosarium 0:2ddc0583bcec 2469
rosarium 0:2ddc0583bcec 2470 /** @defgroup LINEAR_FIFO_STATUS1_Register
rosarium 0:2ddc0583bcec 2471 * @{
rosarium 0:2ddc0583bcec 2472 */
rosarium 0:2ddc0583bcec 2473
rosarium 0:2ddc0583bcec 2474 /**
rosarium 0:2ddc0583bcec 2475 * \brief LINEAR_FIFO_STATUS1 registers
rosarium 0:2ddc0583bcec 2476 * \code
rosarium 0:2ddc0583bcec 2477 * Default value: 0x00
rosarium 0:2ddc0583bcec 2478 * Read
rosarium 0:2ddc0583bcec 2479 *
rosarium 0:2ddc0583bcec 2480 * 7 Reserved.
rosarium 0:2ddc0583bcec 2481 *
rosarium 0:2ddc0583bcec 2482 * 6:0 elem_txfifo[6:0]: Number of elements in the linear TXFIFO (<=96)
rosarium 0:2ddc0583bcec 2483 * \endcode
rosarium 0:2ddc0583bcec 2484 */
rosarium 0:2ddc0583bcec 2485 #define LINEAR_FIFO_STATUS1_BASE ((uint8_t)(0xE6)) /*!< Number of elements in the linear TX FIFO [6:0] (<=96) */
rosarium 0:2ddc0583bcec 2486
rosarium 0:2ddc0583bcec 2487 /**
rosarium 0:2ddc0583bcec 2488 * @}
rosarium 0:2ddc0583bcec 2489 */
rosarium 0:2ddc0583bcec 2490
rosarium 0:2ddc0583bcec 2491 /** @defgroup LINEAR_FIFO_STATUS0_Register
rosarium 0:2ddc0583bcec 2492 * @{
rosarium 0:2ddc0583bcec 2493 */
rosarium 0:2ddc0583bcec 2494
rosarium 0:2ddc0583bcec 2495 /**
rosarium 0:2ddc0583bcec 2496 * \brief LINEAR_FIFO_STATUS0 registers
rosarium 0:2ddc0583bcec 2497 * \code
rosarium 0:2ddc0583bcec 2498 * Default value: 0x00
rosarium 0:2ddc0583bcec 2499 * Read
rosarium 0:2ddc0583bcec 2500 *
rosarium 0:2ddc0583bcec 2501 * 7 Reserved.
rosarium 0:2ddc0583bcec 2502 *
rosarium 0:2ddc0583bcec 2503 * 6:0 elem_rxfifo[6:0]: Number of elements in the linear RXFIFO (<=96)
rosarium 0:2ddc0583bcec 2504 * \endcode
rosarium 0:2ddc0583bcec 2505 */
rosarium 0:2ddc0583bcec 2506 #define LINEAR_FIFO_STATUS0_BASE ((uint8_t)(0xE7)) /*!< Number of elements in the linear RX FIFO [6:0] (<=96) */
rosarium 0:2ddc0583bcec 2507
rosarium 0:2ddc0583bcec 2508 /**
rosarium 0:2ddc0583bcec 2509 * @}
rosarium 0:2ddc0583bcec 2510 */
rosarium 0:2ddc0583bcec 2511
rosarium 0:2ddc0583bcec 2512
rosarium 0:2ddc0583bcec 2513 /**
rosarium 0:2ddc0583bcec 2514 * @}
rosarium 0:2ddc0583bcec 2515 */
rosarium 0:2ddc0583bcec 2516
rosarium 0:2ddc0583bcec 2517
rosarium 0:2ddc0583bcec 2518 /** @defgroup Calibration_Registers
rosarium 0:2ddc0583bcec 2519 * @{
rosarium 0:2ddc0583bcec 2520 */
rosarium 0:2ddc0583bcec 2521
rosarium 0:2ddc0583bcec 2522 /** @defgroup RCO_VCO_CALIBR_IN2_Register
rosarium 0:2ddc0583bcec 2523 * @{
rosarium 0:2ddc0583bcec 2524 */
rosarium 0:2ddc0583bcec 2525
rosarium 0:2ddc0583bcec 2526 /**
rosarium 0:2ddc0583bcec 2527 * \brief RCO_VCO_CALIBR_IN2 registers
rosarium 0:2ddc0583bcec 2528 * \code
rosarium 0:2ddc0583bcec 2529 * Default value: 0x70
rosarium 0:2ddc0583bcec 2530 * Read Write
rosarium 0:2ddc0583bcec 2531 * 7:4 RWT_IN[3:0]: RaWThermometric word value for the RCO [7:4]
rosarium 0:2ddc0583bcec 2532 *
rosarium 0:2ddc0583bcec 2533 * 3:0 RFB_IN[4:1]: ResistorFineBit word value for the RCO (first 4 bits)
rosarium 0:2ddc0583bcec 2534 * \endcode
rosarium 0:2ddc0583bcec 2535 */
rosarium 0:2ddc0583bcec 2536 #define RCO_VCO_CALIBR_IN2_BASE ((uint8_t)0x6D) /*!< RaWThermometric word value for the RCO [7:4]; ResistorFineBit word value for the RCO [3:0] */
rosarium 0:2ddc0583bcec 2537
rosarium 0:2ddc0583bcec 2538 /**
rosarium 0:2ddc0583bcec 2539 * @}
rosarium 0:2ddc0583bcec 2540 */
rosarium 0:2ddc0583bcec 2541
rosarium 0:2ddc0583bcec 2542 /** @defgroup RCO_VCO_CALIBR_IN1_Register
rosarium 0:2ddc0583bcec 2543 * @{
rosarium 0:2ddc0583bcec 2544 */
rosarium 0:2ddc0583bcec 2545
rosarium 0:2ddc0583bcec 2546 /**
rosarium 0:2ddc0583bcec 2547 * \brief RCO_VCO_CALIBR_IN1 registers
rosarium 0:2ddc0583bcec 2548 * \code
rosarium 0:2ddc0583bcec 2549 * Default value: 0x48
rosarium 0:2ddc0583bcec 2550 * Read Write
rosarium 0:2ddc0583bcec 2551 *
rosarium 0:2ddc0583bcec 2552 * 7 RFB_IN[0]: ResistorFineBit word value for the RCO (LSb)
rosarium 0:2ddc0583bcec 2553 *
rosarium 0:2ddc0583bcec 2554 * 6:0 VCO_CALIBR_TX[6:0]: Word value for the VCO to be used in TX mode
rosarium 0:2ddc0583bcec 2555 * \endcode
rosarium 0:2ddc0583bcec 2556 */
rosarium 0:2ddc0583bcec 2557 #define RCO_VCO_CALIBR_IN1_BASE ((uint8_t)0x6E) /*!< ResistorFineBit word value for the RCO [7]; Word value for the VCO to be used in TX mode [6:0]*/
rosarium 0:2ddc0583bcec 2558
rosarium 0:2ddc0583bcec 2559 /**
rosarium 0:2ddc0583bcec 2560 * @}
rosarium 0:2ddc0583bcec 2561 */
rosarium 0:2ddc0583bcec 2562
rosarium 0:2ddc0583bcec 2563 /** @defgroup RCO_VCO_CALIBR_IN0_Register
rosarium 0:2ddc0583bcec 2564 * @{
rosarium 0:2ddc0583bcec 2565 */
rosarium 0:2ddc0583bcec 2566
rosarium 0:2ddc0583bcec 2567 /**
rosarium 0:2ddc0583bcec 2568 * \brief RCO_VCO_CALIBR_IN0 registers
rosarium 0:2ddc0583bcec 2569 * \code
rosarium 0:2ddc0583bcec 2570 * Default value: 0x48
rosarium 0:2ddc0583bcec 2571 * Read Write
rosarium 0:2ddc0583bcec 2572 *
rosarium 0:2ddc0583bcec 2573 * 7 Reserved.
rosarium 0:2ddc0583bcec 2574 *
rosarium 0:2ddc0583bcec 2575 * 6:0 VCO_CALIBR_RX[6:0]: Word value for the VCO to be used in RX mode
rosarium 0:2ddc0583bcec 2576 * \endcode
rosarium 0:2ddc0583bcec 2577 */
rosarium 0:2ddc0583bcec 2578 #define RCO_VCO_CALIBR_IN0_BASE ((uint8_t)0x6F) /*!< Word value for the VCO to be used in RX mode [6:0] */
rosarium 0:2ddc0583bcec 2579
rosarium 0:2ddc0583bcec 2580 /**
rosarium 0:2ddc0583bcec 2581 * @}
rosarium 0:2ddc0583bcec 2582 */
rosarium 0:2ddc0583bcec 2583
rosarium 0:2ddc0583bcec 2584 /** @defgroup RCO_VCO_CALIBR_OUT1_Register
rosarium 0:2ddc0583bcec 2585 * @{
rosarium 0:2ddc0583bcec 2586 */
rosarium 0:2ddc0583bcec 2587
rosarium 0:2ddc0583bcec 2588 /**
rosarium 0:2ddc0583bcec 2589 * \brief RCO_VCO_CALIBR_OUT1 registers
rosarium 0:2ddc0583bcec 2590 * \code
rosarium 0:2ddc0583bcec 2591 * Default value: 0x00
rosarium 0:2ddc0583bcec 2592 * Read
rosarium 0:2ddc0583bcec 2593 *
rosarium 0:2ddc0583bcec 2594 * 7:4 RWT_OUT[3:0]: RWT word from internal RCO calibrator
rosarium 0:2ddc0583bcec 2595 *
rosarium 0:2ddc0583bcec 2596 * 3:0 RFB_OUT[4:1]: RFB word from internal RCO calibrator (upper part)
rosarium 0:2ddc0583bcec 2597 * \endcode
rosarium 0:2ddc0583bcec 2598 */
rosarium 0:2ddc0583bcec 2599 #define RCO_VCO_CALIBR_OUT1_BASE ((uint8_t)(0xE4)) /*!< RaWThermometric RWT word from internal RCO calibrator [7];
rosarium 0:2ddc0583bcec 2600 ResistorFineBit RFB word from internal RCO oscillator [6:0] */
rosarium 0:2ddc0583bcec 2601 /**
rosarium 0:2ddc0583bcec 2602 * @}
rosarium 0:2ddc0583bcec 2603 */
rosarium 0:2ddc0583bcec 2604
rosarium 0:2ddc0583bcec 2605 /** @defgroup RCO_VCO_CALIBR_OUT0_Register
rosarium 0:2ddc0583bcec 2606 * @{
rosarium 0:2ddc0583bcec 2607 */
rosarium 0:2ddc0583bcec 2608
rosarium 0:2ddc0583bcec 2609 /**
rosarium 0:2ddc0583bcec 2610 * \brief RCO_VCO_CALIBR_OUT0 registers
rosarium 0:2ddc0583bcec 2611 * \code
rosarium 0:2ddc0583bcec 2612 * Default value: 0x00
rosarium 0:2ddc0583bcec 2613 * Read
rosarium 0:2ddc0583bcec 2614 *
rosarium 0:2ddc0583bcec 2615 * 7 RFB_OUT[0]: RFB word from internal RCO calibrator (last bit LSB)
rosarium 0:2ddc0583bcec 2616 *
rosarium 0:2ddc0583bcec 2617 * 6:0 VCO_CALIBR_DATA[6:0]: Output word from internal VCO calibrator
rosarium 0:2ddc0583bcec 2618 * \endcode
rosarium 0:2ddc0583bcec 2619 */
rosarium 0:2ddc0583bcec 2620 #define RCO_VCO_CALIBR_OUT0_BASE ((uint8_t)(0xE5)) /*!< ResistorFineBit RFB word from internal RCO oscillator [0];
rosarium 0:2ddc0583bcec 2621 Output word from internal calibrator [6:0]; */
rosarium 0:2ddc0583bcec 2622 /**
rosarium 0:2ddc0583bcec 2623 * @}
rosarium 0:2ddc0583bcec 2624 */
rosarium 0:2ddc0583bcec 2625
rosarium 0:2ddc0583bcec 2626 /**
rosarium 0:2ddc0583bcec 2627 * @}
rosarium 0:2ddc0583bcec 2628 */
rosarium 0:2ddc0583bcec 2629
rosarium 0:2ddc0583bcec 2630
rosarium 0:2ddc0583bcec 2631 /** @defgroup AES_Registers
rosarium 0:2ddc0583bcec 2632 * @{
rosarium 0:2ddc0583bcec 2633 */
rosarium 0:2ddc0583bcec 2634
rosarium 0:2ddc0583bcec 2635 /** @defgroup AES_KEY_IN_Register
rosarium 0:2ddc0583bcec 2636 * @{
rosarium 0:2ddc0583bcec 2637 */
rosarium 0:2ddc0583bcec 2638
rosarium 0:2ddc0583bcec 2639 /**
rosarium 0:2ddc0583bcec 2640 * \brief AES_KEY_INx registers
rosarium 0:2ddc0583bcec 2641 * \code
rosarium 0:2ddc0583bcec 2642 * Default value: 0x00
rosarium 0:2ddc0583bcec 2643 * Read Write
rosarium 0:2ddc0583bcec 2644 *
rosarium 0:2ddc0583bcec 2645 * 7:0 AES_KEY_INx[7:0]: AES engine key input (total - 128 bits)
rosarium 0:2ddc0583bcec 2646 * \endcode
rosarium 0:2ddc0583bcec 2647 */
rosarium 0:2ddc0583bcec 2648 #define AES_KEY_IN_15_BASE ((uint8_t)0x70) /*!< AES engine key input 15 */
rosarium 0:2ddc0583bcec 2649
rosarium 0:2ddc0583bcec 2650 #define AES_KEY_IN_14_BASE ((uint8_t)0x71) /*!< AES engine key input 14 */
rosarium 0:2ddc0583bcec 2651
rosarium 0:2ddc0583bcec 2652 #define AES_KEY_IN_13_BASE ((uint8_t)0x72) /*!< AES engine key input 13 */
rosarium 0:2ddc0583bcec 2653
rosarium 0:2ddc0583bcec 2654 #define AES_KEY_IN_12_BASE ((uint8_t)0x73) /*!< AES engine key input 12 */
rosarium 0:2ddc0583bcec 2655
rosarium 0:2ddc0583bcec 2656 #define AES_KEY_IN_11_BASE ((uint8_t)0x74) /*!< AES engine key input 11 */
rosarium 0:2ddc0583bcec 2657
rosarium 0:2ddc0583bcec 2658 #define AES_KEY_IN_10_BASE ((uint8_t)0x75) /*!< AES engine key input 10 */
rosarium 0:2ddc0583bcec 2659
rosarium 0:2ddc0583bcec 2660 #define AES_KEY_IN_9_BASE ((uint8_t)0x76) /*!< AES engine key input 9 */
rosarium 0:2ddc0583bcec 2661
rosarium 0:2ddc0583bcec 2662 #define AES_KEY_IN_8_BASE ((uint8_t)0x77) /*!< AES engine key input 8 */
rosarium 0:2ddc0583bcec 2663
rosarium 0:2ddc0583bcec 2664 #define AES_KEY_IN_7_BASE ((uint8_t)0x78) /*!< AES engine key input 7 */
rosarium 0:2ddc0583bcec 2665
rosarium 0:2ddc0583bcec 2666 #define AES_KEY_IN_6_BASE ((uint8_t)0x79) /*!< AES engine key input 6 */
rosarium 0:2ddc0583bcec 2667
rosarium 0:2ddc0583bcec 2668 #define AES_KEY_IN_5_BASE ((uint8_t)0x7A) /*!< AES engine key input 5 */
rosarium 0:2ddc0583bcec 2669
rosarium 0:2ddc0583bcec 2670 #define AES_KEY_IN_4_BASE ((uint8_t)0x7B) /*!< AES engine key input 4 */
rosarium 0:2ddc0583bcec 2671
rosarium 0:2ddc0583bcec 2672 #define AES_KEY_IN_3_BASE ((uint8_t)0x7C) /*!< AES engine key input 3 */
rosarium 0:2ddc0583bcec 2673
rosarium 0:2ddc0583bcec 2674 #define AES_KEY_IN_2_BASE ((uint8_t)0x7D) /*!< AES engine key input 2 */
rosarium 0:2ddc0583bcec 2675
rosarium 0:2ddc0583bcec 2676 #define AES_KEY_IN_1_BASE ((uint8_t)0x7E) /*!< AES engine key input 1 */
rosarium 0:2ddc0583bcec 2677
rosarium 0:2ddc0583bcec 2678 #define AES_KEY_IN_0_BASE ((uint8_t)0x7F) /*!< AES engine key input 0 */
rosarium 0:2ddc0583bcec 2679
rosarium 0:2ddc0583bcec 2680 /**
rosarium 0:2ddc0583bcec 2681 * @}
rosarium 0:2ddc0583bcec 2682 */
rosarium 0:2ddc0583bcec 2683
rosarium 0:2ddc0583bcec 2684 /** @defgroup AES_DATA_IN_Register
rosarium 0:2ddc0583bcec 2685 * @{
rosarium 0:2ddc0583bcec 2686 */
rosarium 0:2ddc0583bcec 2687
rosarium 0:2ddc0583bcec 2688 /**
rosarium 0:2ddc0583bcec 2689 * \brief AES_DATA_INx registers
rosarium 0:2ddc0583bcec 2690 * \code
rosarium 0:2ddc0583bcec 2691 * Default value: 0x00
rosarium 0:2ddc0583bcec 2692 * Read Write
rosarium 0:2ddc0583bcec 2693 *
rosarium 0:2ddc0583bcec 2694 * 7:0 AES_DATA_INx[7:0]: AES engine data input (total - 128 bits)
rosarium 0:2ddc0583bcec 2695 * \endcode
rosarium 0:2ddc0583bcec 2696 */
rosarium 0:2ddc0583bcec 2697 #define AES_DATA_IN_15_BASE ((uint8_t)0x80) /*!< AES engine data input 15
rosarium 0:2ddc0583bcec 2698 Take care: Address is in reverse order respect data numbering; eg.: 0x81 -> AES_data14[7:0] */
rosarium 0:2ddc0583bcec 2699 #define AES_DATA_IN_14_BASE ((uint8_t)0x81) /*!< AES engine data input 14 */
rosarium 0:2ddc0583bcec 2700
rosarium 0:2ddc0583bcec 2701 #define AES_DATA_IN_13_BASE ((uint8_t)0x82) /*!< AES engine data input 13 */
rosarium 0:2ddc0583bcec 2702
rosarium 0:2ddc0583bcec 2703 #define AES_DATA_IN_12_BASE ((uint8_t)0x83) /*!< AES engine data input 12 */
rosarium 0:2ddc0583bcec 2704
rosarium 0:2ddc0583bcec 2705 #define AES_DATA_IN_11_BASE ((uint8_t)0x84) /*!< AES engine data input 11 */
rosarium 0:2ddc0583bcec 2706
rosarium 0:2ddc0583bcec 2707 #define AES_DATA_IN_10_BASE ((uint8_t)0x85) /*!< AES engine data input 10 */
rosarium 0:2ddc0583bcec 2708
rosarium 0:2ddc0583bcec 2709 #define AES_DATA_IN_9_BASE ((uint8_t)0x86) /*!< AES engine data input 9 */
rosarium 0:2ddc0583bcec 2710
rosarium 0:2ddc0583bcec 2711 #define AES_DATA_IN_8_BASE ((uint8_t)0x87) /*!< AES engine data input 8 */
rosarium 0:2ddc0583bcec 2712
rosarium 0:2ddc0583bcec 2713 #define AES_DATA_IN_7_BASE ((uint8_t)0x88) /*!< AES engine data input 7 */
rosarium 0:2ddc0583bcec 2714
rosarium 0:2ddc0583bcec 2715 #define AES_DATA_IN_6_BASE ((uint8_t)0x89) /*!< AES engine data input 6 */
rosarium 0:2ddc0583bcec 2716
rosarium 0:2ddc0583bcec 2717 #define AES_DATA_IN_5_BASE ((uint8_t)0x8A) /*!< AES engine data input 5 */
rosarium 0:2ddc0583bcec 2718
rosarium 0:2ddc0583bcec 2719 #define AES_DATA_IN_4_BASE ((uint8_t)0x8B) /*!< AES engine data input 4 */
rosarium 0:2ddc0583bcec 2720
rosarium 0:2ddc0583bcec 2721 #define AES_DATA_IN_3_BASE ((uint8_t)0x8C) /*!< AES engine data input 3 */
rosarium 0:2ddc0583bcec 2722
rosarium 0:2ddc0583bcec 2723 #define AES_DATA_IN_2_BASE ((uint8_t)0x8D) /*!< AES engine data input 2 */
rosarium 0:2ddc0583bcec 2724
rosarium 0:2ddc0583bcec 2725 #define AES_DATA_IN_1_BASE ((uint8_t)0x8E) /*!< AES engine data input 1 */
rosarium 0:2ddc0583bcec 2726
rosarium 0:2ddc0583bcec 2727 #define AES_DATA_IN_0_BASE ((uint8_t)0x8F) /*!< AES engine data input 0 */
rosarium 0:2ddc0583bcec 2728
rosarium 0:2ddc0583bcec 2729 /**
rosarium 0:2ddc0583bcec 2730 * @}
rosarium 0:2ddc0583bcec 2731 */
rosarium 0:2ddc0583bcec 2732
rosarium 0:2ddc0583bcec 2733 /** @defgroup AES_DATA_OUT_Register
rosarium 0:2ddc0583bcec 2734 * @{
rosarium 0:2ddc0583bcec 2735 */
rosarium 0:2ddc0583bcec 2736
rosarium 0:2ddc0583bcec 2737 /**
rosarium 0:2ddc0583bcec 2738 * \brief AES_DATA_OUT[15:0] registers
rosarium 0:2ddc0583bcec 2739 * \code
rosarium 0:2ddc0583bcec 2740 * Default value: 0x00
rosarium 0:2ddc0583bcec 2741 * Read
rosarium 0:2ddc0583bcec 2742 *
rosarium 0:2ddc0583bcec 2743 * 7:0 AES_DATA_OUTx[7:0]: AES engine data output (128 bits)
rosarium 0:2ddc0583bcec 2744 * \endcode
rosarium 0:2ddc0583bcec 2745 */
rosarium 0:2ddc0583bcec 2746 #define AES_DATA_OUT_15_BASE ((uint8_t)(0xD4)) /*!< AES engine data output 15 */
rosarium 0:2ddc0583bcec 2747
rosarium 0:2ddc0583bcec 2748 #define AES_DATA_OUT_14_BASE ((uint8_t)(0xD5)) /*!< AES engine data output 14 */
rosarium 0:2ddc0583bcec 2749
rosarium 0:2ddc0583bcec 2750 #define AES_DATA_OUT_13_BASE ((uint8_t)(0xD6)) /*!< AES engine data output 13 */
rosarium 0:2ddc0583bcec 2751
rosarium 0:2ddc0583bcec 2752 #define AES_DATA_OUT_12_BASE ((uint8_t)(0xD7)) /*!< AES engine data output 12 */
rosarium 0:2ddc0583bcec 2753
rosarium 0:2ddc0583bcec 2754 #define AES_DATA_OUT_11_BASE ((uint8_t)(0xD8)) /*!< AES engine data output 11 */
rosarium 0:2ddc0583bcec 2755
rosarium 0:2ddc0583bcec 2756 #define AES_DATA_OUT_10_BASE ((uint8_t)(0xD9)) /*!< AES engine data output 10 */
rosarium 0:2ddc0583bcec 2757
rosarium 0:2ddc0583bcec 2758 #define AES_DATA_OUT_9_BASE ((uint8_t)(0xDA)) /*!< AES engine data output 9 */
rosarium 0:2ddc0583bcec 2759
rosarium 0:2ddc0583bcec 2760 #define AES_DATA_OUT_8_BASE ((uint8_t)(0xDB)) /*!< AES engine data output 8 */
rosarium 0:2ddc0583bcec 2761
rosarium 0:2ddc0583bcec 2762 #define AES_DATA_OUT_7_BASE ((uint8_t)(0xDC)) /*!< AES engine data output 7 */
rosarium 0:2ddc0583bcec 2763
rosarium 0:2ddc0583bcec 2764 #define AES_DATA_OUT_6_BASE ((uint8_t)(0xDD)) /*!< AES engine data output 6 */
rosarium 0:2ddc0583bcec 2765
rosarium 0:2ddc0583bcec 2766 #define AES_DATA_OUT_5_BASE ((uint8_t)(0xDE)) /*!< AES engine data output 5 */
rosarium 0:2ddc0583bcec 2767
rosarium 0:2ddc0583bcec 2768 #define AES_DATA_OUT_4_BASE ((uint8_t)(0xDF)) /*!< AES engine data output 4 */
rosarium 0:2ddc0583bcec 2769
rosarium 0:2ddc0583bcec 2770 #define AES_DATA_OUT_3_BASE ((uint8_t)(0xE0)) /*!< AES engine data output 3 */
rosarium 0:2ddc0583bcec 2771
rosarium 0:2ddc0583bcec 2772 #define AES_DATA_OUT_2_BASE ((uint8_t)(0xE1)) /*!< AES engine data output 2 */
rosarium 0:2ddc0583bcec 2773
rosarium 0:2ddc0583bcec 2774 #define AES_DATA_OUT_1_BASE ((uint8_t)(0xE2)) /*!< AES engine data output 1 */
rosarium 0:2ddc0583bcec 2775
rosarium 0:2ddc0583bcec 2776 #define AES_DATA_OUT_0_BASE ((uint8_t)(0xE3)) /*!< AES engine data output 0 */
rosarium 0:2ddc0583bcec 2777
rosarium 0:2ddc0583bcec 2778 /**
rosarium 0:2ddc0583bcec 2779 * @}
rosarium 0:2ddc0583bcec 2780 */
rosarium 0:2ddc0583bcec 2781
rosarium 0:2ddc0583bcec 2782 /**
rosarium 0:2ddc0583bcec 2783 * @}
rosarium 0:2ddc0583bcec 2784 */
rosarium 0:2ddc0583bcec 2785
rosarium 0:2ddc0583bcec 2786 /** @defgroup IRQ_Registers
rosarium 0:2ddc0583bcec 2787 * @{
rosarium 0:2ddc0583bcec 2788 */
rosarium 0:2ddc0583bcec 2789
rosarium 0:2ddc0583bcec 2790 /** @defgroup IRQ_MASK0_Register
rosarium 0:2ddc0583bcec 2791 * @{
rosarium 0:2ddc0583bcec 2792 */
rosarium 0:2ddc0583bcec 2793
rosarium 0:2ddc0583bcec 2794 /**
rosarium 0:2ddc0583bcec 2795 * \brief IRQ_MASK0 registers
rosarium 0:2ddc0583bcec 2796 * \code
rosarium 0:2ddc0583bcec 2797 * Default value: 0x00
rosarium 0:2ddc0583bcec 2798 * Read Write
rosarium 0:2ddc0583bcec 2799 *
rosarium 0:2ddc0583bcec 2800 * 7:0 INT_MASK0: IRQ mask, if the correspondent bit is set and IRQ can be generated (according to the next table)
rosarium 0:2ddc0583bcec 2801 *
rosarium 0:2ddc0583bcec 2802 * Bit | Events Group Interrupt Event
rosarium 0:2ddc0583bcec 2803 * -------------------------------------------------------
rosarium 0:2ddc0583bcec 2804 * 0 | RX data ready
rosarium 0:2ddc0583bcec 2805 * 1 | RX data discarded (upon filtering)
rosarium 0:2ddc0583bcec 2806 * 2 | TX data sent
rosarium 0:2ddc0583bcec 2807 * 3 | Max re-TX reached
rosarium 0:2ddc0583bcec 2808 * 4 | CRC error
rosarium 0:2ddc0583bcec 2809 * 5 | TX FIFO underflow/overflow error
rosarium 0:2ddc0583bcec 2810 * 6 | RX FIFO underflow/overflow error
rosarium 0:2ddc0583bcec 2811 * 7 | TX FIFO almost full
rosarium 0:2ddc0583bcec 2812 * \endcode
rosarium 0:2ddc0583bcec 2813 */
rosarium 0:2ddc0583bcec 2814
rosarium 0:2ddc0583bcec 2815
rosarium 0:2ddc0583bcec 2816 #define IRQ_MASK0_BASE ((uint8_t)0x93) /*!< IRQ_MASK is split into 4 registers*/
rosarium 0:2ddc0583bcec 2817
rosarium 0:2ddc0583bcec 2818 #define IRQ_MASK0_RX_DATA_READY ((uint8_t)0x01) /*!< IRQ: RX data ready */
rosarium 0:2ddc0583bcec 2819 #define IRQ_MASK0_RX_DATA_DISC ((uint8_t)0x02) /*!< IRQ: RX data discarded (upon filtering) */
rosarium 0:2ddc0583bcec 2820 #define IRQ_MASK0_TX_DATA_SENT ((uint8_t)0x04) /*!< IRQ: TX data sent */
rosarium 0:2ddc0583bcec 2821 #define IRQ_MASK0_MAX_RE_TX_REACH ((uint8_t)0x08) /*!< IRQ: Max re-TX reached */
rosarium 0:2ddc0583bcec 2822 #define IRQ_MASK0_CRC_ERROR ((uint8_t)0x10) /*!< IRQ: CRC error */
rosarium 0:2ddc0583bcec 2823 #define IRQ_MASK0_TX_FIFO_ERROR ((uint8_t)0x20) /*!< IRQ: TX FIFO underflow/overflow error */
rosarium 0:2ddc0583bcec 2824 #define IRQ_MASK0_RX_FIFO_ERROR ((uint8_t)0x40) /*!< IRQ: RX FIFO underflow/overflow error */
rosarium 0:2ddc0583bcec 2825 #define IRQ_MASK0_TX_FIFO_ALMOST_FULL ((uint8_t)0x80) /*!< IRQ: TX FIFO almost full */
rosarium 0:2ddc0583bcec 2826
rosarium 0:2ddc0583bcec 2827 /**
rosarium 0:2ddc0583bcec 2828 * @}
rosarium 0:2ddc0583bcec 2829 */
rosarium 0:2ddc0583bcec 2830
rosarium 0:2ddc0583bcec 2831 /** @defgroup IRQ_MASK1_Register
rosarium 0:2ddc0583bcec 2832 * @{
rosarium 0:2ddc0583bcec 2833 */
rosarium 0:2ddc0583bcec 2834
rosarium 0:2ddc0583bcec 2835 /**
rosarium 0:2ddc0583bcec 2836 * \brief IRQ_MASK1 registers
rosarium 0:2ddc0583bcec 2837 * \code
rosarium 0:2ddc0583bcec 2838 * Default value: 0x00
rosarium 0:2ddc0583bcec 2839 * Read Write
rosarium 0:2ddc0583bcec 2840 *
rosarium 0:2ddc0583bcec 2841 * 7:0 INT_MASK1: IRQ mask, if the correspondent bit is set and IRQ can be generated (according to the next table)
rosarium 0:2ddc0583bcec 2842 *
rosarium 0:2ddc0583bcec 2843 * Bit | Events Group Interrupt Event
rosarium 0:2ddc0583bcec 2844 * -------------------------------------------------------
rosarium 0:2ddc0583bcec 2845 * 8 | TX FIFO almost empty
rosarium 0:2ddc0583bcec 2846 * 9 | RX FIFO almost full
rosarium 0:2ddc0583bcec 2847 * 10 | RX FIFO almost empty
rosarium 0:2ddc0583bcec 2848 * 11 | Max number of back-off during CCA
rosarium 0:2ddc0583bcec 2849 * 12 | Valid preamble detected
rosarium 0:2ddc0583bcec 2850 * 13 | Sync word detected
rosarium 0:2ddc0583bcec 2851 * 14 | RSSI above threshold (Carrier Sense)
rosarium 0:2ddc0583bcec 2852 * 15 | Wake-up timeout in LDCR mode13
rosarium 0:2ddc0583bcec 2853 * \endcode
rosarium 0:2ddc0583bcec 2854 */
rosarium 0:2ddc0583bcec 2855
rosarium 0:2ddc0583bcec 2856 #define IRQ_MASK1_BASE ((uint8_t)0x92) /*!< IRQ_MASK is split into 4 registers*/
rosarium 0:2ddc0583bcec 2857
rosarium 0:2ddc0583bcec 2858 #define IRQ_MASK1_TX_FIFO_ALMOST_EMPTY ((uint8_t)0x01) /*!< IRQ: TX FIFO almost empty */
rosarium 0:2ddc0583bcec 2859 #define IRQ_MASK1_RX_FIFO_ALMOST_FULL ((uint8_t)0x02) /*!< IRQ: RX FIFO almost full */
rosarium 0:2ddc0583bcec 2860 #define IRQ_MASK1_RX_FIFO_ALMOST_EMPTY ((uint8_t)0x04) /*!< IRQ: RX FIFO almost empty */
rosarium 0:2ddc0583bcec 2861 #define IRQ_MASK1_MAX_BO_CCA_REACH ((uint8_t)0x08) /*!< IRQ: Max number of back-off during CCA */
rosarium 0:2ddc0583bcec 2862 #define IRQ_MASK1_VALID_PREAMBLE ((uint8_t)0x10) /*!< IRQ: Valid preamble detected */
rosarium 0:2ddc0583bcec 2863 #define IRQ_MASK1_VALID_SYNC ((uint8_t)0x20) /*!< IRQ: Sync word detected */
rosarium 0:2ddc0583bcec 2864 #define IRQ_MASK1_RSSI_ABOVE_TH ((uint8_t)0x40) /*!< IRQ: RSSI above threshold */
rosarium 0:2ddc0583bcec 2865 #define IRQ_MASK1_WKUP_TOUT_LDC ((uint8_t)0x80) /*!< IRQ: Wake-up timeout in LDC mode */
rosarium 0:2ddc0583bcec 2866
rosarium 0:2ddc0583bcec 2867 /**
rosarium 0:2ddc0583bcec 2868 * @}
rosarium 0:2ddc0583bcec 2869 */
rosarium 0:2ddc0583bcec 2870
rosarium 0:2ddc0583bcec 2871 /** @defgroup IRQ_MASK2_Register
rosarium 0:2ddc0583bcec 2872 * @{
rosarium 0:2ddc0583bcec 2873 */
rosarium 0:2ddc0583bcec 2874
rosarium 0:2ddc0583bcec 2875 /**
rosarium 0:2ddc0583bcec 2876 * \brief IRQ_MASK2 registers
rosarium 0:2ddc0583bcec 2877 * \code
rosarium 0:2ddc0583bcec 2878 * Default value: 0x00
rosarium 0:2ddc0583bcec 2879 * Read Write
rosarium 0:2ddc0583bcec 2880 *
rosarium 0:2ddc0583bcec 2881 * 7:0 INT_MASK2: IRQ mask, if the correspondent bit is set and IRQ can be generated (according to the next table)
rosarium 0:2ddc0583bcec 2882 *
rosarium 0:2ddc0583bcec 2883 * Bit | Events Group Interrupt Event
rosarium 0:2ddc0583bcec 2884 * -------------------------------------------------------
rosarium 0:2ddc0583bcec 2885 * 16 | READY state in steady condition14
rosarium 0:2ddc0583bcec 2886 * 17 | STANDBY state switching in progress
rosarium 0:2ddc0583bcec 2887 * 18 | Low battery level
rosarium 0:2ddc0583bcec 2888 * 19 | Power-On reset
rosarium 0:2ddc0583bcec 2889 * 20 | Brown-Out event
rosarium 0:2ddc0583bcec 2890 * 21 | LOCK state in steady condition
rosarium 0:2ddc0583bcec 2891 * 22 | PM start-up timer expiration
rosarium 0:2ddc0583bcec 2892 * 23 | XO settling timeout
rosarium 0:2ddc0583bcec 2893 * \endcode
rosarium 0:2ddc0583bcec 2894 */
rosarium 0:2ddc0583bcec 2895 #define IRQ_MASK2_BASE ((uint8_t)0x91) /*!< IRQ_MASK is split into 4 registers*/
rosarium 0:2ddc0583bcec 2896
rosarium 0:2ddc0583bcec 2897 #define IRQ_MASK2_READY ((uint8_t)0x01) /*!< IRQ: READY state */
rosarium 0:2ddc0583bcec 2898 #define IRQ_MASK2_STANDBY_DELAYED ((uint8_t)0x02) /*!< IRQ: STANDBY state after MCU_CK_CONF_CLOCK_TAIL_X clock cycles */
rosarium 0:2ddc0583bcec 2899 #define IRQ_MASK2_LOW_BATT_LVL ((uint8_t)0x04) /*!< IRQ: Battery level below threshold*/
rosarium 0:2ddc0583bcec 2900 #define IRQ_MASK2_POR ((uint8_t)0x08) /*!< IRQ: Power On Reset */
rosarium 0:2ddc0583bcec 2901 #define IRQ_MASK2_BOR ((uint8_t)0x10) /*!< IRQ: Brown out event (both accurate and inaccurate)*/
rosarium 0:2ddc0583bcec 2902 #define IRQ_MASK2_LOCK ((uint8_t)0x20) /*!< IRQ: LOCK state */
rosarium 0:2ddc0583bcec 2903 #define IRQ_MASK2_PM_COUNT_EXPIRED ((uint8_t)0x40) /*!< IRQ: only for debug; Power Management startup timer expiration (see reg PM_START_COUNTER, 0xB5) */
rosarium 0:2ddc0583bcec 2904 #define IRQ_MASK2_XO_COUNT_EXPIRED ((uint8_t)0x80) /*!< IRQ: only for debug; Crystal oscillator settling time counter expired */
rosarium 0:2ddc0583bcec 2905
rosarium 0:2ddc0583bcec 2906 /**
rosarium 0:2ddc0583bcec 2907 * @}
rosarium 0:2ddc0583bcec 2908 */
rosarium 0:2ddc0583bcec 2909
rosarium 0:2ddc0583bcec 2910 /** @defgroup IRQ_MASK3_Register
rosarium 0:2ddc0583bcec 2911 * @{
rosarium 0:2ddc0583bcec 2912 */
rosarium 0:2ddc0583bcec 2913
rosarium 0:2ddc0583bcec 2914 /**
rosarium 0:2ddc0583bcec 2915 * \brief IRQ_MASK3 registers
rosarium 0:2ddc0583bcec 2916 * \code
rosarium 0:2ddc0583bcec 2917 * Default value: 0x00
rosarium 0:2ddc0583bcec 2918 * Read Write
rosarium 0:2ddc0583bcec 2919 *
rosarium 0:2ddc0583bcec 2920 * 7:0 INT_MASK3: IRQ mask, if the correspondent bit is set and IRQ can be generated (according to the next table)
rosarium 0:2ddc0583bcec 2921 *
rosarium 0:2ddc0583bcec 2922 * Bit | Events Group Interrupt Event
rosarium 0:2ddc0583bcec 2923 * -------------------------------------------------------
rosarium 0:2ddc0583bcec 2924 * 24 | SYNTH locking timeout
rosarium 0:2ddc0583bcec 2925 * 25 | SYNTH calibration start-up time
rosarium 0:2ddc0583bcec 2926 * 26 | SYNTH calibration timeout
rosarium 0:2ddc0583bcec 2927 * 27 | TX circuitry start-up time
rosarium 0:2ddc0583bcec 2928 * 28 | RX circuitry start-up time
rosarium 0:2ddc0583bcec 2929 * 29 | RX operation timeout
rosarium 0:2ddc0583bcec 2930 * 30 | Others AES End–of –Operation
rosarium 0:2ddc0583bcec 2931 * 31 | Reserved
rosarium 0:2ddc0583bcec 2932 * \endcode
rosarium 0:2ddc0583bcec 2933 */
rosarium 0:2ddc0583bcec 2934 #define IRQ_MASK3_BASE ((uint8_t)0x90) /*!< IRQ_MASK is split into 4 registers*/
rosarium 0:2ddc0583bcec 2935
rosarium 0:2ddc0583bcec 2936 #define IRQ_MASK3_SYNTH_LOCK_TIMEOUT ((uint8_t)0x01) /*!< IRQ: only for debug; LOCK state timeout */
rosarium 0:2ddc0583bcec 2937 #define IRQ_MASK3_SYNTH_LOCK_STARTUP ((uint8_t)0x02) /*!< IRQ: only for debug; see CALIBR_START_COUNTER */
rosarium 0:2ddc0583bcec 2938 #define IRQ_MASK3_SYNTH_CAL_TIMEOUT ((uint8_t)0x04) /*!< IRQ: only for debug; SYNTH calibration timeout */
rosarium 0:2ddc0583bcec 2939 #define IRQ_MASK3_TX_START_TIME ((uint8_t)0x08) /*!< IRQ: only for debug; TX circuitry startup time; see TX_START_COUNTER */
rosarium 0:2ddc0583bcec 2940 #define IRQ_MASK3_RX_START_TIME ((uint8_t)0x10) /*!< IRQ: only for debug; RX circuitry startup time; see TX_START_COUNTER */
rosarium 0:2ddc0583bcec 2941 #define IRQ_MASK3_RX_TIMEOUT ((uint8_t)0x20) /*!< IRQ: RX operation timeout */
rosarium 0:2ddc0583bcec 2942 #define IRQ_MASK3_AES_END ((uint8_t)0x40) /*!< IRQ: AES End of operation */
rosarium 0:2ddc0583bcec 2943
rosarium 0:2ddc0583bcec 2944 /**
rosarium 0:2ddc0583bcec 2945 * @}
rosarium 0:2ddc0583bcec 2946 */
rosarium 0:2ddc0583bcec 2947
rosarium 0:2ddc0583bcec 2948
rosarium 0:2ddc0583bcec 2949 /** @defgroup IRQ_STATUS0_Register
rosarium 0:2ddc0583bcec 2950 * @{
rosarium 0:2ddc0583bcec 2951 */
rosarium 0:2ddc0583bcec 2952
rosarium 0:2ddc0583bcec 2953 /**
rosarium 0:2ddc0583bcec 2954 * \brief IRQ_STATUS0 registers
rosarium 0:2ddc0583bcec 2955 * \code
rosarium 0:2ddc0583bcec 2956 * Default value: 0x00
rosarium 0:2ddc0583bcec 2957 * Read Write
rosarium 0:2ddc0583bcec 2958 *
rosarium 0:2ddc0583bcec 2959 * 7:0 INT_STATUS0: IRQ status, if the correspondent bit is set and IRQ has been generated (according to the next table)
rosarium 0:2ddc0583bcec 2960 *
rosarium 0:2ddc0583bcec 2961 * Bit | Events Group Interrupt Event
rosarium 0:2ddc0583bcec 2962 * -------------------------------------------------------
rosarium 0:2ddc0583bcec 2963 * 0 | RX data ready
rosarium 0:2ddc0583bcec 2964 * 1 | RX data discarded (upon filtering)
rosarium 0:2ddc0583bcec 2965 * 2 | TX data sent
rosarium 0:2ddc0583bcec 2966 * 3 | Max re-TX reached
rosarium 0:2ddc0583bcec 2967 * 4 | CRC error
rosarium 0:2ddc0583bcec 2968 * 5 | TX FIFO underflow/overflow error
rosarium 0:2ddc0583bcec 2969 * 6 | RX FIFO underflow/overflow error
rosarium 0:2ddc0583bcec 2970 * 7 | TX FIFO almost full
rosarium 0:2ddc0583bcec 2971 * \endcode
rosarium 0:2ddc0583bcec 2972 */
rosarium 0:2ddc0583bcec 2973
rosarium 0:2ddc0583bcec 2974 #define IRQ_STATUS0_BASE ((uint8_t)(0xFD)) /*!< IRQ Events(RR, split into 4 registers) */
rosarium 0:2ddc0583bcec 2975
rosarium 0:2ddc0583bcec 2976 #define IRQ_STATUS0_SYNTH_LOCK_TIMEOUT ((uint8_t)(0x01)) /*!< IRQ: LOCK state timeout */
rosarium 0:2ddc0583bcec 2977 #define IRQ_STATUS0_SYNTH_LOCK_STARTUP ((uint8_t)(0x02)) /*!< IRQ: only for debug; see CALIBR_START_COUNTER */
rosarium 0:2ddc0583bcec 2978 #define IRQ_STATUS0_SYNTH_CAL_TIMEOUT ((uint8_t)(0x04)) /*!< IRQ: SYNTH locking timeout */
rosarium 0:2ddc0583bcec 2979 #define IRQ_STATUS0_TX_START_TIME ((uint8_t)(0x08)) /*!< IRQ: only for debug; TX circuitry startup time; see TX_START_COUNTER */
rosarium 0:2ddc0583bcec 2980 #define IRQ_STATUS0_RX_START_TIME ((uint8_t)(0x10)) /*!< IRQ: only for debug; RX circuitry startup time; see TX_START_COUNTER */
rosarium 0:2ddc0583bcec 2981 #define IRQ_STATUS0_RX_TIMEOUT ((uint8_t)(0x20)) /*!< IRQ: RX operation timeout expiration */
rosarium 0:2ddc0583bcec 2982 #define IRQ_STATUS0_AES_END ((uint8_t)(0x40)) /*!< IRQ: AES End of operation */
rosarium 0:2ddc0583bcec 2983
rosarium 0:2ddc0583bcec 2984 /**
rosarium 0:2ddc0583bcec 2985 * @}
rosarium 0:2ddc0583bcec 2986 */
rosarium 0:2ddc0583bcec 2987
rosarium 0:2ddc0583bcec 2988 /** @defgroup IRQ_STATUS1_Register
rosarium 0:2ddc0583bcec 2989 * @{
rosarium 0:2ddc0583bcec 2990 */
rosarium 0:2ddc0583bcec 2991
rosarium 0:2ddc0583bcec 2992 /**
rosarium 0:2ddc0583bcec 2993 * \brief IRQ_STATUS1 registers
rosarium 0:2ddc0583bcec 2994 * \code
rosarium 0:2ddc0583bcec 2995 * Default value: 0x00
rosarium 0:2ddc0583bcec 2996 * Read Write
rosarium 0:2ddc0583bcec 2997 *
rosarium 0:2ddc0583bcec 2998 * 7:0 INT_STATUS1: IRQ status, if the correspondent bit is set and IRQ has been generated (according to the next table)
rosarium 0:2ddc0583bcec 2999 *
rosarium 0:2ddc0583bcec 3000 * Bit | Events Group Interrupt Event
rosarium 0:2ddc0583bcec 3001 * -------------------------------------------------------
rosarium 0:2ddc0583bcec 3002 * 8 | TX FIFO almost empty
rosarium 0:2ddc0583bcec 3003 * 9 | RX FIFO almost full
rosarium 0:2ddc0583bcec 3004 * 10 | RX FIFO almost empty
rosarium 0:2ddc0583bcec 3005 * 11 | Max number of back-off during CCA
rosarium 0:2ddc0583bcec 3006 * 12 | Valid preamble detected
rosarium 0:2ddc0583bcec 3007 * 13 | Sync word detected
rosarium 0:2ddc0583bcec 3008 * 14 | RSSI above threshold (Carrier Sense)
rosarium 0:2ddc0583bcec 3009 * 15 | Wake-up timeout in LDCR mode13
rosarium 0:2ddc0583bcec 3010 * \endcode
rosarium 0:2ddc0583bcec 3011 */
rosarium 0:2ddc0583bcec 3012
rosarium 0:2ddc0583bcec 3013 #define IRQ_STATUS1_BASE ((uint8_t)(0xFC)) /*!< IRQ Events(RR, split into 4 registers) */
rosarium 0:2ddc0583bcec 3014
rosarium 0:2ddc0583bcec 3015 #define IRQ_STATUS1_READY ((uint8_t)(0x01)) /*!< IRQ: READY state in steady condition*/
rosarium 0:2ddc0583bcec 3016 #define IRQ_STATUS1_STANDBY_DELAYED ((uint8_t)(0x02)) /*!< IRQ: STANDBY state after MCU_CK_CONF_CLOCK_TAIL_X clock cycles */
rosarium 0:2ddc0583bcec 3017 #define IRQ_STATUS1_LOW_BATT_LVL ((uint8_t)(0x04)) /*!< IRQ: Battery level below threshold*/
rosarium 0:2ddc0583bcec 3018 #define IRQ_STATUS1_POR ((uint8_t)(0x08)) /*!< IRQ: Power On Reset */
rosarium 0:2ddc0583bcec 3019 #define IRQ_STATUS1_BOR ((uint8_t)(0x10)) /*!< IRQ: Brown out event (both accurate and inaccurate)*/
rosarium 0:2ddc0583bcec 3020 #define IRQ_STATUS1_LOCK ((uint8_t)(0x20)) /*!< IRQ: LOCK state in steady condition */
rosarium 0:2ddc0583bcec 3021 #define IRQ_STATUS1_PM_COUNT_EXPIRED ((uint8_t)(0x40)) /*!< IRQ: Power Management startup timer expiration (see reg PM_START_COUNTER, 0xB5) */
rosarium 0:2ddc0583bcec 3022 #define IRQ_STATUS1_XO_COUNT_EXPIRED ((uint8_t)(0x80)) /*!< IRQ: Crystal oscillator settling time counter expired */
rosarium 0:2ddc0583bcec 3023
rosarium 0:2ddc0583bcec 3024 /**
rosarium 0:2ddc0583bcec 3025 * @}
rosarium 0:2ddc0583bcec 3026 */
rosarium 0:2ddc0583bcec 3027
rosarium 0:2ddc0583bcec 3028 /** @defgroup IRQ_STATUS2_Register
rosarium 0:2ddc0583bcec 3029 * @{
rosarium 0:2ddc0583bcec 3030 */
rosarium 0:2ddc0583bcec 3031
rosarium 0:2ddc0583bcec 3032 /**
rosarium 0:2ddc0583bcec 3033 * \brief IRQ_STATUS2 registers
rosarium 0:2ddc0583bcec 3034 * \code
rosarium 0:2ddc0583bcec 3035 * Default value: 0x00
rosarium 0:2ddc0583bcec 3036 * Read Write
rosarium 0:2ddc0583bcec 3037 *
rosarium 0:2ddc0583bcec 3038 * 7:0 INT_STATUS2: IRQ status, if the correspondent bit is set and IRQ has been generated (according to the next table)
rosarium 0:2ddc0583bcec 3039 *
rosarium 0:2ddc0583bcec 3040 * Bit | Events Group Interrupt Event
rosarium 0:2ddc0583bcec 3041 * -------------------------------------------------------
rosarium 0:2ddc0583bcec 3042 * 16 | READY state in steady condition14
rosarium 0:2ddc0583bcec 3043 * 17 | STANDBY state switching in progress
rosarium 0:2ddc0583bcec 3044 * 18 | Low battery level
rosarium 0:2ddc0583bcec 3045 * 19 | Power-On reset
rosarium 0:2ddc0583bcec 3046 * 20 | Brown-Out event
rosarium 0:2ddc0583bcec 3047 * 21 | LOCK state in steady condition
rosarium 0:2ddc0583bcec 3048 * 22 | PM start-up timer expiration
rosarium 0:2ddc0583bcec 3049 * 23 | XO settling timeout
rosarium 0:2ddc0583bcec 3050 * \endcode
rosarium 0:2ddc0583bcec 3051 */
rosarium 0:2ddc0583bcec 3052
rosarium 0:2ddc0583bcec 3053 #define IRQ_STATUS2_BASE ((uint8_t)0xFB) /*!< IRQ Events(RR, split into 4 registers) */
rosarium 0:2ddc0583bcec 3054
rosarium 0:2ddc0583bcec 3055 #define IRQ_STATUS2_TX_FIFO_ALMOST_EMPTY ((uint8_t)0x01) /*!< IRQ: TX FIFO almost empty */
rosarium 0:2ddc0583bcec 3056 #define IRQ_STATUS2_RX_FIFO_ALMOST_FULL ((uint8_t)0x02) /*!< IRQ: RX FIFO almost full */
rosarium 0:2ddc0583bcec 3057 #define IRQ_STATUS2_RX_FIFO_ALMOST_EMPTY ((uint8_t)0x04) /*!< IRQ: RX FIFO almost empty */
rosarium 0:2ddc0583bcec 3058 #define IRQ_STATUS2_MAX_BO_CCA_REACH ((uint8_t)0x08) /*!< IRQ: Max number of back-off during CCA */
rosarium 0:2ddc0583bcec 3059 #define IRQ_STATUS2_VALID_PREAMBLE ((uint8_t)0x10) /*!< IRQ: Valid preamble detected */
rosarium 0:2ddc0583bcec 3060 #define IRQ_STATUS2_VALID_SYNC ((uint8_t)0x20) /*!< IRQ: Sync word detected */
rosarium 0:2ddc0583bcec 3061 #define IRQ_STATUS2_RSSI_ABOVE_TH ((uint8_t)(0x40)) /*!< IRQ: RSSI above threshold */
rosarium 0:2ddc0583bcec 3062 #define IRQ_STATUS2_WKUP_TOUT_LDC ((uint8_t)(0x80)) /*!< IRQ: Wake-up timeout in LDC mode */
rosarium 0:2ddc0583bcec 3063
rosarium 0:2ddc0583bcec 3064 /**
rosarium 0:2ddc0583bcec 3065 * @}
rosarium 0:2ddc0583bcec 3066 */
rosarium 0:2ddc0583bcec 3067
rosarium 0:2ddc0583bcec 3068 /** @defgroup IRQ_STATUS3_Register
rosarium 0:2ddc0583bcec 3069 * @{
rosarium 0:2ddc0583bcec 3070 */
rosarium 0:2ddc0583bcec 3071
rosarium 0:2ddc0583bcec 3072 /**
rosarium 0:2ddc0583bcec 3073 * \brief IRQ_STATUS3 registers
rosarium 0:2ddc0583bcec 3074 * \code
rosarium 0:2ddc0583bcec 3075 * Default value: 0x00
rosarium 0:2ddc0583bcec 3076 * Read Write
rosarium 0:2ddc0583bcec 3077 *
rosarium 0:2ddc0583bcec 3078 * 7:0 INT_STATUS3: IRQ status, if the correspondent bit is set and IRQ has been generated (according to the next table)
rosarium 0:2ddc0583bcec 3079 *
rosarium 0:2ddc0583bcec 3080 * Bit | Events Group Interrupt Event
rosarium 0:2ddc0583bcec 3081 * -------------------------------------------------------
rosarium 0:2ddc0583bcec 3082 * 24 | SYNTH locking timeout
rosarium 0:2ddc0583bcec 3083 * 25 | SYNTH calibration start-up time
rosarium 0:2ddc0583bcec 3084 * 26 | SYNTH calibration timeout
rosarium 0:2ddc0583bcec 3085 * 27 | TX circuitry start-up time
rosarium 0:2ddc0583bcec 3086 * 28 | RX circuitry start-up time
rosarium 0:2ddc0583bcec 3087 * 29 | RX operation timeout
rosarium 0:2ddc0583bcec 3088 * 30 | Others AES End–of –Operation
rosarium 0:2ddc0583bcec 3089 * 31 | Reserved
rosarium 0:2ddc0583bcec 3090 * \endcode
rosarium 0:2ddc0583bcec 3091 */
rosarium 0:2ddc0583bcec 3092 #define IRQ_STATUS3_BASE ((uint8_t)0xFA) /*!< IRQ Events(RR, split into 4 registers) */
rosarium 0:2ddc0583bcec 3093
rosarium 0:2ddc0583bcec 3094 #define IRQ_STATUS3_RX_DATA_READY ((uint8_t)0x01) /*!< IRQ: RX data ready */
rosarium 0:2ddc0583bcec 3095 #define IRQ_STATUS3_RX_DATA_DISC ((uint8_t)0x02) /*!< IRQ: RX data discarded (upon filtering) */
rosarium 0:2ddc0583bcec 3096 #define IRQ_STATUS3_TX_DATA_SENT ((uint8_t)0x04) /*!< IRQ: TX data sent */
rosarium 0:2ddc0583bcec 3097 #define IRQ_STATUS3_MAX_RE_TX_REACH ((uint8_t)0x08) /*!< IRQ: Max re-TX reached */
rosarium 0:2ddc0583bcec 3098 #define IRQ_STATUS3_CRC_ERROR ((uint8_t)0x10) /*!< IRQ: CRC error */
rosarium 0:2ddc0583bcec 3099 #define IRQ_STATUS3_TX_FIFO_ERROR ((uint8_t)0x20) /*!< IRQ: TX FIFO underflow/overflow error */
rosarium 0:2ddc0583bcec 3100 #define IRQ_STATUS3_RX_FIFO_ERROR ((uint8_t)0x40) /*!< IRQ: RX FIFO underflow/overflow error */
rosarium 0:2ddc0583bcec 3101 #define IRQ_STATUS3_TX_FIFO_ALMOST_FULL ((uint8_t)0x80) /*!< IRQ: TX FIFO almost full */
rosarium 0:2ddc0583bcec 3102
rosarium 0:2ddc0583bcec 3103 /**
rosarium 0:2ddc0583bcec 3104 * @}
rosarium 0:2ddc0583bcec 3105 */
rosarium 0:2ddc0583bcec 3106
rosarium 0:2ddc0583bcec 3107 /**
rosarium 0:2ddc0583bcec 3108 * @}
rosarium 0:2ddc0583bcec 3109 */
rosarium 0:2ddc0583bcec 3110
rosarium 0:2ddc0583bcec 3111
rosarium 0:2ddc0583bcec 3112 /** @defgroup MC_STATE_Registers
rosarium 0:2ddc0583bcec 3113 * @{
rosarium 0:2ddc0583bcec 3114 */
rosarium 0:2ddc0583bcec 3115
rosarium 0:2ddc0583bcec 3116 /** @defgroup MC_STATE1_Register
rosarium 0:2ddc0583bcec 3117 * @{
rosarium 0:2ddc0583bcec 3118 */
rosarium 0:2ddc0583bcec 3119
rosarium 0:2ddc0583bcec 3120 /**
rosarium 0:2ddc0583bcec 3121 * \brief MC_STATE1 registers
rosarium 0:2ddc0583bcec 3122 * \code
rosarium 0:2ddc0583bcec 3123 * Default value: 0x50
rosarium 0:2ddc0583bcec 3124 * Read
rosarium 0:2ddc0583bcec 3125 *
rosarium 0:2ddc0583bcec 3126 * 7:4 Reserved.
rosarium 0:2ddc0583bcec 3127 *
rosarium 0:2ddc0583bcec 3128 * 3 ANT_SELECT: Currently selected antenna
rosarium 0:2ddc0583bcec 3129 *
rosarium 0:2ddc0583bcec 3130 * 2 TX_FIFO_Full: 1 - TX FIFO is full
rosarium 0:2ddc0583bcec 3131 *
rosarium 0:2ddc0583bcec 3132 * 1 RX_FIFO_Empty: 1 - RX FIFO is empty
rosarium 0:2ddc0583bcec 3133 *
rosarium 0:2ddc0583bcec 3134 * 0 ERROR_LOCK: 1 - RCO calibrator error
rosarium 0:2ddc0583bcec 3135 * \endcode
rosarium 0:2ddc0583bcec 3136 */
rosarium 0:2ddc0583bcec 3137 #define MC_STATE1_BASE ((uint8_t)(0xC0)) /*!< MC_STATE1 register address (see the SpiritStatus struct */
rosarium 0:2ddc0583bcec 3138
rosarium 0:2ddc0583bcec 3139
rosarium 0:2ddc0583bcec 3140 /**
rosarium 0:2ddc0583bcec 3141 * @}
rosarium 0:2ddc0583bcec 3142 */
rosarium 0:2ddc0583bcec 3143
rosarium 0:2ddc0583bcec 3144
rosarium 0:2ddc0583bcec 3145 /** @defgroup MC_STATE0_Register
rosarium 0:2ddc0583bcec 3146 * @{
rosarium 0:2ddc0583bcec 3147 */
rosarium 0:2ddc0583bcec 3148
rosarium 0:2ddc0583bcec 3149 /**
rosarium 0:2ddc0583bcec 3150 * \brief MC_STATE0 registers
rosarium 0:2ddc0583bcec 3151 * \code
rosarium 0:2ddc0583bcec 3152 * Default value: 0x00
rosarium 0:2ddc0583bcec 3153 * Read
rosarium 0:2ddc0583bcec 3154 *
rosarium 0:2ddc0583bcec 3155 * 7:1 STATE[6:0]: Current MC state.
rosarium 0:2ddc0583bcec 3156 *
rosarium 0:2ddc0583bcec 3157 * REGISTER VALUE | STATE
rosarium 0:2ddc0583bcec 3158 * --------------------------------------------
rosarium 0:2ddc0583bcec 3159 * 0x40 | STANDBY
rosarium 0:2ddc0583bcec 3160 * 0x36 | SLEEP
rosarium 0:2ddc0583bcec 3161 * 0x03 | READY
rosarium 0:2ddc0583bcec 3162 * 0x3B | PM setup
rosarium 0:2ddc0583bcec 3163 * 0x23 | XO settling
rosarium 0:2ddc0583bcec 3164 * 0x53 | SYNTH setup
rosarium 0:2ddc0583bcec 3165 * 0x1F | PROTOCOL
rosarium 0:2ddc0583bcec 3166 * 0x4F | SYNTH calibration
rosarium 0:2ddc0583bcec 3167 * 0x0F | LOCK
rosarium 0:2ddc0583bcec 3168 * 0x33 | RX
rosarium 0:2ddc0583bcec 3169 * 0x5F | TX
rosarium 0:2ddc0583bcec 3170 *
rosarium 0:2ddc0583bcec 3171 * 0 XO_ON: 1 - XO is operating
rosarium 0:2ddc0583bcec 3172 * \endcode
rosarium 0:2ddc0583bcec 3173 */
rosarium 0:2ddc0583bcec 3174 #define MC_STATE0_BASE ((uint8_t)(0xC1)) /*!< MC_STATE0 register address. In this version ALL existing states have been inserted
rosarium 0:2ddc0583bcec 3175 and are still to be verified */
rosarium 0:2ddc0583bcec 3176 /**
rosarium 0:2ddc0583bcec 3177 * @}
rosarium 0:2ddc0583bcec 3178 */
rosarium 0:2ddc0583bcec 3179
rosarium 0:2ddc0583bcec 3180 /**
rosarium 0:2ddc0583bcec 3181 * @}
rosarium 0:2ddc0583bcec 3182 */
rosarium 0:2ddc0583bcec 3183
rosarium 0:2ddc0583bcec 3184 /** @defgroup Engineering-Test_Registers
rosarium 0:2ddc0583bcec 3185 * @{
rosarium 0:2ddc0583bcec 3186 */
rosarium 0:2ddc0583bcec 3187
rosarium 0:2ddc0583bcec 3188 #define SYNTH_CONFIG1_BASE ((uint8_t)(0x9E)) /*!< Synthesizier registers: M, A, K data sync on positive/negative clock edges [4],
rosarium 0:2ddc0583bcec 3189 Enable Linearization of the charge pump [3], split time 1.75/3.45ns [2], VCO calibration window 16,32,64,128 clock cycles [1:0]*/
rosarium 0:2ddc0583bcec 3190 #define SYNTH_CONFIG0_BASE ((uint8_t)(0x9F)) /*!< Enable DSM randomizer [7], Window width 1.2-7.5ns (Down-up) of lock detector*/
rosarium 0:2ddc0583bcec 3191 #define VCOTH_BASE ((uint8_t)(0xA0)) /*!< Controls the threshold frequency between VCO low and VCO high [7:0]
rosarium 0:2ddc0583bcec 3192 VCOth frequency=2*fXO*(96+VCO_TH/16), fmin=4992 MHz, fmax=5820 MHz*/
rosarium 0:2ddc0583bcec 3193 #define PM_CONFIG2_BASE ((uint8_t)(0xA4)) /*!< Enables high current buffer on Temperature sensor, sets SMPS options */
rosarium 0:2ddc0583bcec 3194 #define PM_CONFIG1_BASE ((uint8_t)(0xA5)) /*!< Set SMPS options */
rosarium 0:2ddc0583bcec 3195 #define PM_CONFIG0_BASE ((uint8_t)(0xA6)) /*!< Set SMPS options */
rosarium 0:2ddc0583bcec 3196 #define VCO_CONFIG_BASE ((uint8_t)(0xA1)) /*!< Set VCO current [5:2]part and [1:0] part */
rosarium 0:2ddc0583bcec 3197 #define XO_CONFIG_BASE ((uint8_t)(0xA7)) /*!< Clock management options from XO to digital part */
rosarium 0:2ddc0583bcec 3198
rosarium 0:2ddc0583bcec 3199 #define XO_RCO_TEST_BASE ((uint8_t)(0xB4)) /*!< Test of XO and RCO */
rosarium 0:2ddc0583bcec 3200
rosarium 0:2ddc0583bcec 3201 /**
rosarium 0:2ddc0583bcec 3202 * @}
rosarium 0:2ddc0583bcec 3203 */
rosarium 0:2ddc0583bcec 3204
rosarium 0:2ddc0583bcec 3205
rosarium 0:2ddc0583bcec 3206 /** @addtogroup Commands
rosarium 0:2ddc0583bcec 3207 * @{
rosarium 0:2ddc0583bcec 3208 */
rosarium 0:2ddc0583bcec 3209
rosarium 0:2ddc0583bcec 3210 #define COMMAND_TX ((uint8_t)(0x60)) /*!< Start to transmit; valid only from READY */
rosarium 0:2ddc0583bcec 3211 #define COMMAND_RX ((uint8_t)(0x61)) /*!< Start to receive; valid only from READY */
rosarium 0:2ddc0583bcec 3212 #define COMMAND_READY ((uint8_t)(0x62)) /*!< Go to READY; valid only from STANDBY or SLEEP or LOCK */
rosarium 0:2ddc0583bcec 3213 #define COMMAND_STANDBY ((uint8_t)(0x63)) /*!< Go to STANDBY; valid only from READY */
rosarium 0:2ddc0583bcec 3214 #define COMMAND_SLEEP ((uint8_t)(0x64)) /*!< Go to SLEEP; valid only from READY */
rosarium 0:2ddc0583bcec 3215 #define COMMAND_LOCKRX ((uint8_t)(0x65)) /*!< Go to LOCK state by using the RX configuration of the synth; valid only from READY */
rosarium 0:2ddc0583bcec 3216 #define COMMAND_LOCKTX ((uint8_t)(0x66)) /*!< Go to LOCK state by using the TX configuration of the synth; valid only from READY */
rosarium 0:2ddc0583bcec 3217 #define COMMAND_SABORT ((uint8_t)(0x67)) /*!< Force exit form TX or RX states and go to READY state; valid only from TX or RX */
rosarium 0:2ddc0583bcec 3218 #define COMMAND_LDC_RELOAD ((uint8_t)(0x68)) /*!< LDC Mode: Reload the LDC timer with the value stored in the LDC_PRESCALER / COUNTER
rosarium 0:2ddc0583bcec 3219 registers; valid from all states */
rosarium 0:2ddc0583bcec 3220 #define COMMAND_SEQUENCE_UPDATE ((uint8_t)(0x69)) /*!< Autoretransmission: Reload the Packet sequence counter with the value stored in the PROTOCOL[2] register
rosarium 0:2ddc0583bcec 3221 valid from all states */
rosarium 0:2ddc0583bcec 3222 #define COMMAND_AES_ENC ((uint8_t)(0x6A)) /*!< AES: Start the encryption routine; valid from all states; valid from all states */
rosarium 0:2ddc0583bcec 3223 #define COMMAND_AES_KEY ((uint8_t)(0x6B)) /*!< AES: Start the procedure to compute the key for the decryption; valid from all states */
rosarium 0:2ddc0583bcec 3224 #define COMMAND_AES_DEC ((uint8_t)(0x6C)) /*!< AES: Start the decryption routine using the current key; valid from all states */
rosarium 0:2ddc0583bcec 3225 #define COMMAND_AES_KEY_DEC ((uint8_t)(0x6D)) /*!< AES: Compute the key and start the decryption; valid from all states */
rosarium 0:2ddc0583bcec 3226 #define COMMAND_SRES ((uint8_t)(0x70)) /*!< Reset of all digital part, except SPI registers */
rosarium 0:2ddc0583bcec 3227 #define COMMAND_FLUSHRXFIFO ((uint8_t)(0x71)) /*!< Clean the RX FIFO; valid from all states */
rosarium 0:2ddc0583bcec 3228 #define COMMAND_FLUSHTXFIFO ((uint8_t)(0x72)) /*!< Clean the TX FIFO; valid from all states */
rosarium 0:2ddc0583bcec 3229
rosarium 0:2ddc0583bcec 3230 /**
rosarium 0:2ddc0583bcec 3231 * @}
rosarium 0:2ddc0583bcec 3232 */
rosarium 0:2ddc0583bcec 3233
rosarium 0:2ddc0583bcec 3234 /**
rosarium 0:2ddc0583bcec 3235 * @}
rosarium 0:2ddc0583bcec 3236 */
rosarium 0:2ddc0583bcec 3237
rosarium 0:2ddc0583bcec 3238 #ifdef __cplusplus
rosarium 0:2ddc0583bcec 3239 }
rosarium 0:2ddc0583bcec 3240 #endif
rosarium 0:2ddc0583bcec 3241
rosarium 0:2ddc0583bcec 3242 #endif
rosarium 0:2ddc0583bcec 3243
rosarium 0:2ddc0583bcec 3244 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/