max4146x_comp

Dependencies:   MAX14690

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Max41461_2_regs.h Source File

Max41461_2_regs.h

00001 /*******************************************************************************
00002 * Copyright (C) 2019 Maxim Integrated Products, Inc., All rights Reserved.
00003 *
00004 * This software is protected by copyright laws of the United States and
00005 * of foreign countries. This material may also be protected by patent laws
00006 * and technology transfer regulations of the United States and of foreign
00007 * countries. This software is furnished under a license agreement and/or a
00008 * nondisclosure agreement and may only be used or reproduced in accordance
00009 * with the terms of those agreements. Dissemination of this information to
00010 * any party or parties not specified in the license agreement and/or
00011 * nondisclosure agreement is expressly prohibited.
00012 *
00013 * The above copyright notice and this permission notice shall be included
00014 * in all copies or substantial portions of the Software.
00015 *
00016 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00017 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00018 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
00019 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
00020 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
00021 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
00022 * OTHER DEALINGS IN THE SOFTWARE.
00023 *
00024 * Except as contained in this notice, the name of Maxim Integrated
00025 * Products, Inc. shall not be used except as stated in the Maxim Integrated
00026 * Products, Inc. Branding Policy.
00027 *
00028 * The mere transfer of this software does not imply any licenses
00029 * of trade secrets, proprietary technology, copyrights, patents,
00030 * trademarks, maskwork rights, or any other form of intellectual
00031 * property whatsoever. Maxim Integrated Products, Inc. retains all
00032 * ownership rights.
00033 *******************************************************************************
00034 */
00035 
00036 #ifndef MAX41461_2_REGS_H_
00037 #define MAX41461_2_REGS_H_
00038 
00039 /**
00040  * @brief CFG1  (0X00)
00041  *
00042  */
00043 typedef union {
00044     unsigned char raw;
00045     struct {
00046         unsigned char modmode    : 1;    /**< Configures modulator mode */
00047         unsigned char sync       : 1;    /**< Controls if clock output acts as an input.
00048                                               When an input, it will sample the DATA pin. */
00049         unsigned char fskshape   : 1;    /**< Sets the state of FSK Gaussian Shaping */
00050         unsigned char            : 1;
00051         unsigned char xoclkdiv   : 2;    /**< XO clock division ratio for digital block */
00052         unsigned char xoclkdelay : 2;    /**< Start delay before enabling XO clock to digital block */
00053     } bits;
00054 } max41461_2_reg_cfg1_t;
00055 
00056 /**
00057  * @brief CFG2  (0X01)
00058  *
00059  */
00060 typedef union {
00061     unsigned char raw;
00062     struct {
00063         unsigned char bclk_postdiv : 3;    /**< Select the Baud Clock Post Division Ratio.
00064                                                 Valid values are from 1 to 5. */
00065         unsigned char              : 3;
00066         unsigned char clkout_delay : 2;    /**< Selects the delay when CLKOUT starts toggling upon
00067                                                 exiting SHUTDOWN mode, in divided XO clock cycles */
00068     } bits;
00069 } max41461_2_reg_cfg2_t;
00070 
00071 /**
00072  * @brief CFG3  (0X02)
00073  *
00074  */
00075 typedef union {
00076     unsigned char raw;
00077     struct {
00078         unsigned char bclk_prediv : 8;    /**< Baud clock predivision ratio. Valid values are from 3 to 255 */
00079     } bits;
00080 } max41461_2_reg_cfg3_t;
00081 
00082 /**
00083  * @brief CFG4  (0X03)
00084  *
00085  */
00086 typedef union {
00087     unsigned char raw;
00088     struct {
00089         unsigned char pwdn_mode : 2;    /**< Power Down Mode Select */
00090         unsigned char           : 6;
00091     } bits;
00092 } max41461_2_reg_cfg4_t;
00093 
00094 /**
00095  * @brief CFG5  (0X04)
00096  *
00097  */
00098 typedef union {
00099     unsigned char raw;
00100     struct {
00101         unsigned char tstep : 6;    /**< Controls GFSK shaping. See Digital FSK Modulation section. */
00102         unsigned char       : 2;
00103     } bits;
00104 } max41461_2_reg_cfg5_t;
00105 
00106 /**
00107  * @brief SHDN  (0X05)
00108  *
00109  */
00110 typedef union {
00111     unsigned char raw;
00112     struct {
00113         unsigned char pa_boost        : 1;    /**< Enables a boost in PA output power for frequencies above 850MHz.
00114                                                    This requires a different PA match compared to normal operation. */
00115         unsigned char                 : 7;
00116     } bits;
00117 } max41461_2_reg_shdn_t;
00118 
00119 /**
00120  * @brief PA1  (0X06)
00121  *
00122  */
00123 typedef union {
00124     unsigned char raw;
00125     struct {
00126         unsigned char papwr  : 3;    /**< Controls the PA output power by enabling parallel drivers. */
00127         unsigned char        : 5;
00128     } bits;
00129 } max41461_2_reg_pa1_t;
00130 
00131 /**
00132  * @brief PA2  (0X07)
00133  *
00134  */
00135 typedef union {
00136     unsigned char raw;
00137     struct {
00138         unsigned char pacap     : 5;    /**< Controls shunt capacitance on PA output in fF. */
00139         unsigned char           : 3;
00140     } bits;
00141 } max41461_2_reg_pa2_t;
00142 
00143 /**
00144  * @brief PLL1  (0X08)
00145  *
00146  */
00147 typedef union {
00148     unsigned char raw;
00149     struct {
00150         unsigned char lomode      : 1;    /**< Sets LO generation. For lower power, choose LOWCURRENT.
00151                                                For higher performance, choose LOWNOISE. */
00152         unsigned char lodiv       : 2;    /**< LC VCO divider value*/
00153         unsigned char loopbw      : 2;    /**< Write to 00 binary.Sets PLL loop bandwidth. */
00154         unsigned char fracmode    : 1;    /**< Sets PLL between fractional-N and integer-N mode. */
00155         unsigned char cplin       : 2;    /**< Sets the level of charge pump offset current for fractional N mode to
00156                                                improve close in phase noise. Set to DISABLED for integer N mode. */
00157     } bits;
00158 } max41461_2_reg_pll1_t;
00159 
00160 /**
00161  * @brief PLL2  (0X09)
00162  *
00163  */
00164 typedef union {
00165     unsigned char raw;
00166     struct {
00167         unsigned char cpval            : 2;    /**< Sets Charge Pump Current */
00168         unsigned char                  : 4;
00169         unsigned char lcvco_fast_start : 1;    /**< Write to 0 binary.Enables fast start of LC VCO
00170                                                     because of bias filtering */
00171         unsigned char lcvco_pwr        : 1;    /**< Write to 0 binary.Controls power in LC VCO */
00172     } bits;
00173 } max41461_2_reg_pll2_t;
00174 
00175 /**
00176  * @brief CFG6  (0X0A)
00177  *
00178  */
00179 typedef union {
00180     unsigned char raw;
00181     struct {
00182         unsigned char fourwire1 : 1;    /**<  */
00183         unsigned char spi_txen1 : 1;    /**<  */
00184         unsigned char i2c_txen1 : 1;    /**< Enables DATA transmission in I2C mode. Aliased address for I2C_TXEN1 */
00185         unsigned char           : 5;
00186     } bits;
00187 } max41461_2_reg_cfg6_t;
00188 
00189 /**
00190  * @brief PLL3  (0X0B)
00191  *
00192  */
00193 typedef union {
00194     unsigned char raw;
00195     struct {
00196         unsigned char freq_23_to_16 : 8;    /**< FREQ value to PLL. LO frequency= FREQ<23:0>/2^16*fXTAL */
00197     } bits;
00198 } max41461_2_reg_pll3_t;
00199 
00200 /**
00201  * @brief PLL4  (0X0C)
00202  *
00203  */
00204 typedef union {
00205     unsigned char raw;
00206     struct {
00207         unsigned char freq_15_to_8 : 8;    /**< FREQ value to PLL */
00208     } bits;
00209 } max41461_2_reg_pll4_t;
00210 
00211 /**
00212  * @brief PLL5  (0X0D)
00213  *
00214  */
00215 typedef union {
00216     unsigned char raw;
00217     struct {
00218         unsigned char freq_7_to_0 : 8;    /**< FREQ value to PLL */
00219     } bits;
00220 } max41461_2_reg_pll5_t;
00221 
00222 /**
00223  * @brief PLL6  (0X0E)
00224  *
00225  */
00226 typedef union {
00227     unsigned char raw;
00228     struct {
00229         unsigned char deltaf : 7;    /**< For FSK mode, MODMODE=1 and FSKSHAPE=0, sets the frequency deviation from the
00230                                           space frequency for the mark frequency. fDELTA = DELTAF[6:0]*fXTAL/8192 */
00231         unsigned char        : 1;
00232     } bits;
00233 } max41461_2_reg_pll6_t;
00234 
00235 /**
00236  * @brief PLL7  (0X0F)
00237  *
00238  */
00239 typedef union {
00240     unsigned char raw;
00241     struct {
00242         unsigned char deltaf_shape : 4;    /**< For FSK mode, MODMODE = 1 and FSKSHAPE = 1, sets the frequency deviation
00243                                                 from the space frequency for the mark frequency.
00244                                                 fDELTA = DELTAF_SHAPE[3:0]*fXTAL/81920 */
00245         unsigned char              : 4;
00246     } bits;
00247 } max41461_2_reg_pll7_t;
00248 
00249 /**
00250  * @brief CFG7  (0X10)
00251  *
00252  */
00253 typedef union {
00254     unsigned char raw;
00255     struct {
00256         unsigned char fourwire2 : 1;    /**<  */
00257         unsigned char spi_txen2 : 1;    /**<  */
00258         unsigned char i2c_txen2 : 1;    /**< When set, enables DATA transmission in I2C mode.
00259                                              Aliased address for I2C_TXEN1 */
00260         unsigned char           : 5;
00261     } bits;
00262 } max41461_2_reg_cfg7_t;
00263 
00264 /**
00265  * @brief I2C1  (0X11)
00266  *
00267  */
00268 typedef union {
00269     unsigned char raw;
00270     struct {
00271         unsigned char pktlen_14_to_8 : 7;    /**< Packet Length */
00272         unsigned char pktlen_mode    : 1;    /**< Packet Length Mode */
00273     } bits;
00274 } max41461_2_reg_i2c1_t;
00275 
00276 /**
00277  * @brief I2C2  (0X012)
00278  *
00279  */
00280 typedef union {
00281     unsigned char raw;
00282     struct {
00283         unsigned char pktlen_7_to_0 : 8;    /**< Packet Length */
00284     } bits;
00285 } max41461_2_reg_i2c2_t;
00286 
00287 /**
00288  * @brief I2C3  (0X13)
00289  *
00290  */
00291 typedef union {
00292     unsigned char raw;
00293     struct {
00294         unsigned char i2c_tx_data : 8;    /**< Transmit data to be written into FIFO for I2C mode of operation.
00295                                                At this address, I2C register address will not auto increment within an
00296                                                I2C transaction burst, and subsequent writes will keep going to FIFO */
00297     } bits;
00298 } max41461_2_reg_i2c3_t;
00299 
00300 /**
00301  * @brief I2C4  (0X14)
00302  *
00303  */
00304 typedef union {
00305     unsigned char raw;
00306     struct {
00307         unsigned char tx_pktlen_14_to_8 : 7;    /**< Provides status information of bits
00308                                                      transmitted for the current packet */
00309         unsigned char pktcomplete       : 1;    /**< Indicates if Packet transmission is completed */
00310     } bits;
00311 } max41461_2_reg_i2c4_t;
00312 
00313 /**
00314  * @brief I2C5  (0X15)
00315  *
00316  */
00317 typedef union {
00318     unsigned char raw;
00319     struct {
00320         unsigned char tx_pktlen_7_to_0 : 8;    /**< Provides status information of bits
00321                                                     transmitted for the current packet */
00322     } bits;
00323 } max41461_2_reg_i2c5_t;
00324 
00325 /**
00326  * @brief I2C6  (0X16)
00327  *
00328  */
00329 typedef union {
00330     unsigned char raw;
00331     struct {
00332         unsigned char fifo_words : 3;    /**< This field captures the number of locations currently filled in FIFO.
00333                                               Each location corresponds to 8-bit data word */
00334         unsigned char            : 1;
00335         unsigned char fifo_full  : 1;    /**< FIFO Full Status */
00336         unsigned char fifo_empty : 1;    /**< FIFO Empty Status */
00337         unsigned char oflow      : 1;    /**< FIFO Overflow status */
00338         unsigned char uflow      : 1;    /**< FIFO Underflow status */
00339     } bits;
00340 } max41461_2_reg_i2c6_t;
00341 
00342 /**
00343  * @brief CFG8  (0X17)
00344  *
00345  */
00346 typedef union {
00347     unsigned char raw;
00348     struct {
00349         unsigned char softreset : 1;    /**< Places DUT into software reset. */
00350         unsigned char           : 7;
00351     } bits;
00352 } max41461_2_reg_cfg8_t;
00353 
00354 /**
00355  * @brief CFG9  (0X18)
00356  *
00357  */
00358 typedef union {
00359     unsigned char raw;
00360     struct {
00361         unsigned char xoen     : 1;    /**< Write to 0 binary.XO Enable register for test purpose */
00362         unsigned char pllen    : 1;    /**< Write to 0 binary.PLL Enable register for test purpose */
00363         unsigned char paen     : 1;    /**< Write to 0 binary.PA Enable register for test purpose */
00364         unsigned char test_ana : 5;    /**< Write to 0_0000 binary.Test modes for analog block */
00365     } bits;
00366 } max41461_2_reg_cfg9_t;
00367 
00368 /**
00369  * @brief ADDL1  (0X19)
00370  *
00371  */
00372 typedef union {
00373     unsigned char raw;
00374     struct {
00375         unsigned char ring_bias : 2;    /**< Write to 00 binary.Controls the current mirror ratio in Ring Oscillator
00376                                              control. For lower frequencies, the number can be reduced for
00377                                              slightly better phase noise. */
00378         unsigned char ring_trim : 2;    /**< Write to 00 binary.
00379                                              Adjusts the current control value for ring oscillator. */
00380         unsigned char bias_trim : 2;    /**< Write to 00 binary.
00381                                              Adjusts bias current for PLL block. */
00382         unsigned char xtal_gm   : 2;    /**< Write to 00 binary.
00383                                              Controls crystal oscillator GM current for startup time control */
00384     } bits;
00385 } max41461_2_reg_addl1_t;
00386 
00387 /**
00388  * @brief ADDL2  (0X1A)
00389  *
00390  */
00391 typedef union {
00392     unsigned char raw;
00393     struct {
00394         unsigned char addlctrl2       : 7;    /**< Write to 000_0000 binary.Additional control fields for future use */
00395         unsigned char scl_stretch_dly : 1;    /**< Write to 1 binary. I2C SCL Stretch Release delay enable */
00396     } bits;
00397 } max41461_2_reg_addl2_t;
00398 
00399 /**
00400  * @brief Register Set
00401  *
00402  */
00403 typedef struct {
00404     max41461_2_reg_cfg1_t reg_cfg1;
00405     max41461_2_reg_cfg2_t reg_cfg2;
00406     max41461_2_reg_cfg3_t reg_cfg3;
00407     max41461_2_reg_cfg4_t reg_cfg4;
00408     max41461_2_reg_cfg5_t reg_cfg5;
00409     max41461_2_reg_shdn_t reg_shdn;
00410     max41461_2_reg_pa1_t reg_pa1;
00411     max41461_2_reg_pa2_t reg_pa2;
00412     max41461_2_reg_pll1_t reg_pll1;
00413     max41461_2_reg_pll2_t reg_pll2;
00414     max41461_2_reg_cfg6_t reg_cfg6;
00415     max41461_2_reg_pll3_t reg_pll3;
00416     max41461_2_reg_pll4_t reg_pll4;
00417     max41461_2_reg_pll5_t reg_pll5;
00418     max41461_2_reg_pll6_t reg_pll6;
00419     max41461_2_reg_pll7_t reg_pll7;
00420     max41461_2_reg_cfg7_t reg_cfg7;
00421     max41461_2_reg_i2c1_t reg_i2c1;
00422     max41461_2_reg_i2c2_t reg_i2c2;
00423     max41461_2_reg_i2c3_t reg_i2c3;
00424     max41461_2_reg_i2c4_t reg_i2c4;
00425     max41461_2_reg_i2c5_t reg_i2c5;
00426     max41461_2_reg_i2c6_t reg_i2c6;
00427     max41461_2_reg_cfg8_t reg_cfg8;
00428     max41461_2_reg_cfg9_t reg_cfg9;
00429     max41461_2_reg_addl1_t reg_addl1;
00430     max41461_2_reg_addl2_t reg_addl2;
00431 } max41461_2_reg_map_t;
00432 
00433 
00434 #endif /* MAX41461_2_REGS_H_ */