![]() |
no-OS
|
Implementation of AD9361 API Driver. More...
#include "ad9361.h"#include "ad9361_api.h"#include "no_os_delay.h"#include "no_os_spi.h"#include "no_os_util.h"#include "no_os_alloc.h"#include "app_config.h"#include <string.h>#include "axi_adc_core.h"#include "axi_dac_core.h"Macros | |
| #define | ADI_REG_VERSION 0x0000 |
Functions | |
| int32_t | ad9361_init (struct ad9361_rf_phy **ad9361_phy, AD9361_InitParam *init_param) |
| int32_t | ad9361_remove (struct ad9361_rf_phy *phy) |
| int32_t | ad9361_set_en_state_machine_mode (struct ad9361_rf_phy *phy, uint32_t mode) |
| int32_t | ad9361_get_en_state_machine_mode (struct ad9361_rf_phy *phy, uint32_t *mode) |
| int32_t | ad9361_set_rx_rf_gain (struct ad9361_rf_phy *phy, uint8_t ch, int32_t gain_db) |
| int32_t | ad9361_get_rx_rf_gain (struct ad9361_rf_phy *phy, uint8_t ch, int32_t *gain_db) |
| int32_t | ad9361_set_rx_rf_bandwidth (struct ad9361_rf_phy *phy, uint32_t bandwidth_hz) |
| int32_t | ad9361_get_rx_rf_bandwidth (struct ad9361_rf_phy *phy, uint32_t *bandwidth_hz) |
| int32_t | ad9361_set_rx_sampling_freq (struct ad9361_rf_phy *phy, uint32_t sampling_freq_hz) |
| int32_t | ad9361_get_rx_sampling_freq (struct ad9361_rf_phy *phy, uint32_t *sampling_freq_hz) |
| int32_t | ad9361_set_rx_lo_freq (struct ad9361_rf_phy *phy, uint64_t lo_freq_hz) |
| int32_t | ad9361_get_rx_lo_freq (struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz) |
| int32_t | ad9361_set_rx_lo_int_ext (struct ad9361_rf_phy *phy, uint8_t int_ext) |
| int32_t | ad9361_get_rx_rssi (struct ad9361_rf_phy *phy, uint8_t ch, struct rf_rssi *rssi) |
| int32_t | ad9361_set_rx_gain_control_mode (struct ad9361_rf_phy *phy, uint8_t ch, uint8_t gc_mode) |
| int32_t | ad9361_get_rx_gain_control_mode (struct ad9361_rf_phy *phy, uint8_t ch, uint8_t *gc_mode) |
| int32_t | ad9361_set_rx_fir_config (struct ad9361_rf_phy *phy, AD9361_RXFIRConfig fir_cfg) |
| int32_t | ad9361_get_rx_fir_config (struct ad9361_rf_phy *phy, uint8_t rx_ch, AD9361_RXFIRConfig *fir_cfg) |
| int32_t | ad9361_set_rx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis) |
| int32_t | ad9361_get_rx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t *en_dis) |
| int32_t | ad9361_set_rx_rfdc_track_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis) |
| int32_t | ad9361_get_rx_rfdc_track_en_dis (struct ad9361_rf_phy *phy, uint8_t *en_dis) |
| int32_t | ad9361_set_rx_bbdc_track_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis) |
| int32_t | ad9361_get_rx_bbdc_track_en_dis (struct ad9361_rf_phy *phy, uint8_t *en_dis) |
| int32_t | ad9361_set_rx_quad_track_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis) |
| int32_t | ad9361_get_rx_quad_track_en_dis (struct ad9361_rf_phy *phy, uint8_t *en_dis) |
| int32_t | ad9361_set_rx_rf_port_input (struct ad9361_rf_phy *phy, uint32_t mode) |
| int32_t | ad9361_get_rx_rf_port_input (struct ad9361_rf_phy *phy, uint32_t *mode) |
| int32_t | ad9361_rx_fastlock_store (struct ad9361_rf_phy *phy, uint32_t profile) |
| int32_t | ad9361_rx_fastlock_recall (struct ad9361_rf_phy *phy, uint32_t profile) |
| int32_t | ad9361_rx_fastlock_load (struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values) |
| int32_t | ad9361_rx_fastlock_save (struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values) |
| int32_t | ad9361_rx_lo_powerdown (struct ad9361_rf_phy *phy, uint8_t option) |
| int32_t | ad9361_get_rx_lo_power (struct ad9361_rf_phy *phy, uint8_t *option) |
| int32_t | ad9361_set_tx_attenuation (struct ad9361_rf_phy *phy, uint8_t ch, uint32_t attenuation_mdb) |
| int32_t | ad9361_get_tx_attenuation (struct ad9361_rf_phy *phy, uint8_t ch, uint32_t *attenuation_mdb) |
| int32_t | ad9361_set_tx_rf_bandwidth (struct ad9361_rf_phy *phy, uint32_t bandwidth_hz) |
| int32_t | ad9361_get_tx_rf_bandwidth (struct ad9361_rf_phy *phy, uint32_t *bandwidth_hz) |
| int32_t | ad9361_set_tx_sampling_freq (struct ad9361_rf_phy *phy, uint32_t sampling_freq_hz) |
| int32_t | ad9361_get_tx_sampling_freq (struct ad9361_rf_phy *phy, uint32_t *sampling_freq_hz) |
| int32_t | ad9361_set_tx_lo_freq (struct ad9361_rf_phy *phy, uint64_t lo_freq_hz) |
| int32_t | ad9361_get_tx_lo_freq (struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz) |
| int32_t | ad9361_set_tx_lo_int_ext (struct ad9361_rf_phy *phy, uint8_t int_ext) |
| int32_t | ad9361_set_tx_fir_config (struct ad9361_rf_phy *phy, AD9361_TXFIRConfig fir_cfg) |
| int32_t | ad9361_get_tx_fir_config (struct ad9361_rf_phy *phy, uint8_t tx_ch, AD9361_TXFIRConfig *fir_cfg) |
| int32_t | ad9361_set_tx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis) |
| int32_t | ad9361_get_tx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t *en_dis) |
| int32_t | ad9361_get_tx_rssi (struct ad9361_rf_phy *phy, uint8_t ch, uint32_t *rssi_db_x_1000) |
| int32_t | ad9361_set_tx_rf_port_output (struct ad9361_rf_phy *phy, uint32_t mode) |
| int32_t | ad9361_get_tx_rf_port_output (struct ad9361_rf_phy *phy, uint32_t *mode) |
| int32_t | ad9361_set_tx_auto_cal_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis) |
| int32_t | ad9361_get_tx_auto_cal_en_dis (struct ad9361_rf_phy *phy, uint8_t *en_dis) |
| int32_t | ad9361_tx_fastlock_store (struct ad9361_rf_phy *phy, uint32_t profile) |
| int32_t | ad9361_tx_fastlock_recall (struct ad9361_rf_phy *phy, uint32_t profile) |
| int32_t | ad9361_tx_fastlock_load (struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values) |
| int32_t | ad9361_tx_fastlock_save (struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values) |
| int32_t | ad9361_tx_lo_powerdown (struct ad9361_rf_phy *phy, uint8_t option) |
| int32_t | ad9361_get_tx_lo_power (struct ad9361_rf_phy *phy, uint8_t *option) |
| int32_t | ad9361_set_trx_path_clks (struct ad9361_rf_phy *phy, uint32_t *rx_path_clks, uint32_t *tx_path_clks) |
| int32_t | ad9361_get_trx_path_clks (struct ad9361_rf_phy *phy, uint32_t *rx_path_clks, uint32_t *tx_path_clks) |
| int32_t | ad9361_set_no_ch_mode (struct ad9361_rf_phy *phy, uint8_t no_ch_mode) |
| int32_t | ad9361_do_mcs (struct ad9361_rf_phy *phy_master, struct ad9361_rf_phy *phy_slave) |
| int32_t | ad9361_set_trx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis) |
| int32_t | ad9361_set_trx_rate_gov (struct ad9361_rf_phy *phy, uint32_t rate_gov) |
| int32_t | ad9361_get_trx_rate_gov (struct ad9361_rf_phy *phy, uint32_t *rate_gov) |
| int32_t | ad9361_do_calib (struct ad9361_rf_phy *phy, uint32_t cal, int32_t arg) |
| int32_t | ad9361_trx_load_enable_fir (struct ad9361_rf_phy *phy, AD9361_RXFIRConfig rx_fir_cfg, AD9361_TXFIRConfig tx_fir_cfg) |
| int32_t | ad9361_do_dcxo_tune_coarse (struct ad9361_rf_phy *phy, uint32_t coarse) |
| int32_t | ad9361_do_dcxo_tune_fine (struct ad9361_rf_phy *phy, uint32_t fine) |
| int32_t | ad9361_get_temperature (struct ad9361_rf_phy *phy, int32_t *temp) |
Variables | |
| struct gain_table_info | ad9361_adi_gt_info [] |
Implementation of AD9361 API Driver.
Copyright 2013(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
| #define ADI_REG_VERSION 0x0000 |
| int32_t ad9361_do_calib | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | cal, | ||
| int32_t | arg ) |
Perform the selected calibration.
| phy | The AD9361 state structure. |
| cal | The selected calibration (TX_QUAD_CAL, RFDC_CAL). Accepted values: TX_QUAD_CAL RFDC_CAL |
| arg | For TX_QUAD_CAL - the optional RX phase value overwrite (set to zero). |
Note: This function will/may affect the data path.
| int32_t ad9361_do_dcxo_tune_coarse | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | coarse ) |
Do DCXO coarse tuning.
| phy | The AD9361 current state structure. |
| coarse | The DCXO coarse tuning value. |
| int32_t ad9361_do_dcxo_tune_fine | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | fine ) |
Do DCXO fine tuning.
| phy | The AD9361 current state structure. |
| fine | The DCXO fine tuning value. |
| int32_t ad9361_do_mcs | ( | struct ad9361_rf_phy * | phy_master, |
| struct ad9361_rf_phy * | phy_slave ) |
Do multi chip synchronization.
| phy_master | The AD9361 Master state structure. |
| phy_slave | The AD9361 Slave state structure. |
Note: This function will/may affect the data path.
| int32_t ad9361_get_en_state_machine_mode | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | mode ) |
Get the Enable State Machine (ENSM) mode.
| phy | The AD9361 current state structure. |
| mode | A variable to store the selected ENSM mode. |
| int32_t ad9361_get_rx_bbdc_track_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t * | en_dis ) |
Get the status of the RX BasebandDC Tracking.
| phy | The AD9361 current state structure. |
| en_dis | The enable/disable status buffer. |
| int32_t ad9361_get_rx_fir_config | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | rx_ch, | ||
| AD9361_RXFIRConfig * | fir_cfg ) |
Get the RX FIR filter configuration.
| phy | The AD9361 current state structure. |
| rx_ch | The selected RX channel (RX1, RX2). Accepted values: RX1 (0) RX2 (1) |
| fir_cfg | FIR filter configuration output file. |
| int32_t ad9361_get_rx_fir_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t * | en_dis ) |
Get the status of the RX FIR filter.
| phy | The AD9361 current state structure. |
| en_dis | The enable/disable status buffer. |
| int32_t ad9361_get_rx_gain_control_mode | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | ch, | ||
| uint8_t * | gc_mode ) |
Get the gain control mode for the selected channel.
| phy | The AD9361 current state structure. |
| ch | The desired channel (RX1, RX2). Accepted values: RX1 (0) RX2 (1) |
| gc_mode | A variable to store the gain control mode. |
| int32_t ad9361_get_rx_lo_freq | ( | struct ad9361_rf_phy * | phy, |
| uint64_t * | lo_freq_hz ) |
Get current RX LO frequency.
| phy | The AD9361 current state structure. |
| lo_freq_hz | A variable to store the frequency value (Hz). |
| int32_t ad9361_get_rx_lo_power | ( | struct ad9361_rf_phy * | phy, |
| uint8_t * | option ) |
Get the RX Local Oscillator power status.
| phy | The AD9361 state structure. |
| option | Store the option (ON, OFF). |
| int32_t ad9361_get_rx_quad_track_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t * | en_dis ) |
Get the status of the RX Quadrature Tracking.
| phy | The AD9361 current state structure. |
| en_dis | The enable/disable status buffer. |
| int32_t ad9361_get_rx_rf_bandwidth | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | bandwidth_hz ) |
Get the RX RF bandwidth.
| phy | The AD9361 current state structure. |
| bandwidth_hz | A variable to store the bandwidth value (Hz). |
| int32_t ad9361_get_rx_rf_gain | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | ch, | ||
| int32_t * | gain_db ) |
Get current receive RF gain for the selected channel.
| phy | The AD9361 current state structure. |
| ch | The desired channel number (RX1, RX2). Accepted values in 2x2 mode: RX1 (0) RX2 (1) Accepted values in 1x1 mode: RX1 (0) |
| gain_db | A variable to store the RF gain (dB). |
| int32_t ad9361_get_rx_rf_port_input | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | mode ) |
Get the selected RX RF input port.
| phy | The AD9361 current state structure. |
| mode | The RF port. |
| int32_t ad9361_get_rx_rfdc_track_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t * | en_dis ) |
Get the status of the RX RFDC Tracking.
| phy | The AD9361 current state structure. |
| en_dis | The enable/disable status buffer. |
| int32_t ad9361_get_rx_rssi | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | ch, | ||
| struct rf_rssi * | rssi ) |
Get the RSSI for the selected channel.
| phy | The AD9361 current state structure. |
| ch | The desired channel (RX1, RX2). Accepted values in 2x2 mode: RX1 (0) RX2 (1) Accepted values in 1x1 mode: RX1 (0) |
| rssi | A variable to store the RSSI. |
| int32_t ad9361_get_rx_sampling_freq | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | sampling_freq_hz ) |
Get current RX sampling frequency.
| phy | The AD9361 current state structure. |
| sampling_freq_hz | A variable to store the frequency value (Hz). |
| int32_t ad9361_get_temperature | ( | struct ad9361_rf_phy * | phy, |
| int32_t * | temp ) |
Get the temperature.
| phy | The AD9361 current state structure. |
| temp | The temperature (degrees C * 1000). |
| int32_t ad9361_get_trx_path_clks | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | rx_path_clks, | ||
| uint32_t * | tx_path_clks ) |
Get the RX and TX path rates.
| phy | The AD9361 state structure. |
| rx_path_clks | RX path rates buffer. |
| tx_path_clks | TX path rates buffer. |
| int32_t ad9361_get_trx_rate_gov | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | rate_gov ) |
Get the OSR rate governor.
| phy | The AD9361 current state structure. |
| rate_gov | Option buffer. |
| int32_t ad9361_get_tx_attenuation | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | ch, | ||
| uint32_t * | attenuation_mdb ) |
Get current transmit attenuation for the selected channel.
| phy | The AD9361 current state structure. |
| ch | The desired channel number (TX1, TX2). Accepted values in 2x2 mode: TX1 (0) TX2 (1) Accepted values in 1x1 mode: TX1 (0) |
| attenuation_mdb | A variable to store the attenuation value (mdB). |
| int32_t ad9361_get_tx_auto_cal_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t * | en_dis ) |
Get the status of the auto calibration flag.
| phy | The AD9361 current state structure. |
| en_dis | The enable/disable status buffer. |
| int32_t ad9361_get_tx_fir_config | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | tx_ch, | ||
| AD9361_TXFIRConfig * | fir_cfg ) |
Get the TX FIR filter configuration.
| phy | The AD9361 current state structure. |
| tx_ch | The selected TX channel (TX1, TX2). Accepted values: TX1 (0) TX2 (1) |
| fir_cfg | FIR filter configuration output file. |
| int32_t ad9361_get_tx_fir_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t * | en_dis ) |
Get the status of the TX FIR filter.
| phy | The AD9361 current state structure. |
| en_dis | The enable/disable status buffer. |
| int32_t ad9361_get_tx_lo_freq | ( | struct ad9361_rf_phy * | phy, |
| uint64_t * | lo_freq_hz ) |
Get current TX LO frequency.
| phy | The AD9361 current state structure. |
| lo_freq_hz | A variable to store the frequency value (Hz). |
| int32_t ad9361_get_tx_lo_power | ( | struct ad9361_rf_phy * | phy, |
| uint8_t * | option ) |
Get the TX Local Oscillator power status.
| phy | The AD9361 state structure. |
| option | Store the option (ON, OFF). |
| int32_t ad9361_get_tx_rf_bandwidth | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | bandwidth_hz ) |
Get the TX RF bandwidth.
| phy | The AD9361 current state structure. |
| bandwidth_hz | A variable to store the bandwidth value (Hz). |
| int32_t ad9361_get_tx_rf_port_output | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | mode ) |
Get the selected TX RF output port.
| phy | The AD9361 current state structure. |
| mode | The RF port. |
| int32_t ad9361_get_tx_rssi | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | ch, | ||
| uint32_t * | rssi_db_x_1000 ) |
Get the TX RSSI for the selected channel (TX_MON should be enabled).
| phy | The AD9361 current state structure. |
| ch | The desired channel (TX1, TX2). Accepted values: TX1 (0) TX2 (1) |
| rssi_db_x_1000 | A variable to store the RSSI. |
| int32_t ad9361_get_tx_sampling_freq | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | sampling_freq_hz ) |
Get current TX sampling frequency.
| phy | The AD9361 current state structure. |
| sampling_freq_hz | A variable to store the frequency value (Hz). |
| int32_t ad9361_init | ( | struct ad9361_rf_phy ** | ad9361_phy, |
| AD9361_InitParam * | init_param ) |
Initialize the AD9361 part.
| ad9361_phy | The AD9361 device structure. |
| init_param | The structure that contains the AD9361 initial parameters. |
Note: This function will/may affect the data path.
| int32_t ad9361_remove | ( | struct ad9361_rf_phy * | phy | ) |
Free the allocated resources.
| phy | The AD9361 current state structure. |
| int32_t ad9361_rx_fastlock_load | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | profile, | ||
| uint8_t * | values ) |
Load RX fastlock profile. A previously saved profile can be loaded in any of the 8 available slots.
| phy | The AD9361 state structure. |
| profile | The profile number (0 - 7). Accepted values: 0 - 7 |
| values | Fastlock profile program data. Example: val0,val1,val2, ,val15 |
| int32_t ad9361_rx_fastlock_recall | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | profile ) |
Recall specified RX fastlock profile. When in fastlock pin select mode (init_param->rx_fastlock_pincontrol_enable), the function needs to be called before then the pin-control can be used.
| phy | The AD9361 state structure. |
| profile | The profile number (0 - 7). Accepted values: 0 - 7 |
| int32_t ad9361_rx_fastlock_save | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | profile, | ||
| uint8_t * | values ) |
Save RX fastlock profile. In order to use more than 8 Profiles, an existing profile can be read back and stored by the user application.
| phy | The AD9361 state structure. |
| profile | The profile number (0 - 7). Accepted values: 0 - 7 |
| values | Fastlock profile program data. |
| int32_t ad9361_rx_fastlock_store | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | profile ) |
Store RX fastlock profile. To create a profile tune the synthesizer (ad9361_set_rx_lo_freq()) and then call this function specifying the target profile number.
| phy | The AD9361 state structure. |
| profile | The profile number (0 - 7). Accepted values: 0 - 7 |
| int32_t ad9361_rx_lo_powerdown | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | option ) |
Power down the RX Local Oscillator.
| phy | The AD9361 state structure. |
| option | The option (ON, OFF). Accepted values: ON (0) OFF (1) |
| int32_t ad9361_set_en_state_machine_mode | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | mode ) |
Set the Enable State Machine (ENSM) mode.
| phy | The AD9361 current state structure. |
| mode | The ENSM mode. Accepted values: ENSM_MODE_TX ENSM_MODE_RX ENSM_MODE_ALERT ENSM_MODE_FDD ENSM_MODE_WAIT ENSM_MODE_SLEEP ENSM_MODE_PINCTRL ENSM_MODE_PINCTRL_FDD_INDEP |
Note: This function will/may affect the data path.
| int32_t ad9361_set_no_ch_mode | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | no_ch_mode ) |
Set the number of channels mode.
| phy | The AD9361 state structure. Note: This function also resets the device, some additional configurations might be necessary |
| no_ch_mode | Number of channels mode (MODE_1x1, MODE_2x2). Accepted values: MODE_1x1 (1) MODE_2x2 (2) |
| int32_t ad9361_set_rx_bbdc_track_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | en_dis ) |
Enable/disable the RX BasebandDC Tracking.
| phy | The AD9361 current state structure. |
| en_dis | The option (ENABLE, DISABLE). Accepted values: ENABLE (1) DISABLE (0) |
| int32_t ad9361_set_rx_fir_config | ( | struct ad9361_rf_phy * | phy, |
| AD9361_RXFIRConfig | fir_cfg ) |
Set the RX FIR filter configuration.
| phy | The AD9361 current state structure. |
| fir_cfg | FIR filter configuration. |
Note: This function will/may affect the data path.
| int32_t ad9361_set_rx_fir_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | en_dis ) |
Enable/disable the RX FIR filter.
| phy | The AD9361 current state structure. |
| en_dis | The option (ENABLE, DISABLE). Accepted values: ENABLE (1) DISABLE (0) |
Note: This function will/may affect the data path.
| int32_t ad9361_set_rx_gain_control_mode | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | ch, | ||
| uint8_t | gc_mode ) |
Set the gain control mode for the selected channel.
| phy | The AD9361 current state structure. |
| ch | The desired channel (RX1, RX2). Accepted values in 2x2 mode: RX1 (0) RX2 (1) Accepted values in 1x1 mode: RX1 (0) |
| gc_mode | The gain control mode (manual, fast_attack, slow_attack, hybrid). Accepted values: RF_GAIN_MGC (manual) RF_GAIN_FASTATTACK_AGC (fast_attack) RF_GAIN_SLOWATTACK_AGC (slow_attack) RF_GAIN_HYBRID_AGC (hybrid) |
| int32_t ad9361_set_rx_lo_freq | ( | struct ad9361_rf_phy * | phy, |
| uint64_t | lo_freq_hz ) |
Set the RX LO frequency.
| phy | The AD9361 current state structure. |
| lo_freq_hz | The desired frequency (Hz). Example: 2400000000 (2.4 GHz) |
Note: This function will/may affect the data path.
| int32_t ad9361_set_rx_lo_int_ext | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | int_ext ) |
Switch between internal and external LO.
| phy | The AD9361 state structure. |
| int_ext | The selected lo (INT_LO, EXT_LO). Accepted values: INT_LO EXT_LO |
| int32_t ad9361_set_rx_quad_track_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | en_dis ) |
Enable/disable the RX Quadrature Tracking.
| phy | The AD9361 current state structure. |
| en_dis | The option (ENABLE, DISABLE). Accepted values: ENABLE (1) DISABLE (0) |
| int32_t ad9361_set_rx_rf_bandwidth | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | bandwidth_hz ) |
Set the RX RF bandwidth.
| phy | The AD9361 current state structure. |
| bandwidth_hz | The desired bandwidth (Hz). Example: 18000000 (18 MHz) |
Note: This function will/may affect the data path.
| int32_t ad9361_set_rx_rf_gain | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | ch, | ||
| int32_t | gain_db ) |
Set the receive RF gain for the selected channel.
| phy | The AD9361 current state structure. |
| ch | The desired channel number (RX1, RX2). Accepted values in 2x2 mode: RX1 (0) RX2 (1) Accepted values in 1x1 mode: RX1 (0) |
| gain_db | The RF gain (dB). Example: 10 (10 dB) |
| int32_t ad9361_set_rx_rf_port_input | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | mode ) |
Set the RX RF input port.
| phy | The AD9361 current state structure. |
| mode | The RF port. Accepted values: A_BALANCED (0 - (RX1A_N & RX1A_P) and (RX2A_N & RX2A_P) enabled; balanced) B_BALANCED (1 - (RX1B_N & RX1B_P) and (RX2B_N & RX2B_P) enabled; balanced) C_BALANCED (2 - (RX1C_N & RX1C_P) and (RX2C_N & RX2C_P) enabled; balanced) A_N (3 - RX1A_N and RX2A_N enabled; unbalanced) A_P (4 - RX1A_P and RX2A_P enabled; unbalanced) B_N (5 - RX1B_N and RX2B_N enabled; unbalanced) B_P (6 - RX1B_P and RX2B_P enabled; unbalanced) C_N (7 - RX1C_N and RX2C_N enabled; unbalanced) C_P (8 - RX1C_P and RX2C_P enabled; unbalanced) TX_MON1 (9 - TX_MONITOR1) TX_MON2 (10 - TX_MONITOR2) TX_MON1_2 (11 - TX_MONITOR1 & TX_MONITOR2) |
| int32_t ad9361_set_rx_rfdc_track_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | en_dis ) |
Enable/disable the RX RFDC Tracking.
| phy | The AD9361 current state structure. |
| en_dis | The option (ENABLE, DISABLE). Accepted values: ENABLE (1) DISABLE (0) |
| int32_t ad9361_set_rx_sampling_freq | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | sampling_freq_hz ) |
Set the RX sampling frequency.
| phy | The AD9361 current state structure. |
| sampling_freq_hz | The desired frequency (Hz). Example: 30720000 (30.72 MHz) |
Note: This function will/may affect the data path.
| int32_t ad9361_set_trx_fir_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | en_dis ) |
Enable/disable the TRX FIR filters.
| phy | The AD9361 current state structure. |
| en_dis | The option (ENABLE, DISABLE). Accepted values: ENABLE (1) DISABLE (0) |
Note: This function will/may affect the data path.
| int32_t ad9361_set_trx_path_clks | ( | struct ad9361_rf_phy * | phy, |
| uint32_t * | rx_path_clks, | ||
| uint32_t * | tx_path_clks ) |
Set the RX and TX path rates.
| phy | The AD9361 state structure. |
| rx_path_clks | RX path rates buffer. |
| tx_path_clks | TX path rates buffer. |
Note: This function will/may affect the data path.
| int32_t ad9361_set_trx_rate_gov | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | rate_gov ) |
Set the OSR rate governor.
| phy | The AD9361 current state structure. |
| rate_gov | OSR rate governor (highest, nominal). Accepted values: HIGHEST_OSR (0 - highest OSR) NOMINAL_OSR (1 - nominal) |
| int32_t ad9361_set_tx_attenuation | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | ch, | ||
| uint32_t | attenuation_mdb ) |
Set the transmit attenuation for the selected channel.
| phy | The AD9361 current state structure. |
| ch | The desired channel number (TX1, TX2). Accepted values in 2x2 mode: TX1 (0) TX2 (1) Accepted values in 1x1 mode: TX1 (0) |
| attenuation_mdb | The attenuation (mdB). Example: 10000 (10 dB) |
| int32_t ad9361_set_tx_auto_cal_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | en_dis ) |
Enable/disable the auto calibration.
| phy | The AD9361 current state structure. |
| en_dis | The option (ENABLE, DISABLE). Accepted values: ENABLE (1) DISABLE (0) |
| int32_t ad9361_set_tx_fir_config | ( | struct ad9361_rf_phy * | phy, |
| AD9361_TXFIRConfig | fir_cfg ) |
Set the TX FIR filter configuration.
| phy | The AD9361 current state structure. |
| fir_cfg | FIR filter configuration. |
Note: This function will/may affect the data path.
| int32_t ad9361_set_tx_fir_en_dis | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | en_dis ) |
Enable/disable the TX FIR filter.
| phy | The AD9361 current state structure. |
| en_dis | The option (ENABLE, DISABLE). Accepted values: ENABLE (1) DISABLE (0) |
Note: This function will/may affect the data path.
| int32_t ad9361_set_tx_lo_freq | ( | struct ad9361_rf_phy * | phy, |
| uint64_t | lo_freq_hz ) |
Set the TX LO frequency.
| phy | The AD9361 current state structure. |
| lo_freq_hz | The desired frequency (Hz). Example: 2400000000 (2.4 GHz) |
Note: This function will/may affect the data path.
| int32_t ad9361_set_tx_lo_int_ext | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | int_ext ) |
Switch between internal and external LO.
| phy | The AD9361 state structure. |
| int_ext | The selected lo (INT_LO, EXT_LO). Accepted values: INT_LO EXT_LO |
| int32_t ad9361_set_tx_rf_bandwidth | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | bandwidth_hz ) |
Set the TX RF bandwidth.
| phy | The AD9361 current state structure. |
| bandwidth_hz | The desired bandwidth (Hz). Example: 18000000 (18 MHz) |
Note: This function will/may affect the data path.
| int32_t ad9361_set_tx_rf_port_output | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | mode ) |
Set the TX RF output port.
| phy | The AD9361 current state structure. |
| mode | The RF port. Accepted values: TXA (0) TXB (1) |
| int32_t ad9361_set_tx_sampling_freq | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | sampling_freq_hz ) |
Set the TX sampling frequency.
| phy | The AD9361 current state structure. |
| sampling_freq_hz | The desired frequency (Hz). Example: 30720000 (30.72 MHz) |
Note: This function will/may affect the data path.
| int32_t ad9361_trx_load_enable_fir | ( | struct ad9361_rf_phy * | phy, |
| AD9361_RXFIRConfig | rx_fir_cfg, | ||
| AD9361_TXFIRConfig | tx_fir_cfg ) |
Load and enable TRX FIR filters configurations.
| phy | The AD9361 current state structure. |
| rx_fir_cfg | RX FIR filter configuration. |
| tx_fir_cfg | TX FIR filter configuration. |
Note: This function will/may affect the data path.
| int32_t ad9361_tx_fastlock_load | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | profile, | ||
| uint8_t * | values ) |
Load TX fastlock profile. A previously saved profile can be loaded in any of the 8 available slots.
| phy | The AD9361 state structure. |
| profile | The profile number (0 - 7). Accepted values: 0 - 7 |
| values | Fastlock profile program data. Example: val0,val1,val2, ,val15 |
| int32_t ad9361_tx_fastlock_recall | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | profile ) |
Recall specified TX fastlock profile. When in fastlock pin select mode (init_param->tx_fastlock_pincontrol_enable), the function needs to be called before then the pin-control can be used.
| phy | The AD9361 state structure. |
| profile | The profile number (0 - 7). Accepted values: 0 - 7 |
| int32_t ad9361_tx_fastlock_save | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | profile, | ||
| uint8_t * | values ) |
Save TX fastlock profile. In order to use more than 8 Profiles, an existing profile can be read back and stored by the user application.
| phy | The AD9361 state structure. |
| profile | The profile number (0 - 7). Accepted values: 0 - 7 |
| values | Fastlock profile program data. |
| int32_t ad9361_tx_fastlock_store | ( | struct ad9361_rf_phy * | phy, |
| uint32_t | profile ) |
Store TX fastlock profile. To create a profile tune the synthesizer (ad9361_set_tx_lo_freq()) and then call this function specifying the target profile number.
| phy | The AD9361 state structure. |
| profile | The profile number (0 - 7). Accepted values: 0 - 7 |
| int32_t ad9361_tx_lo_powerdown | ( | struct ad9361_rf_phy * | phy, |
| uint8_t | option ) |
Power down the TX Local Oscillator.
| phy | The AD9361 state structure. |
| option | The option (ON, OFF). Accepted values: ON (0) OFF (1) |
|
extern |