ISM RF transmitter library for MAX4146X family devices

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

Committer:
Erman Komurcu
Date:
Thu May 02 12:51:33 2019 +0300
Revision:
0:4040347d719c
Child:
1:ccf0e1d28860
Initial Commit

Who changed what in which revision?

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