no-OS
Loading...
Searching...
No Matches
admv1013.c File Reference

Implementation of admv1013 Driver. More...

#include <malloc.h>
#include "admv1013.h"
#include "no_os_error.h"
#include "no_os_alloc.h"
Include dependency graph for admv1013.c:

Macros

#define MIXER_GATE_0_TO_1_8_V(x)
 
#define MIXER_GATE_1_8_TO_2_6_V(x)
 

Functions

int admv1013_spi_write (struct admv1013_dev *dev, uint8_t reg_addr, uint16_t data)
 Writes data to ADMV1013 over SPI.
 
int admv1013_spi_read (struct admv1013_dev *dev, uint8_t reg_addr, uint16_t *data)
 Reads data from ADMV1013 over SPI.
 
int admv1013_spi_update_bits (struct admv1013_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t data)
 Update ADMV1013 register.
 
int admv1013_set_iq_phase (struct admv1013_dev *dev, uint8_t i_phase, uint8_t q_phase)
 Set I/Q Phase Accuracy.
 
int admv1013_get_iq_phase (struct admv1013_dev *dev, uint8_t *i_phase, uint8_t *q_phase)
 Get I/Q Phase Accuracy.
 
int admv1013_set_iq_offset (struct admv1013_dev *dev, uint8_t i_offset_p, uint8_t i_offset_n, uint8_t q_offset_p, uint8_t q_offset_n)
 Set I/Q Offset Accuracy.
 
int admv1013_get_iq_offset (struct admv1013_dev *dev, uint8_t *i_offset_p, uint8_t *i_offset_n, uint8_t *q_offset_p, uint8_t *q_offset_n)
 Get I/Q Offset Accuracy.
 
int admv1013_init (struct admv1013_dev **device, struct admv1013_init_param *init_param)
 Initializes the admv1013.
 
int admv1013_remove (struct admv1013_dev *dev)
 ADMV1013 Resources Deallocation.
 

Detailed Description

Implementation of admv1013 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

Macro Definition Documentation

◆ MIXER_GATE_0_TO_1_8_V

#define MIXER_GATE_0_TO_1_8_V ( x)
Value:
((2389 * x/ 1000000 + 8100) / 100)

◆ MIXER_GATE_1_8_TO_2_6_V

#define MIXER_GATE_1_8_TO_2_6_V ( x)
Value:
((2375 * x/ 1000000 + 125) / 100)

Function Documentation

◆ admv1013_get_iq_offset()

int admv1013_get_iq_offset ( struct admv1013_dev * dev,
uint8_t * i_offset_p,
uint8_t * i_offset_n,
uint8_t * q_offset_p,
uint8_t * q_offset_n )

Get I/Q Offset Accuracy.

Parameters
dev- The device structure.
i_offset_p- The I Data Positive.
i_offset_n- The I Data Negative.
q_offset_p- The Q Data Positive.
q_offset_n- The Q Data Negative.
Returns
Returns 0 in case of success or negative error code.

◆ admv1013_get_iq_phase()

int admv1013_get_iq_phase ( struct admv1013_dev * dev,
uint8_t * i_phase,
uint8_t * q_phase )

Get I/Q Phase Accuracy.

Parameters
dev- The device structure.
i_phase- The I Data.
q_phase- The Q Data.
Returns
Returns 0 in case of success or negative error code.

◆ admv1013_init()

int admv1013_init ( struct admv1013_dev ** device,
struct admv1013_init_param * init_param )

Initializes the admv1013.

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.

◆ admv1013_remove()

int admv1013_remove ( struct admv1013_dev * dev)

ADMV1013 Resources Deallocation.

Parameters
dev- The device structure.
Returns
Returns 0 in case of success or negative error code otherwise.

◆ admv1013_set_iq_offset()

int admv1013_set_iq_offset ( struct admv1013_dev * dev,
uint8_t i_offset_p,
uint8_t i_offset_n,
uint8_t q_offset_p,
uint8_t q_offset_n )

Set I/Q Offset Accuracy.

Parameters
dev- The device structure.
i_offset_p- The I Data Positive.
i_offset_n- The I Data Negative.
q_offset_p- The Q Data Positive.
q_offset_n- The Q Data Negative.
Returns
Returns 0 in case of success or negative error code.

◆ admv1013_set_iq_phase()

int admv1013_set_iq_phase ( struct admv1013_dev * dev,
uint8_t i_phase,
uint8_t q_phase )

Set I/Q Phase Accuracy.

Parameters
dev- The device structure.
i_phase- The I Data.
q_phase- The Q Data.
Returns
Returns 0 in case of success or negative error code.

◆ admv1013_spi_read()

int admv1013_spi_read ( struct admv1013_dev * dev,
uint8_t reg_addr,
uint16_t * data )

Reads data from ADMV1013 over SPI.

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.

◆ admv1013_spi_update_bits()

int admv1013_spi_update_bits ( struct admv1013_dev * dev,
uint8_t reg_addr,
uint16_t mask,
uint16_t data )

Update ADMV1013 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.

◆ admv1013_spi_write()

int admv1013_spi_write ( struct admv1013_dev * dev,
uint8_t reg_addr,
uint16_t data )

Writes data to ADMV1013 over SPI.

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.