ISM RF transmitter library for MAX4146X family devices
Library for MAX41460, MAX41461, MAX41462, MAX41463, MAX41464 RF Transmitter ICs.
Max41463_4_regs.h@0:4040347d719c, 2019-05-02 (annotated)
- 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?
User | Revision | Line number | New 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_ */ |