ISM RF transmitter library for MAX4146X family devices

Library for MAX41460, MAX41461, MAX41462, MAX41463, MAX41464 RF Transmitter ICs.

Committer:
Ibrahim Tilki
Date:
Thu Jan 13 13:27:54 2022 +0300
Revision:
2:80969d8f6d2b
Parent:
1:ccf0e1d28860
change crystal freq range, remove unused block from send_data

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Erman Komurcu 0:4040347d719c 1 /*******************************************************************************
Erman Komurcu 1:ccf0e1d28860 2 * Copyright (C) 2019 Maxim Integrated Products, Inc., All rights Reserved.
Erman Komurcu 1:ccf0e1d28860 3 *
Erman Komurcu 1:ccf0e1d28860 4 * This software is protected by copyright laws of the United States and
Erman Komurcu 1:ccf0e1d28860 5 * of foreign countries. This material may also be protected by patent laws
Erman Komurcu 1:ccf0e1d28860 6 * and technology transfer regulations of the United States and of foreign
Erman Komurcu 1:ccf0e1d28860 7 * countries. This software is furnished under a license agreement and/or a
Erman Komurcu 1:ccf0e1d28860 8 * nondisclosure agreement and may only be used or reproduced in accordance
Erman Komurcu 1:ccf0e1d28860 9 * with the terms of those agreements. Dissemination of this information to
Erman Komurcu 1:ccf0e1d28860 10 * any party or parties not specified in the license agreement and/or
Erman Komurcu 1:ccf0e1d28860 11 * nondisclosure agreement is expressly prohibited.
Erman Komurcu 1:ccf0e1d28860 12 *
Erman Komurcu 1:ccf0e1d28860 13 * The above copyright notice and this permission notice shall be included
Erman Komurcu 1:ccf0e1d28860 14 * in all copies or substantial portions of the Software.
Erman Komurcu 1:ccf0e1d28860 15 *
Erman Komurcu 1:ccf0e1d28860 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
Erman Komurcu 1:ccf0e1d28860 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
Erman Komurcu 1:ccf0e1d28860 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Erman Komurcu 1:ccf0e1d28860 19 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
Erman Komurcu 1:ccf0e1d28860 20 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
Erman Komurcu 1:ccf0e1d28860 21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
Erman Komurcu 1:ccf0e1d28860 22 * OTHER DEALINGS IN THE SOFTWARE.
Erman Komurcu 1:ccf0e1d28860 23 *
Erman Komurcu 1:ccf0e1d28860 24 * Except as contained in this notice, the name of Maxim Integrated
Erman Komurcu 1:ccf0e1d28860 25 * Products, Inc. shall not be used except as stated in the Maxim Integrated
Erman Komurcu 1:ccf0e1d28860 26 * Products, Inc. Branding Policy.
Erman Komurcu 1:ccf0e1d28860 27 *
Erman Komurcu 1:ccf0e1d28860 28 * The mere transfer of this software does not imply any licenses
Erman Komurcu 1:ccf0e1d28860 29 * of trade secrets, proprietary technology, copyrights, patents,
Erman Komurcu 1:ccf0e1d28860 30 * trademarks, maskwork rights, or any other form of intellectual
Erman Komurcu 1:ccf0e1d28860 31 * property whatsoever. Maxim Integrated Products, Inc. retains all
Erman Komurcu 1:ccf0e1d28860 32 * ownership rights.
Erman Komurcu 1:ccf0e1d28860 33 *******************************************************************************
Erman Komurcu 1:ccf0e1d28860 34 */
Erman Komurcu 0:4040347d719c 35
Erman Komurcu 0:4040347d719c 36 #ifndef MAX41463_4_REGS_H_
Erman Komurcu 0:4040347d719c 37 #define MAX41463_4_REGS_H_
Erman Komurcu 0:4040347d719c 38
Erman Komurcu 0:4040347d719c 39 /**
Erman Komurcu 0:4040347d719c 40 * @brief CFG1 (0x00)
Erman Komurcu 0:4040347d719c 41 *
Erman Komurcu 0:4040347d719c 42 */
Erman Komurcu 0:4040347d719c 43 typedef union {
Erman Komurcu 0:4040347d719c 44 unsigned char raw;
Erman Komurcu 0:4040347d719c 45 struct {
Erman Komurcu 0:4040347d719c 46 unsigned char modmode : 1; /**< Configures modulator mode */
Erman Komurcu 0:4040347d719c 47 unsigned char sync : 1; /**< Controls if clock output acts as an input.
Erman Komurcu 0:4040347d719c 48 When an input, it will sample the DATA pin. */
Erman Komurcu 0:4040347d719c 49 unsigned char fskshape : 1; /**< Sets the state of FSK Gaussian Shaping */
Erman Komurcu 0:4040347d719c 50 unsigned char : 1;
Erman Komurcu 0:4040347d719c 51 unsigned char xoclkdiv : 2; /**< XO clock division ratio for digital block */
Erman Komurcu 0:4040347d719c 52 unsigned char xoclkdelay : 2; /**< Start delay before enabling XO clock to digital block */
Erman Komurcu 0:4040347d719c 53 } bits;
Erman Komurcu 0:4040347d719c 54 } max41463_4_reg_cfg1_t;
Erman Komurcu 0:4040347d719c 55
Erman Komurcu 0:4040347d719c 56 /**
Erman Komurcu 0:4040347d719c 57 * @brief CFG2 (0x01)
Erman Komurcu 0:4040347d719c 58 *
Erman Komurcu 0:4040347d719c 59 */
Erman Komurcu 0:4040347d719c 60 typedef union {
Erman Komurcu 0:4040347d719c 61 unsigned char raw;
Erman Komurcu 0:4040347d719c 62 struct {
Erman Komurcu 0:4040347d719c 63 unsigned char bclk_postdiv : 3; /**< Select the Baud Clock Post Division Ratio.
Erman Komurcu 0:4040347d719c 64 Valid values are from 1 to 5. */
Erman Komurcu 0:4040347d719c 65 unsigned char : 3;
Erman Komurcu 0:4040347d719c 66 unsigned char clkout_delay : 2; /**< Selects the delay when CLKOUT starts toggling upon
Erman Komurcu 0:4040347d719c 67 exiting SHUTDOWN mode, in divided XO clock cycles */
Erman Komurcu 0:4040347d719c 68 } bits;
Erman Komurcu 0:4040347d719c 69 } max41463_4_reg_cfg2_t;
Erman Komurcu 0:4040347d719c 70
Erman Komurcu 0:4040347d719c 71 /**
Erman Komurcu 0:4040347d719c 72 * @brief CFG3 (0x02)
Erman Komurcu 0:4040347d719c 73 *
Erman Komurcu 0:4040347d719c 74 */
Erman Komurcu 0:4040347d719c 75 typedef union {
Erman Komurcu 0:4040347d719c 76 unsigned char raw;
Erman Komurcu 0:4040347d719c 77 struct {
Erman Komurcu 0:4040347d719c 78 unsigned char bclk_prediv : 8; /**< Baud clock predivision ratio. Valid values are from 3 to 255 */
Erman Komurcu 0:4040347d719c 79 } bits;
Erman Komurcu 0:4040347d719c 80 } max41463_4_reg_cfg3_t;
Erman Komurcu 0:4040347d719c 81
Erman Komurcu 0:4040347d719c 82 /**
Erman Komurcu 0:4040347d719c 83 * @brief CFG4 (0x03)
Erman Komurcu 0:4040347d719c 84 *
Erman Komurcu 0:4040347d719c 85 */
Erman Komurcu 0:4040347d719c 86 typedef union {
Erman Komurcu 0:4040347d719c 87 unsigned char raw;
Erman Komurcu 0:4040347d719c 88 struct {
Erman Komurcu 0:4040347d719c 89 unsigned char pwdn_mode : 2; /**< Power Down Mode Select */
Erman Komurcu 0:4040347d719c 90 unsigned char : 6;
Erman Komurcu 0:4040347d719c 91 } bits;
Erman Komurcu 0:4040347d719c 92 } max41463_4_reg_cfg4_t;
Erman Komurcu 0:4040347d719c 93
Erman Komurcu 0:4040347d719c 94 /**
Erman Komurcu 0:4040347d719c 95 * @brief CFG5 (0x04)
Erman Komurcu 0:4040347d719c 96 *
Erman Komurcu 0:4040347d719c 97 */
Erman Komurcu 0:4040347d719c 98 typedef union {
Erman Komurcu 0:4040347d719c 99 unsigned char raw;
Erman Komurcu 0:4040347d719c 100 struct {
Erman Komurcu 0:4040347d719c 101 unsigned char tstep : 6; /**< Controls GFSK shaping. See Digital FSK Modulation section. */
Erman Komurcu 0:4040347d719c 102 unsigned char : 2;
Erman Komurcu 0:4040347d719c 103 } bits;
Erman Komurcu 0:4040347d719c 104 } max41463_4_reg_cfg5_t;
Erman Komurcu 0:4040347d719c 105
Erman Komurcu 0:4040347d719c 106 /**
Erman Komurcu 0:4040347d719c 107 * @brief SHDN (0x05)
Erman Komurcu 0:4040347d719c 108 *
Erman Komurcu 0:4040347d719c 109 */
Erman Komurcu 0:4040347d719c 110 typedef union {
Erman Komurcu 0:4040347d719c 111 unsigned char raw;
Erman Komurcu 0:4040347d719c 112 struct {
Erman Komurcu 0:4040347d719c 113 unsigned char pa_boost : 1; /**< Enables a boost in PA output power for frequencies above 850MHz.
Erman Komurcu 0:4040347d719c 114  This requires a different PA match compared to normal operation. */
Erman Komurcu 0:4040347d719c 115 unsigned char : 7;
Erman Komurcu 0:4040347d719c 116 } bits;
Erman Komurcu 0:4040347d719c 117 } max41463_4_reg_shdn_t;
Erman Komurcu 0:4040347d719c 118
Erman Komurcu 0:4040347d719c 119 /**
Erman Komurcu 0:4040347d719c 120 * @brief PA1 (0x06)
Erman Komurcu 0:4040347d719c 121 *
Erman Komurcu 0:4040347d719c 122 */
Erman Komurcu 0:4040347d719c 123 typedef union {
Erman Komurcu 0:4040347d719c 124 unsigned char raw;
Erman Komurcu 0:4040347d719c 125 struct {
Erman Komurcu 0:4040347d719c 126 unsigned char papwr : 3; /**< Controls the PA output power by enabling parallel drivers. */
Erman Komurcu 0:4040347d719c 127 unsigned char : 5;
Erman Komurcu 0:4040347d719c 128 } bits;
Erman Komurcu 0:4040347d719c 129 } max41463_4_reg_pa1_t;
Erman Komurcu 0:4040347d719c 130
Erman Komurcu 0:4040347d719c 131 /**
Erman Komurcu 0:4040347d719c 132 * @brief PA2 (0x07)
Erman Komurcu 0:4040347d719c 133 *
Erman Komurcu 0:4040347d719c 134 */
Erman Komurcu 0:4040347d719c 135 typedef union {
Erman Komurcu 0:4040347d719c 136 unsigned char raw;
Erman Komurcu 0:4040347d719c 137 struct {
Erman Komurcu 0:4040347d719c 138 unsigned char pacap : 5; /**< Controls shunt capacitance on PA output in fF. */
Erman Komurcu 0:4040347d719c 139 unsigned char : 3;
Erman Komurcu 0:4040347d719c 140 } bits;
Erman Komurcu 0:4040347d719c 141 } max41463_4_reg_pa2_t;
Erman Komurcu 0:4040347d719c 142
Erman Komurcu 0:4040347d719c 143 /**
Erman Komurcu 0:4040347d719c 144 * @brief PLL1 (0x08)
Erman Komurcu 0:4040347d719c 145 *
Erman Komurcu 0:4040347d719c 146 */
Erman Komurcu 0:4040347d719c 147 typedef union {
Erman Komurcu 0:4040347d719c 148 unsigned char raw;
Erman Komurcu 0:4040347d719c 149 struct {
Erman Komurcu 0:4040347d719c 150 unsigned char lomode : 1; /**< Sets LO generation. For lower power, choose LOWCURRENT.
Erman Komurcu 0:4040347d719c 151 For higher performance, choose LOWNOISE. */
Erman Komurcu 0:4040347d719c 152 unsigned char lodiv : 2; /**< */
Erman Komurcu 0:4040347d719c 153 unsigned char loopbw : 2; /**< Write to 00 binary.Sets PLL loop bandwidth. */
Erman Komurcu 0:4040347d719c 154 unsigned char fracmode : 1; /**< Sets PLL between fractional-N and integer-N mode. */
Erman Komurcu 0:4040347d719c 155 unsigned char cplin : 2; /**< Sets the level of charge pump offset current for fractional N mode
Erman Komurcu 0:4040347d719c 156 to improve close in phase noise. Set to DISABLED for integer N mode. */
Erman Komurcu 0:4040347d719c 157 } bits;
Erman Komurcu 0:4040347d719c 158 } max41463_4_reg_pll1_t;
Erman Komurcu 0:4040347d719c 159
Erman Komurcu 0:4040347d719c 160 /**
Erman Komurcu 0:4040347d719c 161 * @brief PLL2 (0x09)
Erman Komurcu 0:4040347d719c 162 *
Erman Komurcu 0:4040347d719c 163 */
Erman Komurcu 0:4040347d719c 164 typedef union {
Erman Komurcu 0:4040347d719c 165 unsigned char raw;
Erman Komurcu 0:4040347d719c 166 struct {
Erman Komurcu 0:4040347d719c 167 unsigned char cpval : 2; /**< Sets Charge Pump Current */
Erman Komurcu 0:4040347d719c 168 unsigned char : 4;
Erman Komurcu 0:4040347d719c 169 unsigned char lcvco_fast_start : 1; /**< Write to 0 binary.
Erman Komurcu 0:4040347d719c 170 Enables fast start of LC VCO because of bias filtering */
Erman Komurcu 0:4040347d719c 171 unsigned char lcvco_pwr : 1; /**< Write to 0 binary. Controls power in LC VCO */
Erman Komurcu 0:4040347d719c 172 } bits;
Erman Komurcu 0:4040347d719c 173 } max41463_4_reg_pll2_t;
Erman Komurcu 0:4040347d719c 174
Erman Komurcu 0:4040347d719c 175 /**
Erman Komurcu 0:4040347d719c 176 * @brief CFG6 (0x0A)
Erman Komurcu 0:4040347d719c 177 *
Erman Komurcu 0:4040347d719c 178 */
Erman Komurcu 0:4040347d719c 179 typedef union {
Erman Komurcu 0:4040347d719c 180 unsigned char raw;
Erman Komurcu 0:4040347d719c 181 struct {
Erman Komurcu 0:4040347d719c 182 unsigned char fourwire1 : 1; /**< */
Erman Komurcu 0:4040347d719c 183 unsigned char spi_txen1 : 1; /**< */
Erman Komurcu 0:4040347d719c 184 unsigned char i2c_txen1 : 1; /**< Enables DATA transmission in I2C mode. Aliased address for I2C_TXEN1 */
Erman Komurcu 0:4040347d719c 185 unsigned char : 5;
Erman Komurcu 0:4040347d719c 186 } bits;
Erman Komurcu 0:4040347d719c 187 } max41463_4_reg_cfg6_t;
Erman Komurcu 0:4040347d719c 188
Erman Komurcu 0:4040347d719c 189 /**
Erman Komurcu 0:4040347d719c 190 * @brief PLL3 (0x0B)
Erman Komurcu 0:4040347d719c 191 *
Erman Komurcu 0:4040347d719c 192 */
Erman Komurcu 0:4040347d719c 193 typedef union {
Erman Komurcu 0:4040347d719c 194 unsigned char raw;
Erman Komurcu 0:4040347d719c 195 struct {
Erman Komurcu 0:4040347d719c 196 unsigned char freq_23_to_16 : 8; /**< FREQ value to PLL. LO frequency= FREQ<23:0>/2^16*fXTAL */
Erman Komurcu 0:4040347d719c 197 } bits;
Erman Komurcu 0:4040347d719c 198 } max41463_4_reg_pll3_t;
Erman Komurcu 0:4040347d719c 199
Erman Komurcu 0:4040347d719c 200 /**
Erman Komurcu 0:4040347d719c 201 * @brief PLL4 (0x0C)
Erman Komurcu 0:4040347d719c 202 *
Erman Komurcu 0:4040347d719c 203 */
Erman Komurcu 0:4040347d719c 204 typedef union {
Erman Komurcu 0:4040347d719c 205 unsigned char raw;
Erman Komurcu 0:4040347d719c 206 struct {
Erman Komurcu 0:4040347d719c 207 unsigned char freq_15_to_8 : 8; /**< FREQ value to PLL */
Erman Komurcu 0:4040347d719c 208 } bits;
Erman Komurcu 0:4040347d719c 209 } max41463_4_reg_pll4_t;
Erman Komurcu 0:4040347d719c 210
Erman Komurcu 0:4040347d719c 211 /**
Erman Komurcu 0:4040347d719c 212 * @brief PLL5 (0x0D)
Erman Komurcu 0:4040347d719c 213 *
Erman Komurcu 0:4040347d719c 214 */
Erman Komurcu 0:4040347d719c 215 typedef union {
Erman Komurcu 0:4040347d719c 216 unsigned char raw;
Erman Komurcu 0:4040347d719c 217 struct {
Erman Komurcu 0:4040347d719c 218 unsigned char freq_7_to_0 : 8; /**< FREQ value to PLL */
Erman Komurcu 0:4040347d719c 219 } bits;
Erman Komurcu 0:4040347d719c 220 } max41463_4_reg_pll5_t;
Erman Komurcu 0:4040347d719c 221
Erman Komurcu 0:4040347d719c 222 /**
Erman Komurcu 0:4040347d719c 223 * @brief PLL6 (0x0E)
Erman Komurcu 0:4040347d719c 224 *
Erman Komurcu 0:4040347d719c 225 */
Erman Komurcu 0:4040347d719c 226 typedef union {
Erman Komurcu 0:4040347d719c 227 unsigned char raw;
Erman Komurcu 0:4040347d719c 228 struct {
Erman Komurcu 0:4040347d719c 229 unsigned char deltaf : 7; /**< For FSK mode, MODMODE=1 and FSKSHAPE=0, sets the frequency deviation from the
Erman Komurcu 0:4040347d719c 230 space frequency for the mark frequency. fDELTA = DELTAF[6:0] * fXTAL/ 8192 */
Erman Komurcu 0:4040347d719c 231 unsigned char : 1;
Erman Komurcu 0:4040347d719c 232 } bits;
Erman Komurcu 0:4040347d719c 233 } max41463_4_reg_pll6_t;
Erman Komurcu 0:4040347d719c 234
Erman Komurcu 0:4040347d719c 235 /**
Erman Komurcu 0:4040347d719c 236 * @brief PLL7 (0x0F)
Erman Komurcu 0:4040347d719c 237 *
Erman Komurcu 0:4040347d719c 238 */
Erman Komurcu 0:4040347d719c 239 typedef union {
Erman Komurcu 0:4040347d719c 240 unsigned char raw;
Erman Komurcu 0:4040347d719c 241 struct {
Erman Komurcu 0:4040347d719c 242 unsigned char deltaf_shape : 4; /**< For FSK mode, MODMODE = 1 and FSKSHAPE = 1, sets the frequency deviation
Erman Komurcu 0:4040347d719c 243 from the space frequency for the mark frequency.
Erman Komurcu 0:4040347d719c 244 fDELTA = DELTAF_SHAPE[3:0] * fXTAL / 81920 */
Erman Komurcu 0:4040347d719c 245 unsigned char : 4;
Erman Komurcu 0:4040347d719c 246 } bits;
Erman Komurcu 0:4040347d719c 247 } max41463_4_reg_pll7_t;
Erman Komurcu 0:4040347d719c 248
Erman Komurcu 0:4040347d719c 249 /**
Erman Komurcu 0:4040347d719c 250 * @brief CFG7 (0x10)
Erman Komurcu 0:4040347d719c 251 *
Erman Komurcu 0:4040347d719c 252 */
Erman Komurcu 0:4040347d719c 253 typedef union {
Erman Komurcu 0:4040347d719c 254 unsigned char raw;
Erman Komurcu 0:4040347d719c 255 struct {
Erman Komurcu 0:4040347d719c 256 unsigned char fourwire2 : 1; /**< */
Erman Komurcu 0:4040347d719c 257 unsigned char spi_txen2 : 1; /**< */
Erman Komurcu 0:4040347d719c 258 unsigned char i2c_txen2 : 1; /**< When set, enables DATA transmission in I2C mode.
Erman Komurcu 0:4040347d719c 259 Aliased address for I2C_TXEN1 */
Erman Komurcu 0:4040347d719c 260 unsigned char : 5;
Erman Komurcu 0:4040347d719c 261 } bits;
Erman Komurcu 0:4040347d719c 262 } max41463_4_reg_cfg7_t;
Erman Komurcu 0:4040347d719c 263
Erman Komurcu 0:4040347d719c 264 /**
Erman Komurcu 0:4040347d719c 265 * @brief I2C1 (0x11)
Erman Komurcu 0:4040347d719c 266 *
Erman Komurcu 0:4040347d719c 267 */
Erman Komurcu 0:4040347d719c 268 typedef union {
Erman Komurcu 0:4040347d719c 269 unsigned char raw;
Erman Komurcu 0:4040347d719c 270 struct {
Erman Komurcu 0:4040347d719c 271 unsigned char pktlen_14_to_8 : 7; /**< Packet Length */
Erman Komurcu 0:4040347d719c 272 unsigned char pktlen_mode : 1; /**< Packet Length Mode */
Erman Komurcu 0:4040347d719c 273 } bits;
Erman Komurcu 0:4040347d719c 274 } max41463_4_reg_i2c1_t;
Erman Komurcu 0:4040347d719c 275
Erman Komurcu 0:4040347d719c 276 /**
Erman Komurcu 0:4040347d719c 277 * @brief I2C2 (0x12)
Erman Komurcu 0:4040347d719c 278 *
Erman Komurcu 0:4040347d719c 279 * Detailed explanation.
Erman Komurcu 0:4040347d719c 280 */
Erman Komurcu 0:4040347d719c 281 typedef union {
Erman Komurcu 0:4040347d719c 282 unsigned char raw;
Erman Komurcu 0:4040347d719c 283 struct {
Erman Komurcu 0:4040347d719c 284 unsigned char pktlen_7_to_0 : 8; /**< Packet Length */
Erman Komurcu 0:4040347d719c 285 } bits;
Erman Komurcu 0:4040347d719c 286 } max41463_4_reg_i2c2_t;
Erman Komurcu 0:4040347d719c 287
Erman Komurcu 0:4040347d719c 288 /**
Erman Komurcu 0:4040347d719c 289 * @brief I2C3 (0x13)
Erman Komurcu 0:4040347d719c 290 *
Erman Komurcu 0:4040347d719c 291 */
Erman Komurcu 0:4040347d719c 292 typedef union {
Erman Komurcu 0:4040347d719c 293 unsigned char raw;
Erman Komurcu 0:4040347d719c 294 struct {
Erman Komurcu 0:4040347d719c 295 unsigned char i2c_tx_data : 8; /**< Transmit data to be written into FIFO for I2C mode of operation.
Erman Komurcu 0:4040347d719c 296 At this address, I2C register address will not auto increment within an
Erman Komurcu 0:4040347d719c 297 I2C transaction burst, and subsequent writes will keep going to FIFO */
Erman Komurcu 0:4040347d719c 298 } bits;
Erman Komurcu 0:4040347d719c 299 } max41463_4_reg_i2c3_t;
Erman Komurcu 0:4040347d719c 300
Erman Komurcu 0:4040347d719c 301 /**
Erman Komurcu 0:4040347d719c 302 * @brief I2C4 (0x14)
Erman Komurcu 0:4040347d719c 303 *
Erman Komurcu 0:4040347d719c 304 */
Erman Komurcu 0:4040347d719c 305 typedef union {
Erman Komurcu 0:4040347d719c 306 unsigned char raw;
Erman Komurcu 0:4040347d719c 307 struct {
Erman Komurcu 0:4040347d719c 308 unsigned char tx_pktlen_14_to_8 : 7; /**< Provides status information of bits transmitted
Erman Komurcu 0:4040347d719c 309 for the current packet */
Erman Komurcu 0:4040347d719c 310 unsigned char pktcomplete : 1; /**< Indicates if Packet transmission is completed */
Erman Komurcu 0:4040347d719c 311 } bits;
Erman Komurcu 0:4040347d719c 312 } max41463_4_reg_i2c4_t;
Erman Komurcu 0:4040347d719c 313
Erman Komurcu 0:4040347d719c 314 /**
Erman Komurcu 0:4040347d719c 315 * @brief I2C5 (0x15)
Erman Komurcu 0:4040347d719c 316 *
Erman Komurcu 0:4040347d719c 317 */
Erman Komurcu 0:4040347d719c 318 typedef union {
Erman Komurcu 0:4040347d719c 319 unsigned char raw;
Erman Komurcu 0:4040347d719c 320 struct {
Erman Komurcu 0:4040347d719c 321 unsigned char tx_pktlen_7_to_0 : 8; /**< Provides status information of bits transmitted
Erman Komurcu 0:4040347d719c 322 for the current packet */
Erman Komurcu 0:4040347d719c 323 } bits;
Erman Komurcu 0:4040347d719c 324 } max41463_4_reg_i2c5_t;
Erman Komurcu 0:4040347d719c 325
Erman Komurcu 0:4040347d719c 326 /**
Erman Komurcu 0:4040347d719c 327 * @brief I2C6 (0x16)
Erman Komurcu 0:4040347d719c 328 *
Erman Komurcu 0:4040347d719c 329 */
Erman Komurcu 0:4040347d719c 330 typedef union {
Erman Komurcu 0:4040347d719c 331 unsigned char raw;
Erman Komurcu 0:4040347d719c 332 struct {
Erman Komurcu 0:4040347d719c 333 unsigned char fifo_words : 3; /**< This field captures the number of locations currently filled in FIFO.
Erman Komurcu 0:4040347d719c 334 Each location corresponds to 8-bit data word */
Erman Komurcu 0:4040347d719c 335 unsigned char : 1;
Erman Komurcu 0:4040347d719c 336 unsigned char fifo_full : 1; /**< FIFO Full Status */
Erman Komurcu 0:4040347d719c 337 unsigned char fifo_empty : 1; /**< FIFO Empty Status */
Erman Komurcu 0:4040347d719c 338 unsigned char oflow : 1; /**< FIFO Overflow status */
Erman Komurcu 0:4040347d719c 339 unsigned char uflow : 1; /**< FIFO Underflow status */
Erman Komurcu 0:4040347d719c 340 } bits;
Erman Komurcu 0:4040347d719c 341 } max41463_4_reg_i2c6_t;
Erman Komurcu 0:4040347d719c 342
Erman Komurcu 0:4040347d719c 343 /**
Erman Komurcu 0:4040347d719c 344 * @brief CFG8 (0x17)
Erman Komurcu 0:4040347d719c 345 *
Erman Komurcu 0:4040347d719c 346 */
Erman Komurcu 0:4040347d719c 347 typedef union {
Erman Komurcu 0:4040347d719c 348 unsigned char raw;
Erman Komurcu 0:4040347d719c 349 struct {
Erman Komurcu 0:4040347d719c 350 unsigned char softreset : 1; /**< Places DUT into software reset. */
Erman Komurcu 0:4040347d719c 351 unsigned char : 7;
Erman Komurcu 0:4040347d719c 352 } bits;
Erman Komurcu 0:4040347d719c 353 } max41463_4_reg_cfg8_t;
Erman Komurcu 0:4040347d719c 354
Erman Komurcu 0:4040347d719c 355 /**
Erman Komurcu 0:4040347d719c 356 * @brief CFG9 (0x18)
Erman Komurcu 0:4040347d719c 357 *
Erman Komurcu 0:4040347d719c 358 */
Erman Komurcu 0:4040347d719c 359 typedef union {
Erman Komurcu 0:4040347d719c 360 unsigned char raw;
Erman Komurcu 0:4040347d719c 361 struct {
Erman Komurcu 0:4040347d719c 362 unsigned char xoen : 1; /**< Write to 0 binary.XO Enable register for test purpose */
Erman Komurcu 0:4040347d719c 363 unsigned char pllen : 1; /**< Write to 0 binary.PLL Enable register for test purpose */
Erman Komurcu 0:4040347d719c 364 unsigned char paen : 1; /**< Write to 0 binary.PA Enable register for test purpose */
Erman Komurcu 0:4040347d719c 365 unsigned char test_ana : 5; /**< Write to 0_0000 binary.Test modes for analog block */
Erman Komurcu 0:4040347d719c 366 } bits;
Erman Komurcu 0:4040347d719c 367 } max41463_4_reg_cfg9_t;
Erman Komurcu 0:4040347d719c 368
Erman Komurcu 0:4040347d719c 369 /**
Erman Komurcu 0:4040347d719c 370 * @brief ADDL1 (0x19)
Erman Komurcu 0:4040347d719c 371 *
Erman Komurcu 0:4040347d719c 372 */
Erman Komurcu 0:4040347d719c 373 typedef union {
Erman Komurcu 0:4040347d719c 374 unsigned char raw;
Erman Komurcu 0:4040347d719c 375 struct {
Erman Komurcu 0:4040347d719c 376 unsigned char ring_bias : 2; /**< Write to 00 binary. Controls the current mirror ratio in Ring Oscillator
Erman Komurcu 0:4040347d719c 377 control.  For lower frequencies, the number can be reduced for slightly
Erman Komurcu 0:4040347d719c 378 better phase noise. */
Erman Komurcu 0:4040347d719c 379 unsigned char ring_trim : 2; /**< Write to 00 binary.
Erman Komurcu 0:4040347d719c 380 Adjusts the current control value for ring oscillator. */
Erman Komurcu 0:4040347d719c 381 unsigned char bias_trim : 2; /**< Write to 00 binary. Adjusts bias current for PLL block. */
Erman Komurcu 0:4040347d719c 382 unsigned char xtal_gm : 2; /**< Write to 00 binary.
Erman Komurcu 0:4040347d719c 383 Controls crystal oscillator GM current for startup time control */
Erman Komurcu 0:4040347d719c 384 } bits;
Erman Komurcu 0:4040347d719c 385 } max41463_4_reg_addl1_t;
Erman Komurcu 0:4040347d719c 386
Erman Komurcu 0:4040347d719c 387 /**
Erman Komurcu 0:4040347d719c 388 * @brief ADLL2 (0x1A)
Erman Komurcu 0:4040347d719c 389 *
Erman Komurcu 0:4040347d719c 390 */
Erman Komurcu 0:4040347d719c 391 typedef union {
Erman Komurcu 0:4040347d719c 392 unsigned char raw;
Erman Komurcu 0:4040347d719c 393 struct {
Erman Komurcu 0:4040347d719c 394 unsigned char addlctrl2 : 7; /**< Write to 000_0000 binary. Additional control fields for future use */
Erman Komurcu 0:4040347d719c 395 unsigned char scl_stretch_dly : 1; /**< Write to 1 binary. I2C SCL Stretch Release delay enable */
Erman Komurcu 0:4040347d719c 396 } bits;
Erman Komurcu 0:4040347d719c 397 } max41463_4_reg_addl2_t;
Erman Komurcu 0:4040347d719c 398
Erman Komurcu 0:4040347d719c 399 /**
Erman Komurcu 0:4040347d719c 400 * @brief Register Set
Erman Komurcu 0:4040347d719c 401 *
Erman Komurcu 0:4040347d719c 402 */
Erman Komurcu 0:4040347d719c 403 typedef struct {
Erman Komurcu 0:4040347d719c 404 max41463_4_reg_cfg1_t reg_cfg1;
Erman Komurcu 0:4040347d719c 405 max41463_4_reg_cfg2_t reg_cfg2;
Erman Komurcu 0:4040347d719c 406 max41463_4_reg_cfg3_t reg_cfg3;
Erman Komurcu 0:4040347d719c 407 max41463_4_reg_cfg4_t reg_cfg4;
Erman Komurcu 0:4040347d719c 408 max41463_4_reg_cfg5_t reg_cfg5;
Erman Komurcu 0:4040347d719c 409 max41463_4_reg_shdn_t reg_shdn;
Erman Komurcu 0:4040347d719c 410 max41463_4_reg_pa1_t reg_pa1;
Erman Komurcu 0:4040347d719c 411 max41463_4_reg_pa2_t reg_pa2;
Erman Komurcu 0:4040347d719c 412 max41463_4_reg_pll1_t reg_pll1;
Erman Komurcu 0:4040347d719c 413 max41463_4_reg_pll2_t reg_pll2;
Erman Komurcu 0:4040347d719c 414 max41463_4_reg_cfg6_t reg_cfg6;
Erman Komurcu 0:4040347d719c 415 max41463_4_reg_pll3_t reg_pll3;
Erman Komurcu 0:4040347d719c 416 max41463_4_reg_pll4_t reg_pll4;
Erman Komurcu 0:4040347d719c 417 max41463_4_reg_pll5_t reg_pll5;
Erman Komurcu 0:4040347d719c 418 max41463_4_reg_pll6_t reg_pll6;
Erman Komurcu 0:4040347d719c 419 max41463_4_reg_pll7_t reg_pll7;
Erman Komurcu 0:4040347d719c 420 max41463_4_reg_cfg7_t reg_cfg7;
Erman Komurcu 0:4040347d719c 421 max41463_4_reg_i2c1_t reg_i2c1;
Erman Komurcu 0:4040347d719c 422 max41463_4_reg_i2c2_t reg_i2c2;
Erman Komurcu 0:4040347d719c 423 max41463_4_reg_i2c3_t reg_i2c3;
Erman Komurcu 0:4040347d719c 424 max41463_4_reg_i2c4_t reg_i2c4;
Erman Komurcu 0:4040347d719c 425 max41463_4_reg_i2c5_t reg_i2c5;
Erman Komurcu 0:4040347d719c 426 max41463_4_reg_i2c6_t reg_i2c6;
Erman Komurcu 0:4040347d719c 427 max41463_4_reg_cfg8_t reg_cfg8;
Erman Komurcu 0:4040347d719c 428 max41463_4_reg_cfg9_t reg_cfg9;
Erman Komurcu 0:4040347d719c 429 max41463_4_reg_addl1_t reg_addl1;
Erman Komurcu 0:4040347d719c 430 max41463_4_reg_addl2_t reg_addl2;
Erman Komurcu 0:4040347d719c 431 } max41463_4_reg_map_t;
Erman Komurcu 0:4040347d719c 432
Erman Komurcu 0:4040347d719c 433 #endif /* MAX41463_4_REGS_H_ */