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
Erman Komurcu 0:4040347d719c 35 #ifndef MAX41461_2_REGS_H_
Erman Komurcu 0:4040347d719c 36 #define MAX41461_2_REGS_H_
Erman Komurcu 0:4040347d719c 37
Erman Komurcu 0:4040347d719c 38 /**
Erman Komurcu 0:4040347d719c 39 * @brief CFG1 (0X00)
Erman Komurcu 0:4040347d719c 40 *
Erman Komurcu 0:4040347d719c 41 */
Erman Komurcu 0:4040347d719c 42 typedef union {
Erman Komurcu 0:4040347d719c 43 unsigned char raw;
Erman Komurcu 0:4040347d719c 44 struct {
Erman Komurcu 0:4040347d719c 45 unsigned char modmode : 1; /**< Configures modulator mode */
Erman Komurcu 0:4040347d719c 46 unsigned char sync : 1; /**< Controls if clock output acts as an input.
Erman Komurcu 0:4040347d719c 47 When an input, it will sample the DATA pin. */
Erman Komurcu 0:4040347d719c 48 unsigned char fskshape : 1; /**< Sets the state of FSK Gaussian Shaping */
Erman Komurcu 0:4040347d719c 49 unsigned char : 1;
Erman Komurcu 0:4040347d719c 50 unsigned char xoclkdiv : 2; /**< XO clock division ratio for digital block */
Erman Komurcu 0:4040347d719c 51 unsigned char xoclkdelay : 2; /**< Start delay before enabling XO clock to digital block */
Erman Komurcu 0:4040347d719c 52 } bits;
Erman Komurcu 0:4040347d719c 53 } max41461_2_reg_cfg1_t;
Erman Komurcu 0:4040347d719c 54
Erman Komurcu 0:4040347d719c 55 /**
Erman Komurcu 0:4040347d719c 56 * @brief CFG2 (0X01)
Erman Komurcu 0:4040347d719c 57 *
Erman Komurcu 0:4040347d719c 58 */
Erman Komurcu 0:4040347d719c 59 typedef union {
Erman Komurcu 0:4040347d719c 60 unsigned char raw;
Erman Komurcu 0:4040347d719c 61 struct {
Erman Komurcu 0:4040347d719c 62 unsigned char bclk_postdiv : 3; /**< Select the Baud Clock Post Division Ratio.
Erman Komurcu 0:4040347d719c 63 Valid values are from 1 to 5. */
Erman Komurcu 0:4040347d719c 64 unsigned char : 3;
Erman Komurcu 0:4040347d719c 65 unsigned char clkout_delay : 2; /**< Selects the delay when CLKOUT starts toggling upon
Erman Komurcu 0:4040347d719c 66 exiting SHUTDOWN mode, in divided XO clock cycles */
Erman Komurcu 0:4040347d719c 67 } bits;
Erman Komurcu 0:4040347d719c 68 } max41461_2_reg_cfg2_t;
Erman Komurcu 0:4040347d719c 69
Erman Komurcu 0:4040347d719c 70 /**
Erman Komurcu 0:4040347d719c 71 * @brief CFG3 (0X02)
Erman Komurcu 0:4040347d719c 72 *
Erman Komurcu 0:4040347d719c 73 */
Erman Komurcu 0:4040347d719c 74 typedef union {
Erman Komurcu 0:4040347d719c 75 unsigned char raw;
Erman Komurcu 0:4040347d719c 76 struct {
Erman Komurcu 0:4040347d719c 77 unsigned char bclk_prediv : 8; /**< Baud clock predivision ratio. Valid values are from 3 to 255 */
Erman Komurcu 0:4040347d719c 78 } bits;
Erman Komurcu 0:4040347d719c 79 } max41461_2_reg_cfg3_t;
Erman Komurcu 0:4040347d719c 80
Erman Komurcu 0:4040347d719c 81 /**
Erman Komurcu 0:4040347d719c 82 * @brief CFG4 (0X03)
Erman Komurcu 0:4040347d719c 83 *
Erman Komurcu 0:4040347d719c 84 */
Erman Komurcu 0:4040347d719c 85 typedef union {
Erman Komurcu 0:4040347d719c 86 unsigned char raw;
Erman Komurcu 0:4040347d719c 87 struct {
Erman Komurcu 0:4040347d719c 88 unsigned char pwdn_mode : 2; /**< Power Down Mode Select */
Erman Komurcu 0:4040347d719c 89 unsigned char : 6;
Erman Komurcu 0:4040347d719c 90 } bits;
Erman Komurcu 0:4040347d719c 91 } max41461_2_reg_cfg4_t;
Erman Komurcu 0:4040347d719c 92
Erman Komurcu 0:4040347d719c 93 /**
Erman Komurcu 0:4040347d719c 94 * @brief CFG5 (0X04)
Erman Komurcu 0:4040347d719c 95 *
Erman Komurcu 0:4040347d719c 96 */
Erman Komurcu 0:4040347d719c 97 typedef union {
Erman Komurcu 0:4040347d719c 98 unsigned char raw;
Erman Komurcu 0:4040347d719c 99 struct {
Erman Komurcu 0:4040347d719c 100 unsigned char tstep : 6; /**< Controls GFSK shaping. See Digital FSK Modulation section. */
Erman Komurcu 0:4040347d719c 101 unsigned char : 2;
Erman Komurcu 0:4040347d719c 102 } bits;
Erman Komurcu 0:4040347d719c 103 } max41461_2_reg_cfg5_t;
Erman Komurcu 0:4040347d719c 104
Erman Komurcu 0:4040347d719c 105 /**
Erman Komurcu 0:4040347d719c 106 * @brief SHDN (0X05)
Erman Komurcu 0:4040347d719c 107 *
Erman Komurcu 0:4040347d719c 108 */
Erman Komurcu 0:4040347d719c 109 typedef union {
Erman Komurcu 0:4040347d719c 110 unsigned char raw;
Erman Komurcu 0:4040347d719c 111 struct {
Erman Komurcu 0:4040347d719c 112 unsigned char pa_boost : 1; /**< Enables a boost in PA output power for frequencies above 850MHz.
Erman Komurcu 0:4040347d719c 113 This requires a different PA match compared to normal operation. */
Erman Komurcu 0:4040347d719c 114 unsigned char : 7;
Erman Komurcu 0:4040347d719c 115 } bits;
Erman Komurcu 0:4040347d719c 116 } max41461_2_reg_shdn_t;
Erman Komurcu 0:4040347d719c 117
Erman Komurcu 0:4040347d719c 118 /**
Erman Komurcu 0:4040347d719c 119 * @brief PA1 (0X06)
Erman Komurcu 0:4040347d719c 120 *
Erman Komurcu 0:4040347d719c 121 */
Erman Komurcu 0:4040347d719c 122 typedef union {
Erman Komurcu 0:4040347d719c 123 unsigned char raw;
Erman Komurcu 0:4040347d719c 124 struct {
Erman Komurcu 0:4040347d719c 125 unsigned char papwr : 3; /**< Controls the PA output power by enabling parallel drivers. */
Erman Komurcu 0:4040347d719c 126 unsigned char : 5;
Erman Komurcu 0:4040347d719c 127 } bits;
Erman Komurcu 0:4040347d719c 128 } max41461_2_reg_pa1_t;
Erman Komurcu 0:4040347d719c 129
Erman Komurcu 0:4040347d719c 130 /**
Erman Komurcu 0:4040347d719c 131 * @brief PA2 (0X07)
Erman Komurcu 0:4040347d719c 132 *
Erman Komurcu 0:4040347d719c 133 */
Erman Komurcu 0:4040347d719c 134 typedef union {
Erman Komurcu 0:4040347d719c 135 unsigned char raw;
Erman Komurcu 0:4040347d719c 136 struct {
Erman Komurcu 0:4040347d719c 137 unsigned char pacap : 5; /**< Controls shunt capacitance on PA output in fF. */
Erman Komurcu 0:4040347d719c 138 unsigned char : 3;
Erman Komurcu 0:4040347d719c 139 } bits;
Erman Komurcu 0:4040347d719c 140 } max41461_2_reg_pa2_t;
Erman Komurcu 0:4040347d719c 141
Erman Komurcu 0:4040347d719c 142 /**
Erman Komurcu 0:4040347d719c 143 * @brief PLL1 (0X08)
Erman Komurcu 0:4040347d719c 144 *
Erman Komurcu 0:4040347d719c 145 */
Erman Komurcu 0:4040347d719c 146 typedef union {
Erman Komurcu 0:4040347d719c 147 unsigned char raw;
Erman Komurcu 0:4040347d719c 148 struct {
Erman Komurcu 0:4040347d719c 149 unsigned char lomode : 1; /**< Sets LO generation. For lower power, choose LOWCURRENT.
Erman Komurcu 0:4040347d719c 150 For higher performance, choose LOWNOISE. */
Erman Komurcu 0:4040347d719c 151 unsigned char lodiv : 2; /**< LC VCO divider value*/
Erman Komurcu 0:4040347d719c 152 unsigned char loopbw : 2; /**< Write to 00 binary.Sets PLL loop bandwidth. */
Erman Komurcu 0:4040347d719c 153 unsigned char fracmode : 1; /**< Sets PLL between fractional-N and integer-N mode. */
Erman Komurcu 0:4040347d719c 154 unsigned char cplin : 2; /**< Sets the level of charge pump offset current for fractional N mode to
Erman Komurcu 0:4040347d719c 155 improve close in phase noise. Set to DISABLED for integer N mode. */
Erman Komurcu 0:4040347d719c 156 } bits;
Erman Komurcu 0:4040347d719c 157 } max41461_2_reg_pll1_t;
Erman Komurcu 0:4040347d719c 158
Erman Komurcu 0:4040347d719c 159 /**
Erman Komurcu 0:4040347d719c 160 * @brief PLL2 (0X09)
Erman Komurcu 0:4040347d719c 161 *
Erman Komurcu 0:4040347d719c 162 */
Erman Komurcu 0:4040347d719c 163 typedef union {
Erman Komurcu 0:4040347d719c 164 unsigned char raw;
Erman Komurcu 0:4040347d719c 165 struct {
Erman Komurcu 0:4040347d719c 166 unsigned char cpval : 2; /**< Sets Charge Pump Current */
Erman Komurcu 0:4040347d719c 167 unsigned char : 4;
Erman Komurcu 0:4040347d719c 168 unsigned char lcvco_fast_start : 1; /**< Write to 0 binary.Enables fast start of LC VCO
Erman Komurcu 0:4040347d719c 169 because of bias filtering */
Erman Komurcu 0:4040347d719c 170 unsigned char lcvco_pwr : 1; /**< Write to 0 binary.Controls power in LC VCO */
Erman Komurcu 0:4040347d719c 171 } bits;
Erman Komurcu 0:4040347d719c 172 } max41461_2_reg_pll2_t;
Erman Komurcu 0:4040347d719c 173
Erman Komurcu 0:4040347d719c 174 /**
Erman Komurcu 0:4040347d719c 175 * @brief CFG6 (0X0A)
Erman Komurcu 0:4040347d719c 176 *
Erman Komurcu 0:4040347d719c 177 */
Erman Komurcu 0:4040347d719c 178 typedef union {
Erman Komurcu 0:4040347d719c 179 unsigned char raw;
Erman Komurcu 0:4040347d719c 180 struct {
Erman Komurcu 0:4040347d719c 181 unsigned char fourwire1 : 1; /**< */
Erman Komurcu 0:4040347d719c 182 unsigned char spi_txen1 : 1; /**< */
Erman Komurcu 0:4040347d719c 183 unsigned char i2c_txen1 : 1; /**< Enables DATA transmission in I2C mode. Aliased address for I2C_TXEN1 */
Erman Komurcu 0:4040347d719c 184 unsigned char : 5;
Erman Komurcu 0:4040347d719c 185 } bits;
Erman Komurcu 0:4040347d719c 186 } max41461_2_reg_cfg6_t;
Erman Komurcu 0:4040347d719c 187
Erman Komurcu 0:4040347d719c 188 /**
Erman Komurcu 0:4040347d719c 189 * @brief PLL3 (0X0B)
Erman Komurcu 0:4040347d719c 190 *
Erman Komurcu 0:4040347d719c 191 */
Erman Komurcu 0:4040347d719c 192 typedef union {
Erman Komurcu 0:4040347d719c 193 unsigned char raw;
Erman Komurcu 0:4040347d719c 194 struct {
Erman Komurcu 0:4040347d719c 195 unsigned char freq_23_to_16 : 8; /**< FREQ value to PLL. LO frequency= FREQ<23:0>/2^16*fXTAL */
Erman Komurcu 0:4040347d719c 196 } bits;
Erman Komurcu 0:4040347d719c 197 } max41461_2_reg_pll3_t;
Erman Komurcu 0:4040347d719c 198
Erman Komurcu 0:4040347d719c 199 /**
Erman Komurcu 0:4040347d719c 200 * @brief PLL4 (0X0C)
Erman Komurcu 0:4040347d719c 201 *
Erman Komurcu 0:4040347d719c 202 */
Erman Komurcu 0:4040347d719c 203 typedef union {
Erman Komurcu 0:4040347d719c 204 unsigned char raw;
Erman Komurcu 0:4040347d719c 205 struct {
Erman Komurcu 0:4040347d719c 206 unsigned char freq_15_to_8 : 8; /**< FREQ value to PLL */
Erman Komurcu 0:4040347d719c 207 } bits;
Erman Komurcu 0:4040347d719c 208 } max41461_2_reg_pll4_t;
Erman Komurcu 0:4040347d719c 209
Erman Komurcu 0:4040347d719c 210 /**
Erman Komurcu 0:4040347d719c 211 * @brief PLL5 (0X0D)
Erman Komurcu 0:4040347d719c 212 *
Erman Komurcu 0:4040347d719c 213 */
Erman Komurcu 0:4040347d719c 214 typedef union {
Erman Komurcu 0:4040347d719c 215 unsigned char raw;
Erman Komurcu 0:4040347d719c 216 struct {
Erman Komurcu 0:4040347d719c 217 unsigned char freq_7_to_0 : 8; /**< FREQ value to PLL */
Erman Komurcu 0:4040347d719c 218 } bits;
Erman Komurcu 0:4040347d719c 219 } max41461_2_reg_pll5_t;
Erman Komurcu 0:4040347d719c 220
Erman Komurcu 0:4040347d719c 221 /**
Erman Komurcu 0:4040347d719c 222 * @brief PLL6 (0X0E)
Erman Komurcu 0:4040347d719c 223 *
Erman Komurcu 0:4040347d719c 224 */
Erman Komurcu 0:4040347d719c 225 typedef union {
Erman Komurcu 0:4040347d719c 226 unsigned char raw;
Erman Komurcu 0:4040347d719c 227 struct {
Erman Komurcu 0:4040347d719c 228 unsigned char deltaf : 7; /**< For FSK mode, MODMODE=1 and FSKSHAPE=0, sets the frequency deviation from the
Erman Komurcu 0:4040347d719c 229 space frequency for the mark frequency. fDELTA = DELTAF[6:0]*fXTAL/8192 */
Erman Komurcu 0:4040347d719c 230 unsigned char : 1;
Erman Komurcu 0:4040347d719c 231 } bits;
Erman Komurcu 0:4040347d719c 232 } max41461_2_reg_pll6_t;
Erman Komurcu 0:4040347d719c 233
Erman Komurcu 0:4040347d719c 234 /**
Erman Komurcu 0:4040347d719c 235 * @brief PLL7 (0X0F)
Erman Komurcu 0:4040347d719c 236 *
Erman Komurcu 0:4040347d719c 237 */
Erman Komurcu 0:4040347d719c 238 typedef union {
Erman Komurcu 0:4040347d719c 239 unsigned char raw;
Erman Komurcu 0:4040347d719c 240 struct {
Erman Komurcu 0:4040347d719c 241 unsigned char deltaf_shape : 4; /**< For FSK mode, MODMODE = 1 and FSKSHAPE = 1, sets the frequency deviation
Erman Komurcu 0:4040347d719c 242 from the space frequency for the mark frequency.
Erman Komurcu 0:4040347d719c 243 fDELTA = DELTAF_SHAPE[3:0]*fXTAL/81920 */
Erman Komurcu 0:4040347d719c 244 unsigned char : 4;
Erman Komurcu 0:4040347d719c 245 } bits;
Erman Komurcu 0:4040347d719c 246 } max41461_2_reg_pll7_t;
Erman Komurcu 0:4040347d719c 247
Erman Komurcu 0:4040347d719c 248 /**
Erman Komurcu 0:4040347d719c 249 * @brief CFG7 (0X10)
Erman Komurcu 0:4040347d719c 250 *
Erman Komurcu 0:4040347d719c 251 */
Erman Komurcu 0:4040347d719c 252 typedef union {
Erman Komurcu 0:4040347d719c 253 unsigned char raw;
Erman Komurcu 0:4040347d719c 254 struct {
Erman Komurcu 0:4040347d719c 255 unsigned char fourwire2 : 1; /**< */
Erman Komurcu 0:4040347d719c 256 unsigned char spi_txen2 : 1; /**< */
Erman Komurcu 0:4040347d719c 257 unsigned char i2c_txen2 : 1; /**< When set, enables DATA transmission in I2C mode.
Erman Komurcu 0:4040347d719c 258 Aliased address for I2C_TXEN1 */
Erman Komurcu 0:4040347d719c 259 unsigned char : 5;
Erman Komurcu 0:4040347d719c 260 } bits;
Erman Komurcu 0:4040347d719c 261 } max41461_2_reg_cfg7_t;
Erman Komurcu 0:4040347d719c 262
Erman Komurcu 0:4040347d719c 263 /**
Erman Komurcu 0:4040347d719c 264 * @brief I2C1 (0X11)
Erman Komurcu 0:4040347d719c 265 *
Erman Komurcu 0:4040347d719c 266 */
Erman Komurcu 0:4040347d719c 267 typedef union {
Erman Komurcu 0:4040347d719c 268 unsigned char raw;
Erman Komurcu 0:4040347d719c 269 struct {
Erman Komurcu 0:4040347d719c 270 unsigned char pktlen_14_to_8 : 7; /**< Packet Length */
Erman Komurcu 0:4040347d719c 271 unsigned char pktlen_mode : 1; /**< Packet Length Mode */
Erman Komurcu 0:4040347d719c 272 } bits;
Erman Komurcu 0:4040347d719c 273 } max41461_2_reg_i2c1_t;
Erman Komurcu 0:4040347d719c 274
Erman Komurcu 0:4040347d719c 275 /**
Erman Komurcu 0:4040347d719c 276 * @brief I2C2 (0X012)
Erman Komurcu 0:4040347d719c 277 *
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 } max41461_2_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 } max41461_2_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
Erman Komurcu 0:4040347d719c 307 transmitted 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 } max41461_2_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
Erman Komurcu 0:4040347d719c 320 transmitted for the current packet */
Erman Komurcu 0:4040347d719c 321 } bits;
Erman Komurcu 0:4040347d719c 322 } max41461_2_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 } max41461_2_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 } max41461_2_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 } max41461_2_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
Erman Komurcu 0:4040347d719c 376 slightly 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.
Erman Komurcu 0:4040347d719c 380 Adjusts bias current for PLL block. */
Erman Komurcu 0:4040347d719c 381 unsigned char xtal_gm : 2; /**< Write to 00 binary.
Erman Komurcu 0:4040347d719c 382 Controls crystal oscillator GM current for startup time control */
Erman Komurcu 0:4040347d719c 383 } bits;
Erman Komurcu 0:4040347d719c 384 } max41461_2_reg_addl1_t;
Erman Komurcu 0:4040347d719c 385
Erman Komurcu 0:4040347d719c 386 /**
Erman Komurcu 0:4040347d719c 387 * @brief ADDL2 (0X1A)
Erman Komurcu 0:4040347d719c 388 *
Erman Komurcu 0:4040347d719c 389 */
Erman Komurcu 0:4040347d719c 390 typedef union {
Erman Komurcu 0:4040347d719c 391 unsigned char raw;
Erman Komurcu 0:4040347d719c 392 struct {
Erman Komurcu 0:4040347d719c 393 unsigned char addlctrl2 : 7; /**< Write to 000_0000 binary.Additional control fields for future use */
Erman Komurcu 0:4040347d719c 394 unsigned char scl_stretch_dly : 1; /**< Write to 1 binary. I2C SCL Stretch Release delay enable */
Erman Komurcu 0:4040347d719c 395 } bits;
Erman Komurcu 0:4040347d719c 396 } max41461_2_reg_addl2_t;
Erman Komurcu 0:4040347d719c 397
Erman Komurcu 0:4040347d719c 398 /**
Erman Komurcu 0:4040347d719c 399 * @brief Register Set
Erman Komurcu 0:4040347d719c 400 *
Erman Komurcu 0:4040347d719c 401 */
Erman Komurcu 0:4040347d719c 402 typedef struct {
Erman Komurcu 0:4040347d719c 403 max41461_2_reg_cfg1_t reg_cfg1;
Erman Komurcu 0:4040347d719c 404 max41461_2_reg_cfg2_t reg_cfg2;
Erman Komurcu 0:4040347d719c 405 max41461_2_reg_cfg3_t reg_cfg3;
Erman Komurcu 0:4040347d719c 406 max41461_2_reg_cfg4_t reg_cfg4;
Erman Komurcu 0:4040347d719c 407 max41461_2_reg_cfg5_t reg_cfg5;
Erman Komurcu 0:4040347d719c 408 max41461_2_reg_shdn_t reg_shdn;
Erman Komurcu 0:4040347d719c 409 max41461_2_reg_pa1_t reg_pa1;
Erman Komurcu 0:4040347d719c 410 max41461_2_reg_pa2_t reg_pa2;
Erman Komurcu 0:4040347d719c 411 max41461_2_reg_pll1_t reg_pll1;
Erman Komurcu 0:4040347d719c 412 max41461_2_reg_pll2_t reg_pll2;
Erman Komurcu 0:4040347d719c 413 max41461_2_reg_cfg6_t reg_cfg6;
Erman Komurcu 0:4040347d719c 414 max41461_2_reg_pll3_t reg_pll3;
Erman Komurcu 0:4040347d719c 415 max41461_2_reg_pll4_t reg_pll4;
Erman Komurcu 0:4040347d719c 416 max41461_2_reg_pll5_t reg_pll5;
Erman Komurcu 0:4040347d719c 417 max41461_2_reg_pll6_t reg_pll6;
Erman Komurcu 0:4040347d719c 418 max41461_2_reg_pll7_t reg_pll7;
Erman Komurcu 0:4040347d719c 419 max41461_2_reg_cfg7_t reg_cfg7;
Erman Komurcu 0:4040347d719c 420 max41461_2_reg_i2c1_t reg_i2c1;
Erman Komurcu 0:4040347d719c 421 max41461_2_reg_i2c2_t reg_i2c2;
Erman Komurcu 0:4040347d719c 422 max41461_2_reg_i2c3_t reg_i2c3;
Erman Komurcu 0:4040347d719c 423 max41461_2_reg_i2c4_t reg_i2c4;
Erman Komurcu 0:4040347d719c 424 max41461_2_reg_i2c5_t reg_i2c5;
Erman Komurcu 0:4040347d719c 425 max41461_2_reg_i2c6_t reg_i2c6;
Erman Komurcu 0:4040347d719c 426 max41461_2_reg_cfg8_t reg_cfg8;
Erman Komurcu 0:4040347d719c 427 max41461_2_reg_cfg9_t reg_cfg9;
Erman Komurcu 0:4040347d719c 428 max41461_2_reg_addl1_t reg_addl1;
Erman Komurcu 0:4040347d719c 429 max41461_2_reg_addl2_t reg_addl2;
Erman Komurcu 0:4040347d719c 430 } max41461_2_reg_map_t;
Erman Komurcu 0:4040347d719c 431
Erman Komurcu 0:4040347d719c 432
Erman Komurcu 0:4040347d719c 433 #endif /* MAX41461_2_REGS_H_ */