MBED driver for Max1471.

MAX1471_regs.h

Committer:
Abdullah.Turan@IST-LT-37344.maxim-ic.internal
Date:
2019-10-04
Revision:
0:99e9397112f0

File content as of revision 0:99e9397112f0:

/*
 * Max1471_regs.h
 *
 *  Created on: Dec 17, 2018
 *      Author: Erman.Komurcu
 */

#ifndef MAX1471_MAX1471_REGS_H_
#define MAX1471_MAX1471_REGS_H_

/**
 * @brief PWR_CFG  (0x00)
 *
 * @description	Power Configuration Register
 */
typedef union {
    unsigned char raw;
    struct {
    	unsigned char sleep		: 1;    /**< Sleep mode */
    	unsigned char askpd_en 	: 1;    /**< ASK peak detector enable */
    	unsigned char askbb_en 	: 1;    /**< ASK baseband enabled */
    	unsigned char fskpd_en  : 1;    /**< FSK peak detector enable */
    	unsigned char fskbb_en  : 1;	/**< FSK baseband enable */
    	unsigned char mixer_en  : 1;    /**< Mixer enable */
    	unsigned char agc_en    : 1;    /**< AGC enable */
        unsigned char lna_en	: 1;    /**< LNA enable */
    } bits;
} max1471_reg_pwr_cfg_t;

/**
 * @brief CFG  (0x01)
 *
 * @description	 Configuration Register
 */
typedef union {
    unsigned char raw;
    struct {
    	unsigned char drx_mode	: 1;    /**< Receive mode */
    	unsigned char toff_ps0 	: 1;    /**< Off-timer prescale */
    	unsigned char toff_ps1 	: 1;    /**< Off-timer prescale */
    	unsigned char dout_ask  : 1;    /**< ASKOUT enable */
    	unsigned char dout_fsk  : 1;	/**< FSKOUT enable */
    	unsigned char fskcallsb : 1;    /**< FSK accurate calibration */
    	unsigned char gainset   : 1;    /**< Gain set */
        unsigned char 			: 1;    /**< Don"t care */
    } bits;
} max1471_reg_cfg_t;

/**
 * @brief CTRL  (0x02)
 *
 * @description	 Control Register
 */
typedef union {
    unsigned char raw;
    struct {
    	unsigned char fsk_cal_en: 1;    /**< FSK calibration enable */
    	unsigned char pol_cal_en: 1;    /**< Polling timer calibration enable */
    	unsigned char asktrk_en	: 1;    /**< ASK peak detector track enable */
    	unsigned char fsktrk_en : 1;    /**< FSK peak detector track enable */
    	unsigned char			: 1;	/**< Don't care */
    	unsigned char agclock 	: 1;    /**< AGC lock */
        unsigned char 			: 1;    /**< Don"t care */
    } bits;
} max1471_reg_ctrl_t;

/**
 * @brief STAT  (0x09)
 *
 * @description	 Status Register
 */
typedef union {
    unsigned char raw;
    struct {
    	unsigned char fsk_cal_done	: 1;    /**< FSK calibration done */
    	unsigned char pol_cal_done	: 1;    /**< Polling timer calibration done */
    	unsigned char				: 3;    /**< Don't care */
    	unsigned char clkalive		: 1;    /**< Clock/crystal alive */
    	unsigned char agcst			: 1;	/**< AGC state */
    	unsigned char lockdet 		: 1;    /**< Lock detect */
    } bits;
} max1471_reg_stat_t;
/**
 * @brief Register Set
 *
 */
typedef struct {
	max1471_reg_pwr_cfg_t	reg_pwr_cfg;
	max1471_reg_cfg_t		reg_cfg;
	max1471_reg_ctrl_t		reg_ctrl;
	max1471_reg_stat_t		reg_stat;
} max1471_reg_map_t;

#endif /* MAX1471_MAX1471_REGS_H_ */