Header file for admv1014 Driver.
More...
#include <stdint.h>
#include <stdbool.h>
#include "no_os_spi.h"
#include "no_os_util.h"
|
| #define | ADMV1014_REG_SPI_CONTROL 0x00 |
| |
| #define | ADMV1014_REG_ALARM 0x01 |
| |
| #define | ADMV1014_REG_ALARM_MASKS 0x02 |
| |
| #define | ADMV1014_REG_ENABLE 0x03 |
| |
| #define | ADMV1014_REG_QUAD 0x04 |
| |
| #define | ADMV1014_REG_LO_AMP_PHASE_ADJUST1 0x05 |
| |
| #define | ADMV1014_REG_MIXER 0x07 |
| |
| #define | ADMV1014_REG_IF_AMP 0x08 |
| |
| #define | ADMV1014_REG_IF_AMP_BB_AMP 0x09 |
| |
| #define | ADMV1014_REG_BB_AMP_AGC 0x0A |
| |
| #define | ADMV1014_REG_VVA_TEMP_COMP 0x0B |
| |
| #define | ADMV1014_PARITY_EN_MSK NO_OS_BIT(15) |
| |
| #define | ADMV1014_SPI_SOFT_RESET_MSK NO_OS_BIT(14) |
| |
| #define | ADMV1014_CHIP_ID_MSK NO_OS_GENMASK(11, 4) |
| |
| #define | ADMV1014_CHIP_ID 0x9 |
| |
| #define | ADMV1014_REVISION_ID_MSK NO_OS_GENMASK(3, 0) |
| |
| #define | ADMV1014_PARITY_ERROR_MSK NO_OS_BIT(15) |
| |
| #define | ADMV1014_TOO_FEW_ERRORS_MSK NO_OS_BIT(14) |
| |
| #define | ADMV1014_TOO_MANY_ERRORS_MSK NO_OS_BIT(13) |
| |
| #define | ADMV1014_ADDRESS_RANGE_ERROR_MSK NO_OS_BIT(12) |
| |
| #define | ADMV1014_IBIAS_PD_MSK NO_OS_BIT(14) |
| |
| #define | ADMV1014_P1DB_COMPENSATION_MSK NO_OS_GENMASK(13, 12) |
| |
| #define | ADMV1014_IF_AMP_PD_MSK NO_OS_BIT(11) |
| |
| #define | ADMV1014_QUAD_BG_PD_MSK NO_OS_BIT(9) |
| |
| #define | ADMV1014_BB_AMP_PD_MSK NO_OS_BIT(8) |
| |
| #define | ADMV1014_QUAD_IBIAS_PD_MSK NO_OS_BIT(7) |
| |
| #define | ADMV1014_DET_EN_MSK NO_OS_BIT(6) |
| |
| #define | ADMV1014_BG_PD_MSK NO_OS_BIT(5) |
| |
| #define | ADMV1014_QUAD_SE_MODE_MSK NO_OS_GENMASK(9, 6) |
| |
| #define | ADMV1014_QUAD_FILTERS_MSK NO_OS_GENMASK(3, 0) |
| |
| #define | ADMV1014_LOAMP_PH_ADJ_I_FINE_MSK NO_OS_GENMASK(15, 9) |
| |
| #define | ADMV1014_LOAMP_PH_ADJ_Q_FINE_MSK NO_OS_GENMASK(8, 2) |
| |
| #define | ADMV1014_MIXER_VGATE_MSK NO_OS_GENMASK(15, 9) |
| |
| #define | ADMV1014_DET_PROG_MSK NO_OS_GENMASK(6, 0) |
| |
| #define | ADMV1014_IF_AMP_COARSE_GAIN_I_MSK NO_OS_GENMASK(11, 8) |
| |
| #define | ADMV1014_IF_AMP_FINE_GAIN_Q_MSK NO_OS_GENMASK(7, 4) |
| |
| #define | ADMV1014_IF_AMP_FINE_GAIN_I_MSK NO_OS_GENMASK(3, 0) |
| |
| #define | ADMV1014_IF_AMP_COARSE_GAIN_Q_MSK NO_OS_GENMASK(15, 12) |
| |
| #define | ADMV1014_BB_AMP_OFFSET_Q_MSK NO_OS_GENMASK(9, 5) |
| |
| #define | ADMV1014_BB_AMP_OFFSET_I_MSK NO_OS_GENMASK(4, 0) |
| |
| #define | ADMV1014_BB_AMP_REF_GEN_MSK NO_OS_GENMASK(6, 3) |
| |
| #define | ADMV1014_BB_AMP_GAIN_CTRL_MSK NO_OS_GENMASK(2, 1) |
| |
| #define | ADMV1014_BB_SWITCH_HIGH_LOW_CM_MSK NO_OS_BIT(0) |
| |
| #define | ADMV1014_VVA_TEMP_COMP_MSK NO_OS_GENMASK(15, 0) |
| |
| #define | ADMV1014_READ NO_OS_BIT(7) |
| |
| #define | ADMV1014_REG_ADDR_READ_MSK NO_OS_GENMASK(6, 1) |
| |
| #define | ADMV1014_REG_ADDR_WRITE_MSK NO_OS_GENMASK(22, 17) |
| |
| #define | ADMV1014_REG_DATA_MSK NO_OS_GENMASK(16, 1) |
| |
| #define | ADMV1014_NUM_REGULATORS 9 |
| |
| #define | ADMV1014_BUFF_SIZE_BYTES 3 |
| |
| #define | ADMV1014_SPI_READ_CMD NO_OS_BIT(7) |
| |
| #define | ADMV1014_SPI_WRITE_CMD (0 << 7) |
| |
|
| enum | admv1014_input_mode {
ADMV1014_IQ_MODE
,
ADMV1014_IF_MODE
} |
| | Switch Intermediate Frequency or I/Q Mode. More...
|
| |
| enum | admv1014_quad_se_mode {
ADMV1014_SE_MODE_POS = 6
,
ADMV1014_SE_MODE_NEG = 9
,
ADMV1014_SE_MODE_DIFF = 12
} |
| | Switch Differential/Single-Ended Modes. More...
|
| |
| enum | admv1014_quad_filters {
ADMV1014_LO_BAND_8_62_TO_10_25_GHZ = 0
,
ADMV1014_LO_BAND_6_6_TO_9_2_GHZ = 5
,
ADMV1014_LO_BAND_5_4_TO_8_GHZ = 10
,
ADMV1014_LO_BAND_5_4_TO_7_GHZ = 15
} |
| | LO Filters BW Selection. More...
|
| |
| enum | admv1014_det_prog {
ADMV1014_DET_PROG_NEG_12_DBM_TO_POS_4DBM = 0
,
ADMV1014_DET_PROG_NEG_13_DBM_TO_POS_3DBM = 1
,
ADMV1014_DET_PROG_NEG_14_DBM_TO_POS_2DBM = 2
,
ADMV1014_DET_PROG_NEG_15_DBM_TO_POS_1DBM = 4
,
ADMV1014_DET_PROG_NEG_15_5_DBM_TO_POS_0_5_DBM = 8
,
ADMV1014_DET_PROG_NEG_16_25_DBM_TO_NEG_0_25_DBM = 16
,
ADMV1014_DET_PROG_NEG_17_DBM_TO_NEG_1DBM = 32
,
ADMV1014_DET_PROG_NEG_18_DBM_TO_NEG_2DBM = 64
} |
| | Digital Rx Detector Program. More...
|
| |
|
| int | admv1014_spi_write (struct admv1014_dev *dev, uint8_t reg_addr, uint16_t data) |
| | Writes data to ADMV1014 over SPI.
|
| |
| int | admv1014_spi_update_bits (struct admv1014_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t data) |
| | Update ADMV1014 register.
|
| |
| int | admv1014_spi_read (struct admv1014_dev *dev, uint8_t reg_addr, uint16_t *data) |
| | Reads data from ADMV1014 over SPI.
|
| |
| int | admv1014_set_det_prog (struct admv1014_dev *dev, enum admv1014_det_prog det_prog) |
| | Set Digital Rx Detector.
|
| |
| int | admv1014_get_det_prog (struct admv1014_dev *dev, enum admv1014_det_prog *det_prog) |
| | Get Digital Rx Detector.
|
| |
| int | admv1014_set_bb_amp_gain (struct admv1014_dev *dev, uint8_t gain) |
| | Set Baseband Amp Gain.
|
| |
| int | admv1014_get_bb_amp_gain (struct admv1014_dev *dev, uint8_t *gain) |
| | Get Baseband Amp Gain.
|
| |
| int | admv1014_set_phase (struct admv1014_dev *dev, uint8_t i_phase, uint8_t q_phase) |
| | Set LO Amp Phase.
|
| |
| int | admv1014_get_phase (struct admv1014_dev *dev, uint8_t *i_phase, uint8_t *q_phase) |
| | Get LO Amp Phase.
|
| |
| int | admv1014_set_if_amp_gain (struct admv1014_dev *dev, uint8_t i_coarse_gain, uint8_t q_coarse_gain, uint8_t i_fine_gain, uint8_t q_fine_gain) |
| | Set IF Amp Gain.
|
| |
| int | admv1014_get_if_amp_gain (struct admv1014_dev *dev, uint8_t *i_coarse_gain, uint8_t *q_coarse_gain, uint8_t *i_fine_gain, uint8_t *q_fine_gain) |
| | Get IF Amp Gain.
|
| |
| int | admv1014_init (struct admv1014_dev **device, struct admv1014_init_param *init_param) |
| | Initializes the admv1014.
|
| |
| int | admv1014_remove (struct admv1014_dev *dev) |
| | ADMV1014 Resources Deallocation.
|
| |
Header file for admv1014 Driver.
- Author
- Antoniu Miclaus (anton.nosp@m.iu.m.nosp@m.iclau.nosp@m.s@an.nosp@m.alog..nosp@m.com)
Copyright 2022(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
◆ ADMV1014_ADDRESS_RANGE_ERROR_MSK
| #define ADMV1014_ADDRESS_RANGE_ERROR_MSK NO_OS_BIT(12) |
◆ ADMV1014_BB_AMP_GAIN_CTRL_MSK
◆ ADMV1014_BB_AMP_OFFSET_I_MSK
◆ ADMV1014_BB_AMP_OFFSET_Q_MSK
◆ ADMV1014_BB_AMP_PD_MSK
◆ ADMV1014_BB_AMP_REF_GEN_MSK
◆ ADMV1014_BB_SWITCH_HIGH_LOW_CM_MSK
| #define ADMV1014_BB_SWITCH_HIGH_LOW_CM_MSK NO_OS_BIT(0) |
◆ ADMV1014_BG_PD_MSK
◆ ADMV1014_BUFF_SIZE_BYTES
| #define ADMV1014_BUFF_SIZE_BYTES 3 |
◆ ADMV1014_CHIP_ID
| #define ADMV1014_CHIP_ID 0x9 |
◆ ADMV1014_CHIP_ID_MSK
◆ ADMV1014_DET_EN_MSK
◆ ADMV1014_DET_PROG_MSK
◆ ADMV1014_IBIAS_PD_MSK
◆ ADMV1014_IF_AMP_COARSE_GAIN_I_MSK
◆ ADMV1014_IF_AMP_COARSE_GAIN_Q_MSK
◆ ADMV1014_IF_AMP_FINE_GAIN_I_MSK
◆ ADMV1014_IF_AMP_FINE_GAIN_Q_MSK
◆ ADMV1014_IF_AMP_PD_MSK
◆ ADMV1014_LOAMP_PH_ADJ_I_FINE_MSK
◆ ADMV1014_LOAMP_PH_ADJ_Q_FINE_MSK
◆ ADMV1014_MIXER_VGATE_MSK
◆ ADMV1014_NUM_REGULATORS
| #define ADMV1014_NUM_REGULATORS 9 |
◆ ADMV1014_P1DB_COMPENSATION_MSK
◆ ADMV1014_PARITY_EN_MSK
◆ ADMV1014_PARITY_ERROR_MSK
| #define ADMV1014_PARITY_ERROR_MSK NO_OS_BIT(15) |
◆ ADMV1014_QUAD_BG_PD_MSK
◆ ADMV1014_QUAD_FILTERS_MSK
◆ ADMV1014_QUAD_IBIAS_PD_MSK
| #define ADMV1014_QUAD_IBIAS_PD_MSK NO_OS_BIT(7) |
◆ ADMV1014_QUAD_SE_MODE_MSK
◆ ADMV1014_READ
◆ ADMV1014_REG_ADDR_READ_MSK
◆ ADMV1014_REG_ADDR_WRITE_MSK
◆ ADMV1014_REG_ALARM
| #define ADMV1014_REG_ALARM 0x01 |
◆ ADMV1014_REG_ALARM_MASKS
| #define ADMV1014_REG_ALARM_MASKS 0x02 |
◆ ADMV1014_REG_BB_AMP_AGC
| #define ADMV1014_REG_BB_AMP_AGC 0x0A |
◆ ADMV1014_REG_DATA_MSK
◆ ADMV1014_REG_ENABLE
| #define ADMV1014_REG_ENABLE 0x03 |
◆ ADMV1014_REG_IF_AMP
| #define ADMV1014_REG_IF_AMP 0x08 |
◆ ADMV1014_REG_IF_AMP_BB_AMP
| #define ADMV1014_REG_IF_AMP_BB_AMP 0x09 |
◆ ADMV1014_REG_LO_AMP_PHASE_ADJUST1
| #define ADMV1014_REG_LO_AMP_PHASE_ADJUST1 0x05 |
◆ ADMV1014_REG_MIXER
| #define ADMV1014_REG_MIXER 0x07 |
◆ ADMV1014_REG_QUAD
| #define ADMV1014_REG_QUAD 0x04 |
◆ ADMV1014_REG_SPI_CONTROL
| #define ADMV1014_REG_SPI_CONTROL 0x00 |
◆ ADMV1014_REG_VVA_TEMP_COMP
| #define ADMV1014_REG_VVA_TEMP_COMP 0x0B |
◆ ADMV1014_REVISION_ID_MSK
◆ ADMV1014_SPI_READ_CMD
◆ ADMV1014_SPI_SOFT_RESET_MSK
| #define ADMV1014_SPI_SOFT_RESET_MSK NO_OS_BIT(14) |
◆ ADMV1014_SPI_WRITE_CMD
| #define ADMV1014_SPI_WRITE_CMD (0 << 7) |
◆ ADMV1014_TOO_FEW_ERRORS_MSK
| #define ADMV1014_TOO_FEW_ERRORS_MSK NO_OS_BIT(14) |
◆ ADMV1014_TOO_MANY_ERRORS_MSK
| #define ADMV1014_TOO_MANY_ERRORS_MSK NO_OS_BIT(13) |
◆ ADMV1014_VVA_TEMP_COMP_MSK
◆ admv1014_det_prog
Digital Rx Detector Program.
| Enumerator |
|---|
| ADMV1014_DET_PROG_NEG_12_DBM_TO_POS_4DBM | |
| ADMV1014_DET_PROG_NEG_13_DBM_TO_POS_3DBM | |
| ADMV1014_DET_PROG_NEG_14_DBM_TO_POS_2DBM | |
| ADMV1014_DET_PROG_NEG_15_DBM_TO_POS_1DBM | |
| ADMV1014_DET_PROG_NEG_15_5_DBM_TO_POS_0_5_DBM | |
| ADMV1014_DET_PROG_NEG_16_25_DBM_TO_NEG_0_25_DBM | |
| ADMV1014_DET_PROG_NEG_17_DBM_TO_NEG_1DBM | |
| ADMV1014_DET_PROG_NEG_18_DBM_TO_NEG_2DBM | |
◆ admv1014_input_mode
Switch Intermediate Frequency or I/Q Mode.
| Enumerator |
|---|
| ADMV1014_IQ_MODE | |
| ADMV1014_IF_MODE | |
◆ admv1014_quad_filters
LO Filters BW Selection.
| Enumerator |
|---|
| ADMV1014_LO_BAND_8_62_TO_10_25_GHZ | |
| ADMV1014_LO_BAND_6_6_TO_9_2_GHZ | |
| ADMV1014_LO_BAND_5_4_TO_8_GHZ | |
| ADMV1014_LO_BAND_5_4_TO_7_GHZ | |
◆ admv1014_quad_se_mode
Switch Differential/Single-Ended Modes.
| Enumerator |
|---|
| ADMV1014_SE_MODE_POS | |
| ADMV1014_SE_MODE_NEG | |
| ADMV1014_SE_MODE_DIFF | |
◆ admv1014_get_bb_amp_gain()
| int admv1014_get_bb_amp_gain |
( |
struct admv1014_dev * | dev, |
|
|
uint8_t * | gain ) |
Get Baseband Amp Gain.
Get Baseband Amp Gain
- Parameters
-
| dev | - The device structure. |
| gain | - Digital Rx Detector gain. |
- Returns
- Returns 0 in case of success or negative error code.
◆ admv1014_get_det_prog()
Get Digital Rx Detector.
Get Digital Rx Detector
- Parameters
-
| dev | - The device structure. |
| det_prog | - Digital Rx Detector gain. |
- Returns
- Returns 0 in case of success or negative error code.
◆ admv1014_get_if_amp_gain()
| int admv1014_get_if_amp_gain |
( |
struct admv1014_dev * | dev, |
|
|
uint8_t * | i_coarse_gain, |
|
|
uint8_t * | q_coarse_gain, |
|
|
uint8_t * | i_fine_gain, |
|
|
uint8_t * | q_fine_gain ) |
Get IF Amp Gain.
Get IF Amp Gain
- Parameters
-
| dev | - The device structure. |
| i_coarse_gain | - The I coarse gain value. |
| q_coarse_gain | - The I coarse gain value. |
| i_fine_gain | - The Q fine gain value. |
| q_fine_gain | - The Q fine gain value. |
- Returns
- Returns 0 in case of success or negative error code.
◆ admv1014_get_phase()
| int admv1014_get_phase |
( |
struct admv1014_dev * | dev, |
|
|
uint8_t * | i_phase, |
|
|
uint8_t * | q_phase ) |
Get LO Amp Phase.
Get LO Amp Phase
- Parameters
-
| dev | - The device structure. |
| i_phase | - The I phase adjust value. |
| q_phase | - The Q phase adjust value. |
- Returns
- Returns 0 in case of success or negative error code.
◆ admv1014_init()
Initializes the admv1014.
ADMV1014 Initialization
- Parameters
-
| device | - The device structure. |
| init_param | - The structure containing the device initial parameters. |
- Returns
- Returns 0 in case of success or negative error code.
◆ admv1014_remove()
ADMV1014 Resources Deallocation.
ADMV1014 Resources Deallocation
- Parameters
-
| dev | - The device structure. |
- Returns
- Returns 0 in case of success or negative error code otherwise.
◆ admv1014_set_bb_amp_gain()
| int admv1014_set_bb_amp_gain |
( |
struct admv1014_dev * | dev, |
|
|
uint8_t | gain ) |
Set Baseband Amp Gain.
Set Baseband Amp Gain
- Parameters
-
| dev | - The device structure. |
| gain | - Digital Rx Detector gain. |
- Returns
- Returns 0 in case of success or negative error code.
◆ admv1014_set_det_prog()
Set Digital Rx Detector.
Set Digital Rx Detector
- Parameters
-
| dev | - The device structure. |
| det_prog | - Digital Rx Detector gain. |
- Returns
- Returns 0 in case of success or negative error code.
◆ admv1014_set_if_amp_gain()
| int admv1014_set_if_amp_gain |
( |
struct admv1014_dev * | dev, |
|
|
uint8_t | i_coarse_gain, |
|
|
uint8_t | q_coarse_gain, |
|
|
uint8_t | i_fine_gain, |
|
|
uint8_t | q_fine_gain ) |
Set IF Amp Gain.
Set IF Amp Gain
- Parameters
-
| dev | - The device structure. |
| i_coarse_gain | - The I coarse gain value. |
| q_coarse_gain | - The I coarse gain value. |
| i_fine_gain | - The Q fine gain value. |
| q_fine_gain | - The Q fine gain value. |
- Returns
- Returns 0 in case of success or negative error code.
◆ admv1014_set_phase()
| int admv1014_set_phase |
( |
struct admv1014_dev * | dev, |
|
|
uint8_t | i_phase, |
|
|
uint8_t | q_phase ) |
Set LO Amp Phase.
Set LO Amp Phase
- Parameters
-
| dev | - The device structure. |
| i_phase | - The I phase adjust value. |
| q_phase | - The Q phase adjust value. |
- Returns
- Returns 0 in case of success or negative error code.
◆ admv1014_spi_read()
| int admv1014_spi_read |
( |
struct admv1014_dev * | dev, |
|
|
uint8_t | reg_addr, |
|
|
uint16_t * | data ) |
Reads data from ADMV1014 over SPI.
ADMV1014 SPI Read
- Parameters
-
| dev | - The device structure. |
| reg_addr | - The register address. |
| data | - Data read from the device. |
- Returns
- Returns 0 in case of success or negative error code otherwise.
◆ admv1014_spi_update_bits()
| int admv1014_spi_update_bits |
( |
struct admv1014_dev * | dev, |
|
|
uint8_t | reg_addr, |
|
|
uint16_t | mask, |
|
|
uint16_t | data ) |
Update ADMV1014 register.
- Parameters
-
| dev | - The device structure. |
| reg_addr | - The register address. |
| mask | - Mask for specific register bits to be updated. |
| data | - Data written to the device (requires prior bit shifting). |
- Returns
- Returns 0 in case of success or negative error code otherwise.
◆ admv1014_spi_write()
| int admv1014_spi_write |
( |
struct admv1014_dev * | dev, |
|
|
uint8_t | reg_addr, |
|
|
uint16_t | data ) |
Writes data to ADMV1014 over SPI.
ADMV1014 SPI write
- Parameters
-
| dev | - The device structure. |
| reg_addr | - The register address. |
| data | - Data value to write. |
- Returns
- Returns 0 in case of success or negative error code otherwise.