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 MAX41460_REGS_H_
Erman Komurcu 0:4040347d719c 35 #define MAX41460_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 } max41460_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 } max41460_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;
Erman Komurcu 0:4040347d719c 77 } bits;
Erman Komurcu 0:4040347d719c 78 } max41460_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 } max41460_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 } max41460_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 en_ldo : 1; /**< Write to 0 binary.Register based enable control for main 1.8V LDO.
Erman Komurcu 0:4040347d719c 114 This register bit is an input to an "OR" gate.
Erman Komurcu 0:4040347d719c 115 The other input to the "OR" gate is the internally generated
Erman Komurcu 0:4040347d719c 116 functional signal for LDO enable. */
Erman Komurcu 0:4040347d719c 117 unsigned char dis_ldo_func_en : 1; /**< Write to 1 binary.Active low disable signal for functional path
Erman Komurcu 0:4040347d719c 118 generated LDO enable signal. This register bit is an input to an
Erman Komurcu 0:4040347d719c 119 "AND" gate. The other input to the "AND" gate is the internally
Erman Komurcu 0:4040347d719c 120 generated functional signal for LDO enable. */
Erman Komurcu 0:4040347d719c 121 unsigned char : 5;
Erman Komurcu 0:4040347d719c 122 } bits;
Erman Komurcu 0:4040347d719c 123 } max41460_reg_shdn_t;
Erman Komurcu 0:4040347d719c 124
Erman Komurcu 0:4040347d719c 125 /**
Erman Komurcu 0:4040347d719c 126 * @brief PA1 (0x06)
Erman Komurcu 0:4040347d719c 127 *
Erman Komurcu 0:4040347d719c 128 */
Erman Komurcu 0:4040347d719c 129 typedef union {
Erman Komurcu 0:4040347d719c 130 unsigned char raw;
Erman Komurcu 0:4040347d719c 131 struct {
Erman Komurcu 0:4040347d719c 132 unsigned char papwr : 3; /**< Controls the PA output power by enabling parallel drivers. */
Erman Komurcu 0:4040347d719c 133 unsigned char : 2;
Erman Komurcu 0:4040347d719c 134 unsigned char pabias : 3; /**< Write to 100 binary.Adjusts cascode bias for PA.
Erman Komurcu 0:4040347d719c 135 Enumerations are a percentage of VDD */
Erman Komurcu 0:4040347d719c 136 } bits;
Erman Komurcu 0:4040347d719c 137 } max41460_reg_pa1_t;
Erman Komurcu 0:4040347d719c 138
Erman Komurcu 0:4040347d719c 139 /**
Erman Komurcu 0:4040347d719c 140 * @brief PA2 (0x07)
Erman Komurcu 0:4040347d719c 141 *
Erman Komurcu 0:4040347d719c 142 */
Erman Komurcu 0:4040347d719c 143 typedef union {
Erman Komurcu 0:4040347d719c 144 unsigned char raw;
Erman Komurcu 0:4040347d719c 145 struct {
Erman Komurcu 0:4040347d719c 146 unsigned char pacap : 5; /**< Controls shunt capacitance on PA output in fF. */
Erman Komurcu 0:4040347d719c 147 unsigned char pacapbias : 3; /**< Write to 100 binary.Adjusts the amount of capacitance
Erman Komurcu 0:4040347d719c 148 on PA Cascode decoupling cap. */
Erman Komurcu 0:4040347d719c 149 } bits;
Erman Komurcu 0:4040347d719c 150 } max41460_reg_pa2_t;
Erman Komurcu 0:4040347d719c 151
Erman Komurcu 0:4040347d719c 152 /**
Erman Komurcu 0:4040347d719c 153 * @brief PLL1 (0x08)
Erman Komurcu 0:4040347d719c 154 *
Erman Komurcu 0:4040347d719c 155 */
Erman Komurcu 0:4040347d719c 156 typedef union {
Erman Komurcu 0:4040347d719c 157 unsigned char raw;
Erman Komurcu 0:4040347d719c 158 struct {
Erman Komurcu 0:4040347d719c 159 unsigned char lomode : 1; /**< Sets LO generation. For lower power, choose LOWCURRENT.
Erman Komurcu 0:4040347d719c 160 For higher performance, choose LOWNOISE. */
Erman Komurcu 0:4040347d719c 161 unsigned char lodiv : 2;
Erman Komurcu 0:4040347d719c 162 unsigned char loopbw : 2; /**< Write to 00 binary.Sets PLL loop bandwidth. */
Erman Komurcu 0:4040347d719c 163 unsigned char fracmode : 1; /**< Sets PLL between fractional-N and integer-N mode. */
Erman Komurcu 0:4040347d719c 164 unsigned char cplin : 2; /**< Sets the level of charge pump offset current for fractional N mode to
Erman Komurcu 0:4040347d719c 165 improve close in phase noise. Set to DISABLED for integer N mode. */
Erman Komurcu 0:4040347d719c 166 } bits;
Erman Komurcu 0:4040347d719c 167 } max41460_reg_pll1_t;
Erman Komurcu 0:4040347d719c 168
Erman Komurcu 0:4040347d719c 169 /**
Erman Komurcu 0:4040347d719c 170 * @brief PLL2 (0x09)
Erman Komurcu 0:4040347d719c 171 *
Erman Komurcu 0:4040347d719c 172 */
Erman Komurcu 0:4040347d719c 173 typedef union {
Erman Komurcu 0:4040347d719c 174 unsigned char raw;
Erman Komurcu 0:4040347d719c 175 struct {
Erman Komurcu 0:4040347d719c 176 unsigned char cpval : 2; /**< Sets Charge Pump Current */
Erman Komurcu 0:4040347d719c 177 unsigned char : 4;
Erman Komurcu 0:4040347d719c 178 unsigned char lcvco_fast_start : 1; /**< Write to 0 binary.Enables fast start of LC VCO
Erman Komurcu 0:4040347d719c 179 because of bias filtering */
Erman Komurcu 0:4040347d719c 180 unsigned char lcvco_pwr : 1; /**< Write to 0 binary.Controls power in LC VCO */
Erman Komurcu 0:4040347d719c 181 } bits;
Erman Komurcu 0:4040347d719c 182 } max41460_reg_pll2_t;
Erman Komurcu 0:4040347d719c 183
Erman Komurcu 0:4040347d719c 184 /**
Erman Komurcu 0:4040347d719c 185 * @brief CFG6 (0x0A)
Erman Komurcu 0:4040347d719c 186 *
Erman Komurcu 0:4040347d719c 187 */
Erman Komurcu 0:4040347d719c 188 typedef union {
Erman Komurcu 0:4040347d719c 189 unsigned char raw;
Erman Komurcu 0:4040347d719c 190 struct {
Erman Komurcu 0:4040347d719c 191 unsigned char fourwire1 : 1; /**< Four wire readback on CLKOUT pin mode */
Erman Komurcu 0:4040347d719c 192 unsigned char spi_txen1 : 1; /**< Transmission enable */
Erman Komurcu 0:4040347d719c 193 unsigned char i2c_txen1 : 1; /**< Write to 0 binary */
Erman Komurcu 0:4040347d719c 194 unsigned char : 5;
Erman Komurcu 0:4040347d719c 195 } bits;
Erman Komurcu 0:4040347d719c 196 } max41460_reg_cfg6_t;
Erman Komurcu 0:4040347d719c 197
Erman Komurcu 0:4040347d719c 198 /**
Erman Komurcu 0:4040347d719c 199 * @brief PLL3 (0x0B)
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_23_to_16 : 8; /**< FREQ value to PLL. LO frequency= FREQ<23:0>2^16*fXTAL */
Erman Komurcu 0:4040347d719c 206 } bits;
Erman Komurcu 0:4040347d719c 207 } max41460_reg_pll3_t;
Erman Komurcu 0:4040347d719c 208
Erman Komurcu 0:4040347d719c 209 /**
Erman Komurcu 0:4040347d719c 210 * @brief PLL4 (0x0C)
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_15_to_8 : 8; /**< FREQ value to PLL */
Erman Komurcu 0:4040347d719c 217 } bits;
Erman Komurcu 0:4040347d719c 218 } max41460_reg_pll4_t;
Erman Komurcu 0:4040347d719c 219
Erman Komurcu 0:4040347d719c 220 /**
Erman Komurcu 0:4040347d719c 221 * @brief PLL5 (0x0D)
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 freq_7_to_0 : 8; /**< FREQ value to PLL */
Erman Komurcu 0:4040347d719c 228 } bits;
Erman Komurcu 0:4040347d719c 229 } max41460_reg_pll5_t;
Erman Komurcu 0:4040347d719c 230
Erman Komurcu 0:4040347d719c 231 /**
Erman Komurcu 0:4040347d719c 232 * @brief PLL6 (0x0E)
Erman Komurcu 0:4040347d719c 233 *
Erman Komurcu 0:4040347d719c 234 */
Erman Komurcu 0:4040347d719c 235 typedef union {
Erman Komurcu 0:4040347d719c 236 unsigned char raw;
Erman Komurcu 0:4040347d719c 237 struct {
Erman Komurcu 0:4040347d719c 238 unsigned char deltaf : 7; /**< For FSK mode, MODMODE=1 and FSKSHAPE=0, sets the frequency deviation from
Erman Komurcu 0:4040347d719c 239 the space frequency for the mark frequency. fDELTA = DELTAF[6:0]*fXTAL/8192 */
Erman Komurcu 0:4040347d719c 240 unsigned char : 1;
Erman Komurcu 0:4040347d719c 241 } bits;
Erman Komurcu 0:4040347d719c 242 } max41460_reg_pll6_t;
Erman Komurcu 0:4040347d719c 243
Erman Komurcu 0:4040347d719c 244 /**
Erman Komurcu 0:4040347d719c 245 * @brief PLL7 (0x0F)
Erman Komurcu 0:4040347d719c 246 *
Erman Komurcu 0:4040347d719c 247 */
Erman Komurcu 0:4040347d719c 248 typedef union {
Erman Komurcu 0:4040347d719c 249 unsigned char raw;
Erman Komurcu 0:4040347d719c 250 struct {
Erman Komurcu 0:4040347d719c 251 unsigned char deltaf_shape : 4; /**< For FSK mode, MODMODE = 1 and FSKSHAPE = 1, sets the frequency deviation
Erman Komurcu 0:4040347d719c 252 from the space frequency for the mark frequency.
Erman Komurcu 0:4040347d719c 253 fDELTA = DELTAF_SHAPE[3:0] * fXTAL / 81920 */
Erman Komurcu 0:4040347d719c 254 unsigned char : 4;
Erman Komurcu 0:4040347d719c 255 } bits;
Erman Komurcu 0:4040347d719c 256 } max41460_reg_pll7_t;
Erman Komurcu 0:4040347d719c 257
Erman Komurcu 0:4040347d719c 258 /**
Erman Komurcu 0:4040347d719c 259 * @brief CFG7 (0x10)
Erman Komurcu 0:4040347d719c 260 *
Erman Komurcu 0:4040347d719c 261 */
Erman Komurcu 0:4040347d719c 262 typedef union {
Erman Komurcu 0:4040347d719c 263 unsigned char raw;
Erman Komurcu 0:4040347d719c 264 struct {
Erman Komurcu 0:4040347d719c 265 unsigned char fourwire2 : 1; /**< Four wire readback on CLKOUT pin mode. Aliased address for FOURWIRE1 */
Erman Komurcu 0:4040347d719c 266 unsigned char spi_txen2 : 1; /**< 0x00 Transmission disabled, 0x01 Transmission enabled */
Erman Komurcu 0:4040347d719c 267 unsigned char i2c_txen2 : 1;
Erman Komurcu 0:4040347d719c 268 unsigned char : 5;
Erman Komurcu 0:4040347d719c 269 } bits;
Erman Komurcu 0:4040347d719c 270 } max41460_reg_cfg7_t;
Erman Komurcu 0:4040347d719c 271
Erman Komurcu 0:4040347d719c 272 /**
Erman Komurcu 0:4040347d719c 273 * @brief I2C1 (0x11)
Erman Komurcu 0:4040347d719c 274 *
Erman Komurcu 0:4040347d719c 275 */
Erman Komurcu 0:4040347d719c 276 typedef union {
Erman Komurcu 0:4040347d719c 277 unsigned char raw;
Erman Komurcu 0:4040347d719c 278 struct {
Erman Komurcu 0:4040347d719c 279 unsigned char pktlen_14_to_8 : 7; /**< Packet Length */
Erman Komurcu 0:4040347d719c 280 unsigned char pktlen_mode : 1; /**< Packet Length Mode */
Erman Komurcu 0:4040347d719c 281 } bits;
Erman Komurcu 0:4040347d719c 282 } max41460_reg_i2c1_t;
Erman Komurcu 0:4040347d719c 283
Erman Komurcu 0:4040347d719c 284 /**
Erman Komurcu 0:4040347d719c 285 * @brief I2C2 (0x12)
Erman Komurcu 0:4040347d719c 286 *
Erman Komurcu 0:4040347d719c 287 */
Erman Komurcu 0:4040347d719c 288 typedef union {
Erman Komurcu 0:4040347d719c 289 unsigned char raw;
Erman Komurcu 0:4040347d719c 290 struct {
Erman Komurcu 0:4040347d719c 291 unsigned char pktlen_7_to_0 : 8; /**< Packet Length */
Erman Komurcu 0:4040347d719c 292 } bits;
Erman Komurcu 0:4040347d719c 293 } max41460_reg_i2c2_t;
Erman Komurcu 0:4040347d719c 294
Erman Komurcu 0:4040347d719c 295 /**
Erman Komurcu 0:4040347d719c 296 * @brief I2C3 (0x13)
Erman Komurcu 0:4040347d719c 297 *
Erman Komurcu 0:4040347d719c 298 */
Erman Komurcu 0:4040347d719c 299 typedef union {
Erman Komurcu 0:4040347d719c 300 unsigned char raw;
Erman Komurcu 0:4040347d719c 301 struct {
Erman Komurcu 0:4040347d719c 302 unsigned char i2c_tx_data : 8;
Erman Komurcu 0:4040347d719c 303 } bits;
Erman Komurcu 0:4040347d719c 304 } max41460_reg_i2c3_t;
Erman Komurcu 0:4040347d719c 305
Erman Komurcu 0:4040347d719c 306 /**
Erman Komurcu 0:4040347d719c 307 * @brief I2C4 (0x14)
Erman Komurcu 0:4040347d719c 308 *
Erman Komurcu 0:4040347d719c 309 */
Erman Komurcu 0:4040347d719c 310 typedef union {
Erman Komurcu 0:4040347d719c 311 unsigned char raw;
Erman Komurcu 0:4040347d719c 312 struct {
Erman Komurcu 0:4040347d719c 313 unsigned char tx_pktlen_14_to_8 : 7; /**< Provides status information of bits transmitted
Erman Komurcu 0:4040347d719c 314 for the current packet */
Erman Komurcu 0:4040347d719c 315 unsigned char pktcomplete : 1; /**< Indicates if Packet transmission is completed */
Erman Komurcu 0:4040347d719c 316 } bits;
Erman Komurcu 0:4040347d719c 317 } max41460_reg_i2c4_t;
Erman Komurcu 0:4040347d719c 318
Erman Komurcu 0:4040347d719c 319 /**
Erman Komurcu 0:4040347d719c 320 * @brief I2C5 (0x15)
Erman Komurcu 0:4040347d719c 321 *
Erman Komurcu 0:4040347d719c 322 */
Erman Komurcu 0:4040347d719c 323 typedef union {
Erman Komurcu 0:4040347d719c 324 unsigned char raw;
Erman Komurcu 0:4040347d719c 325 struct {
Erman Komurcu 0:4040347d719c 326 unsigned char tx_pktlen_7_to_0 : 8; /**< Provides status information of bits transmitted
Erman Komurcu 0:4040347d719c 327 for the current packet */
Erman Komurcu 0:4040347d719c 328 } bits;
Erman Komurcu 0:4040347d719c 329 } max41460_reg_i2c5_t;
Erman Komurcu 0:4040347d719c 330
Erman Komurcu 0:4040347d719c 331 /**
Erman Komurcu 0:4040347d719c 332 * @brief I2C6 (0x16)
Erman Komurcu 0:4040347d719c 333 *
Erman Komurcu 0:4040347d719c 334 */
Erman Komurcu 0:4040347d719c 335 typedef union {
Erman Komurcu 0:4040347d719c 336 unsigned char raw;
Erman Komurcu 0:4040347d719c 337 struct {
Erman Komurcu 0:4040347d719c 338 unsigned char fifo_words : 3; /**< This field captures the number of locations currently filled in FIFO.
Erman Komurcu 0:4040347d719c 339 Each location corresponds to 8-bit data word */
Erman Komurcu 0:4040347d719c 340 unsigned char : 1;
Erman Komurcu 0:4040347d719c 341 unsigned char fifo_full : 1; /**< FIFO Full Status */
Erman Komurcu 0:4040347d719c 342 unsigned char fifo_empty : 1; /**< FIFO Empty Status */
Erman Komurcu 0:4040347d719c 343 unsigned char oflow : 1; /**< FIFO Overflow status */
Erman Komurcu 0:4040347d719c 344 unsigned char uflow : 1; /**< FIFO Underflow status */
Erman Komurcu 0:4040347d719c 345 } bits;
Erman Komurcu 0:4040347d719c 346 } max41460_reg_i2c6_t;
Erman Komurcu 0:4040347d719c 347
Erman Komurcu 0:4040347d719c 348 /**
Erman Komurcu 0:4040347d719c 349 * @brief CFG8 (0x17)
Erman Komurcu 0:4040347d719c 350 *
Erman Komurcu 0:4040347d719c 351 */
Erman Komurcu 0:4040347d719c 352 typedef union {
Erman Komurcu 0:4040347d719c 353 unsigned char raw;
Erman Komurcu 0:4040347d719c 354 struct {
Erman Komurcu 0:4040347d719c 355 unsigned char softreset : 1; /**< Places DUT into software reset. */
Erman Komurcu 0:4040347d719c 356 unsigned char : 7;
Erman Komurcu 0:4040347d719c 357 } bits;
Erman Komurcu 0:4040347d719c 358 } max41460_reg_cfg8_t;
Erman Komurcu 0:4040347d719c 359
Erman Komurcu 0:4040347d719c 360 /**
Erman Komurcu 0:4040347d719c 361 * @brief CFG9 (0x18)
Erman Komurcu 0:4040347d719c 362 *
Erman Komurcu 0:4040347d719c 363 */
Erman Komurcu 0:4040347d719c 364 typedef union {
Erman Komurcu 0:4040347d719c 365 unsigned char raw;
Erman Komurcu 0:4040347d719c 366 struct {
Erman Komurcu 0:4040347d719c 367 unsigned char xoen : 1; /**< Write to 0 binary.XO Enable register for test purpose */
Erman Komurcu 0:4040347d719c 368 unsigned char pllen : 1; /**< Write to 0 binary.PLL Enable register for test purpose */
Erman Komurcu 0:4040347d719c 369 unsigned char paen : 1; /**< Write to 0 binary.PA Enable register for test purpose */
Erman Komurcu 0:4040347d719c 370 unsigned char test_ana : 5; /**< Write to 0_0000 binary.Test modes for analog block */
Erman Komurcu 0:4040347d719c 371 } bits;
Erman Komurcu 0:4040347d719c 372 } max41460_reg_cfg9_t;
Erman Komurcu 0:4040347d719c 373
Erman Komurcu 0:4040347d719c 374 /**
Erman Komurcu 0:4040347d719c 375 * @brief ADDL1 (0x19)
Erman Komurcu 0:4040347d719c 376 *
Erman Komurcu 0:4040347d719c 377 */
Erman Komurcu 0:4040347d719c 378 typedef union {
Erman Komurcu 0:4040347d719c 379 unsigned char raw;
Erman Komurcu 0:4040347d719c 380 struct {
Erman Komurcu 0:4040347d719c 381 unsigned char ring_bias : 2; /**< Write to 00 binary.Controls the current mirror ratio in Ring Oscillator
Erman Komurcu 0:4040347d719c 382 control. For lower frequencies, the number can be reduced
Erman Komurcu 0:4040347d719c 383 for slightly better phase noise. */
Erman Komurcu 0:4040347d719c 384 unsigned char ring_trim : 2; /**< Write to 00 binary. Adjusts the current control value
Erman Komurcu 0:4040347d719c 385 for ring oscillator. */
Erman Komurcu 0:4040347d719c 386 unsigned char bias_trim : 2; /**< Write to 00 binary. Adjusts bias current for PLL block. */
Erman Komurcu 0:4040347d719c 387 unsigned char xtal_gm : 2; /**< Write to 00 binary. Controls crystal oscillator GM current
Erman Komurcu 0:4040347d719c 388 for startup time control */
Erman Komurcu 0:4040347d719c 389 } bits;
Erman Komurcu 0:4040347d719c 390 } max41460_reg_addl1_t;
Erman Komurcu 0:4040347d719c 391
Erman Komurcu 0:4040347d719c 392 /**
Erman Komurcu 0:4040347d719c 393 * @brief ADDL2 (0x1A)
Erman Komurcu 0:4040347d719c 394 *
Erman Komurcu 0:4040347d719c 395 */
Erman Komurcu 0:4040347d719c 396 typedef union {
Erman Komurcu 0:4040347d719c 397 unsigned char raw;
Erman Komurcu 0:4040347d719c 398 struct {
Erman Komurcu 0:4040347d719c 399 unsigned char addlctrl2 : 7; /**< Write to 000_0000 binary. Additional control fields for future use */
Erman Komurcu 0:4040347d719c 400 unsigned char scl_stretch_dly : 1; /**< Write to 1 binary. I2C SCL Stretch Release delay enable */
Erman Komurcu 0:4040347d719c 401 } bits;
Erman Komurcu 0:4040347d719c 402 } max41460_reg_addl2_t;
Erman Komurcu 0:4040347d719c 403
Erman Komurcu 0:4040347d719c 404 /**
Erman Komurcu 0:4040347d719c 405 * @brief Register Set
Erman Komurcu 0:4040347d719c 406 *
Erman Komurcu 0:4040347d719c 407 */
Erman Komurcu 0:4040347d719c 408 typedef struct {
Erman Komurcu 0:4040347d719c 409 max41460_reg_cfg1_t reg_cfg1;
Erman Komurcu 0:4040347d719c 410 max41460_reg_cfg2_t reg_cfg2;
Erman Komurcu 0:4040347d719c 411 max41460_reg_cfg3_t reg_cfg3;
Erman Komurcu 0:4040347d719c 412 max41460_reg_cfg4_t reg_cfg4;
Erman Komurcu 0:4040347d719c 413 max41460_reg_cfg5_t reg_cfg5;
Erman Komurcu 0:4040347d719c 414 max41460_reg_shdn_t reg_shdn;
Erman Komurcu 0:4040347d719c 415 max41460_reg_pa1_t reg_pa1;
Erman Komurcu 0:4040347d719c 416 max41460_reg_pa2_t reg_pa2;
Erman Komurcu 0:4040347d719c 417 max41460_reg_pll1_t reg_pll1;
Erman Komurcu 0:4040347d719c 418 max41460_reg_pll2_t reg_pll2;
Erman Komurcu 0:4040347d719c 419 max41460_reg_cfg6_t reg_cfg6;
Erman Komurcu 0:4040347d719c 420 max41460_reg_pll3_t reg_pll3;
Erman Komurcu 0:4040347d719c 421 max41460_reg_pll4_t reg_pll4;
Erman Komurcu 0:4040347d719c 422 max41460_reg_pll5_t reg_pll5;
Erman Komurcu 0:4040347d719c 423 max41460_reg_pll6_t reg_pll6;
Erman Komurcu 0:4040347d719c 424 max41460_reg_pll7_t reg_pll7;
Erman Komurcu 0:4040347d719c 425 max41460_reg_cfg7_t reg_cfg7;
Erman Komurcu 0:4040347d719c 426 max41460_reg_i2c1_t reg_i2c1;
Erman Komurcu 0:4040347d719c 427 max41460_reg_i2c2_t reg_i2c2;
Erman Komurcu 0:4040347d719c 428 max41460_reg_i2c3_t reg_i2c3;
Erman Komurcu 0:4040347d719c 429 max41460_reg_i2c4_t reg_i2c4;
Erman Komurcu 0:4040347d719c 430 max41460_reg_i2c5_t reg_i2c5;
Erman Komurcu 0:4040347d719c 431 max41460_reg_i2c6_t reg_i2c6;
Erman Komurcu 0:4040347d719c 432 max41460_reg_cfg8_t reg_cfg8;
Erman Komurcu 0:4040347d719c 433 max41460_reg_cfg9_t reg_cfg9;
Erman Komurcu 0:4040347d719c 434 max41460_reg_addl1_t reg_addl1;
Erman Komurcu 0:4040347d719c 435 max41460_reg_addl2_t reg_addl2;
Erman Komurcu 0:4040347d719c 436 } max41460_reg_map_t;
Erman Komurcu 0:4040347d719c 437
Erman Komurcu 0:4040347d719c 438 #endif /* MAX41460_REGS_H_ */