551 lines
25 KiB
C
Executable File
551 lines
25 KiB
C
Executable File
/**
|
|
* \file talise_rx.h
|
|
* \brief Contains Talise receive related function prototypes for
|
|
* talise_rx.c
|
|
*
|
|
* Talise API version: 3.5.0.2
|
|
*
|
|
* Copyright 2015-2017 Analog Devices Inc.
|
|
* Released under the AD9378-AD9379 API license, for more information see the "LICENSE.txt" file in this zip file.
|
|
*/
|
|
|
|
#ifndef TALISE_RX_H_
|
|
#define TALISE_RX_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "talise_types.h"
|
|
#include "talise_rx_types.h"
|
|
#include "talise_error_types.h"
|
|
|
|
/****************************************************************************
|
|
* Initialization functions
|
|
****************************************************************************
|
|
*/
|
|
|
|
/**
|
|
* \brief Programs the gain table settings for either Rx1, Rx2, Rx1 + Rx2
|
|
* receiver types
|
|
*
|
|
* The gain table for a receiver type is set with the parameters passed by
|
|
* taliseRxGainTable_t gainTablePtr array. The array length (n) is dependent
|
|
* upon receiver type. The (n) value is conveyed by numGainIndexesInTable.
|
|
* All gain tables have a maximum index and a minimum index specified by
|
|
* MAX_RX_GAIN_TABLE_NUMINDEXES and MIN_RX_GAIN_TABLE_INDEX
|
|
* The minimum gain index is application dependent, this can be modified
|
|
* in the user space, the absolute maximum and minimum indexes are specified
|
|
* by MAX_GAIN_TABLE_INDEX and MIN_GAIN_TABLE_INDEX
|
|
*
|
|
* The Rx max gain index is always normalized to index 255. The
|
|
* gain index to use in the setRxGain function expects 255 for max gain and
|
|
* will automatically be offset to set the correct gain index based on the
|
|
* MAX_RX_GAIN_TABLE_NUMINDEXES macro.
|
|
*
|
|
* \pre This function called automatically in TALISE_initialize() to load
|
|
* the default gain table. If the BBIC desires to change or update the
|
|
* gain table, it may call this function after initialization but before
|
|
* running init cals.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->devHalInfo}
|
|
* \dep{device->devStateInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Structure pointer to the Talise device data structure
|
|
* \param gainTablePtr containing gain table program values
|
|
* \param numGainIndexesInTable The number of 'n' indices in array. A range
|
|
* check is performed to ensure the maximum is not exceeded.
|
|
* \param rxChannel taliseRxChannels_t enum type to select either Rx1, Rx2,
|
|
* Rx1 + Rx2 gain table for programming. A channel check is performed to
|
|
* ensure a valid selection.
|
|
*
|
|
* \pre This function can be called by the user to load a custom gain table or
|
|
* to reconfigure the gain table
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Recovery action for bad parameter check
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_programRxGainTable(taliseDevice_t *device, taliseRxGainTable_t *gainTablePtr, uint8_t numGainIndexesInTable, taliseRxChannels_t rxChannel);
|
|
|
|
/**
|
|
* \brief Programs the gain table settings for either ORx1, ORx2, ORx1 + ORx2
|
|
* receiver types
|
|
*
|
|
* * The gain table for a receiver type is set with the parameters passed by
|
|
* taliseOrxGainTable_t gainTablePtr array. The array length (n) is dependent
|
|
* upon receiver type. The (n) value is conveyed by numGainIndexesInTable.
|
|
* All gain tables have a maximum index and a minimum index specified by
|
|
* MAX_ORX_GAIN_TABLE_NUMINDEXES and MIN_ORX_GAIN_TABLE_INDEX
|
|
* The minimum gain index is application dependent, this can be modified in
|
|
* the user space, the absolute maximum and minimum indexes are specified by:
|
|
* MAX_GAIN_TABLE_INDEX and MIN_GAIN_TABLE_INDEX
|
|
*
|
|
* The ORx max gain index is always normalized to index 255. The
|
|
* gain index to use in the setRxGain function expects 255 for max gain and
|
|
* will automatically be offset to set the correct gain index based on the
|
|
* MAX_ORX_GAIN_TABLE_NUMINDEXES macro.
|
|
*
|
|
* \pre This function called automatically in TALISE_initialize() to load
|
|
* the default gain table. If the BBIC desires to change or update the
|
|
* gain table, it may call this function after initialization but before
|
|
* running init cals.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->devHalInfo}
|
|
* \dep{device->devStateInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Structure pointer to the Talise device data structure
|
|
* \param gainTablePtr Pointer to array of ORx gain table structures.
|
|
* \param numGainIndexesInTable The number of 'n' indices in gainTablePtr array. A range
|
|
* check is performed to ensure the maximum is not exceeded.
|
|
* \param orxChannel taliseObsRxChannels_t enum type to select either ORx1, ORx2,
|
|
* ORx1 + ORx2 gain table for programming. A channel check is performed to
|
|
* ensure a valid selection.
|
|
*
|
|
* \pre This function can be called by the user to load a custom gain table or
|
|
* to reconfigure the gain table
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Recovery action for bad parameter check
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_programOrxGainTable(taliseDevice_t *device, taliseOrxGainTable_t *gainTablePtr, uint8_t numGainIndexesInTable, taliseObsRxChannels_t orxChannel);
|
|
|
|
|
|
/****************************************************************************
|
|
* Runtime functions
|
|
****************************************************************************
|
|
*/
|
|
/**
|
|
* \brief Sets the Rx1 or Rx2 Manual Gain Index
|
|
*
|
|
* If the value passed in the gainIndex parameter is within range of the gain
|
|
* table minimum and maximum indexes, the Rx1/Rx2 gain index will be written
|
|
* to the transceiver. Else, an error will be returned. The maximum index is 255
|
|
* and the minimum index is application specific.
|
|
*
|
|
* \pre This function may be called any time after device initialization
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->devHalInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the Talise device data structure
|
|
* \param rxChannel Selects the channel (Rx1 or Rx2) to update the gainIndex
|
|
* \param gainIndex Desired Rx1 or Rx2 gain index depending on rxChannel parameter
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Recovery action for bad parameter check
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_setRxManualGain(taliseDevice_t *device, taliseRxChannels_t rxChannel, uint8_t gainIndex);
|
|
|
|
/**
|
|
* \brief Reads the Rx AGC/MGC Gain Index for the passed channel
|
|
*
|
|
* This function reads the gain index for the passed channel, Rx1, Rx2.
|
|
*
|
|
* This function reads back the AGC gain index or manual gain
|
|
* index per channel, depending on the gain control mode.
|
|
*
|
|
* \pre This function may be called any time after device initialization
|
|
* and the ARM processor has moved to Radio ON state at least once.
|
|
* However, gain indices are tracked only after the device goes into a
|
|
* Receiver mode. So the function will return a TALACT_ERR_CHECK_PARAM
|
|
* recovery action if used before the part enters the receiver mode for
|
|
* the first time since there is no gain index history available.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->halDevInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the Talise data structure
|
|
* \param rxChannel Channel selection to read back gain index for (Valid Rx1, Rx2 only)
|
|
* \param rxGainIndex Pointer to the specified channel gain index value
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Recovery action for bad parameter check
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_getRxGain(taliseDevice_t *device, taliseRxChannels_t rxChannel, uint8_t *rxGainIndex);
|
|
|
|
/**
|
|
* \brief Sets the ORx gain of the ObsRx channel
|
|
*
|
|
* The ObsRx channel can have different RF inputs (ORx1/ORx2)
|
|
* This function sets the ObsRx gain index independently for ORx1/ORx2.
|
|
* The maximum index is 255 and the minimum index is application specific.
|
|
*
|
|
* \pre This function may be called any time after device initialization
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->devHalInfo}
|
|
* \dep_end
|
|
|
|
* \param device Pointer to the Talise device data structure
|
|
* \param obsRxCh is an enum type taliseObsRxChannels_t to identify the desired RF input for gain change
|
|
* \param gainIndex Desired manual gain table index to set
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Recovery action for bad parameter check
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_setObsRxManualGain(taliseDevice_t *device, taliseObsRxChannels_t obsRxCh, uint8_t gainIndex);
|
|
|
|
/**
|
|
* \brief Reads the MGC gain index for the passed Obs Rx channel.
|
|
*
|
|
* This function reads the gain index for the passed channel, ORx1 or
|
|
* ORx2.
|
|
*
|
|
* This function reads back the manual gain
|
|
* index per channel, depending on the gain control mode.
|
|
*
|
|
* \pre This function may be called any time after device initialization.
|
|
* However, gain indices are tracked only after the device goes into a
|
|
* Receiver mode. So the function will return a TALACT_ERR_CHECK_PARAM
|
|
* recovery action if used before the part enters the receiver mode for
|
|
* the first time since there is no gain index history available.
|
|
*
|
|
* \pre This function may be called any time after device initialization
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->halDevInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the Talise data structure
|
|
* \param obsRxChannel Channel selection to read back gain index for (Valid TAL_ORX1 or TAL_ORX2 only)
|
|
* \param obsRxGainIndex Read back gain index is returned to this pointer address.
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Recovery action for bad parameter check
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_getObsRxGain(taliseDevice_t *device, taliseObsRxChannels_t obsRxChannel, uint8_t *obsRxGainIndex);
|
|
|
|
/**
|
|
* \brief Configures the Rx gain control mode
|
|
*
|
|
* The Talise device defaults to Manual Gain Control (MGC) mode on power-up.
|
|
* This API is used to reconfigure the Rx Gain Control Mode.
|
|
*
|
|
* \pre This function should be called before Rx operation is initiated.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->devHalInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the Talise device data structure
|
|
* \param mode Desired gain mode to be configured. Parameter is of enumerated type taliseGainMode_t where:
|
|
* Manual Gain = MGC,
|
|
* Automatic Gain Control Fast Attack = AGCFAST,
|
|
* Automatic Gain Control Slow loop = AGCSLOW ,
|
|
* Hybrid mode = HYBRID
|
|
*
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Recovery action for bad parameter check
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_setRxGainControlMode(taliseDevice_t *device, taliseGainMode_t mode);
|
|
|
|
/**
|
|
* \brief Sets the Rx Data format to integer or floating point format.
|
|
*
|
|
* The function allows selecting the Rx data format (integer or floating point)
|
|
* and allows configuring the various data formatting options. If
|
|
* this function is not called, the Talise defaults to integer format.
|
|
* The floating point format can be set for one of several 16 bit floating
|
|
* point formats. The user can select the number of exponent and significand
|
|
* bits. It is not possible to represent every possible sample value with
|
|
* 16bit floating point format. When using integer formatting, the number of slicer
|
|
* bits as well as their position in the data word are selectable. The GPIO bits are
|
|
* also user selectable for external slicer control mode.
|
|
*
|
|
* The Talise data formatting should be used in conjunction with the
|
|
* gain compensation feature.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->halDevInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the device settings structure
|
|
* \param rxDataFormat Pointer to the Rx data format configuration structure
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Invalid parameter passed
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_setRxDataFormat (taliseDevice_t *device, taliseRxDataFormat_t *rxDataFormat);
|
|
|
|
/**
|
|
* \brief Retreive the Rx data path format configuration.
|
|
*
|
|
* Use this command to retrieve the Rx data path data formatting configuration
|
|
* set by the TALISE_setRxDataFormat function.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->halDevInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the device settings structure
|
|
* \param rxDataFormat Pointer to the Rx data format configuration structure
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Invalid parameter passed
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_getRxDataFormat(taliseDevice_t *device, taliseRxDataFormat_t *rxDataFormat);
|
|
|
|
|
|
/**
|
|
* \brief Get the gain slicer position bits for both Rx1 and Rx2.
|
|
*
|
|
* Before this information is valid, the Rx gain compensation feature should be enabled with
|
|
* the integer gain slicer sample format enabled. See the Talise.SetRxDataFormat() function
|
|
* to enable gain compensation. This function is not useful in the case of using floating point
|
|
* as the gain slicer (data scaling) is applied in the floating point scaled sample.
|
|
*
|
|
* The slicer position is only needed for integer 12bit and 16bit formats. The 24bit sample format
|
|
* already applies scaling in the 24bit sample.
|
|
*
|
|
* Slicer Position[2:0] | Description
|
|
* ---------------------|---------------------------------------------
|
|
* 0 | 0dB gain
|
|
* 1 | Rx Data samples should be scaled by +6dB
|
|
* 2 | Rx Data samples should be scaled by +12dB
|
|
* 3 | Rx Data samples should be scaled by +18dB
|
|
* 4 | Rx Data samples should be scaled by +24dB
|
|
* 5 | Rx Data samples should be scaled by +30dB
|
|
* 6 | Rx Data samples should be scaled by +36dB
|
|
* 7 | Rx Data samples should be scaled by +42dB
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->halDevInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the device settings structure
|
|
* \param rx1SlicerPosition Pointer to byte containing 3 slicer position bits for Rx1.
|
|
* \param rx2SlicerPosition Pointer to byte containing 3 slicer position bits for Rx2.
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Invalid parameter passed
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_getSlicerPosition(taliseDevice_t *device, uint8_t *rx1SlicerPosition, uint8_t *rx2SlicerPosition);
|
|
|
|
/**
|
|
* \brief Configures Gain steps and the GPIO inputs for Manual Rx gain control
|
|
*
|
|
* This API function configures the GPIO input pin and step size to allow the
|
|
* BBP to control gain changes in Rx signal chain.
|
|
* A high pulse on the 'rxGainIncPin' in pin control mode will increment the
|
|
* gain by the value set in 'incStep'.
|
|
* A high pulse on the 'rxGainDecPin' in pin control mode will decrement the
|
|
* gain by the value set in 'decStep'.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->halDevInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the device settings structure
|
|
*
|
|
* \param rxChannel taliseRxChannels_t enum type to select either Rx1 or Rx2
|
|
* channel for programming.
|
|
*
|
|
* \param rxGainCtrlPin Pointer to taliseRxGainCtrlPin_t structure that
|
|
* configures the Manual Rx gain pin control.
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Invalid parameter passed
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_setRxGainCtrlPin(taliseDevice_t *device, taliseRxChannels_t rxChannel, taliseRxGainCtrlPin_t *rxGainCtrlPin);
|
|
|
|
/**
|
|
* \brief This API function returns the configuration (Gain steps and the GPIO
|
|
* inputs) for Manual Rx gain control.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->halDevInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the device settings structure
|
|
*
|
|
* \param rxChannel taliseRxChannels_t enum type to select either Rx1 or Rx2
|
|
* channel for reading configuration from.
|
|
*
|
|
* \param rxGainCtrlPin Pointer to taliseRxGainCtrlPin_t structure that
|
|
* would contain configuration values for Manual Rx gain pin control.
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Invalid parameter passed
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_getRxGainCtrlPin(taliseDevice_t *device, taliseRxChannels_t rxChannel, taliseRxGainCtrlPin_t *rxGainCtrlPin);
|
|
|
|
/**
|
|
* \brief This private helper function sets the Dual band datapath configuration.
|
|
*
|
|
* The dualband mode of operation allows the wideband receiver to receive two
|
|
* adjacent bands, split them into individual paths, filter (decimation), and
|
|
* pack them together or send them out on the JESD as separate converter data.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->halDevInfo}
|
|
* \dep{device->devStateInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the device settings structure
|
|
* \param init Pointer to the NCO Shifter Configuration settings.
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Invalid parameter passed
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
talRecoveryActions_t talSetDualBandSettings(taliseDevice_t *device, taliseInit_t *init);
|
|
|
|
/**
|
|
* \brief Programs the Dualband external LNA control gain table settings for
|
|
* either Rx1, Rx2, Rx1 + Rx2 receiver types
|
|
*
|
|
* The gain table for a receiver type is set with the parameters passed by
|
|
* taliseDualBandLnaGainTable_t gainTablePtr array. The array length (n) is
|
|
* conveyed by numGainIndexesInTable. The table can have a maximum of 4
|
|
* entries. The first entry in the array corresponds to entry 0, second to
|
|
* entry 1, and so on.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->devHalInfo}
|
|
* \dep{device->devStateInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Structure pointer to the Talise device data structure
|
|
* \param gainTablePtr Pointer to Dual Band LNA gain table array of taliseDualBandLnaGainTable_t structures
|
|
* \param numGainIndexesInTable The number of 'n' indices in gainTablePtr array. A range
|
|
* check is performed to ensure the maximum (4) is not exceeded.
|
|
* \param rxChannel taliseRxChannels_t enum type to select either Rx1, Rx2,
|
|
* Rx1 + Rx2 gain table for programming. A channel check is performed to
|
|
* ensure a valid selection.
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Recovery action for bad parameter check
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_programDualBandLnaGainTable( taliseDevice_t *device, taliseDualBandLnaGainTable_t *gainTablePtr, uint8_t numGainIndexesInTable, taliseRxChannels_t rxChannel);
|
|
|
|
/**
|
|
* \brief Private function sets the configuration for Low IF to Zero IF mode used only by
|
|
* Talise_initialize(). Application should set the init structure prior to calling
|
|
* Talise_initialize().
|
|
*
|
|
* This mode allows the receiver to downconvert the signal to Low IF, and then
|
|
* shift it to zero IF using the NCO. The user provides the center frequency
|
|
* of the downconverted low IF band to the API, and the API programs the NCO
|
|
* to shift the center frequency of the band to zero.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->halDevInfo}
|
|
* \dep{device->devStateInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the device settings structure
|
|
* \param init Pointer to the NCO Shifter Configuration settings.
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Invalid parameter passed
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
talRecoveryActions_t talSetupNcoShifter(taliseDevice_t *device, taliseInit_t *init);
|
|
|
|
/**
|
|
* \brief Programs the GPIOs to output external control word of the current gain index
|
|
*
|
|
* External Control Word is a 4 bit data which is unique for each gain index. It is
|
|
* unique for channels Rx1 and Rx2. External control word corresponding to the current
|
|
* gain index can be output on 3.3V GPIO[3:0] for Rx1 and 3.3V GPIO[7:4] for Rx2.
|
|
* This API configures the corresponding GPIOs as output based on the rxChannel parameter
|
|
* to output the external control word.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->devStateInfo}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the device settings structure
|
|
* \param rxChannel taliseRxChannels_t enum type to select either Rx1, Rx2,
|
|
* Rx1 + Rx2 gain table external control word to be output on GPIOs
|
|
* \param enable3p3vGpios 1=enable output of Rx Gain table external control words on 3.3v GPIOs or 0=disable
|
|
* output of external control words on GPIOs.
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG Recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM Invalid parameter passed
|
|
* \retval TALACT_ERR_RESET_SPI Recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION Function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_setGainTableExtCtrlPins(taliseDevice_t *device, taliseRxChannels_t rxChannel, uint8_t enable3p3vGpios);
|
|
|
|
/**
|
|
* \brief Performs a power measurement in the Rx digital data path for the channel specified.
|
|
*
|
|
* Due to interdependencies between the AGC and power measurement the power measurement duration and
|
|
* where the measurement is taken is variable. Call TALISE_setupRxAgc() to configure power measurement.
|
|
* The location of the power measurement is given by rxAgcCtrl->agcPower->[powerUseRfirOut/powerUseBBDC2].
|
|
* The number of samples the power measurement uses is given by 8*2^(rxAgcCtrl->agcPower->powerMeasurementDuration) at the IQ rate,
|
|
* if measured at RFIR output. This number of samples must be less than the agcGainUpdateCounter.
|
|
* If the receiver is disabled during the power measurement, this function returns a 0 value for rx1DecPower_mdBFS
|
|
*
|
|
* The resolution of this function is 0.25dB.
|
|
* When the measurement location is HB2 (i.e., powerUseRfirOut == powerUseBBDC2 == 0) the dynamic range of this function is 40dB.
|
|
* Signals lower than -40dBFS may not be measured accurately. When measuring from RfirOut or BBDC2, the dynamic range of this
|
|
* function is 60dB. Signals lower than -60 dBFS may not be measured accurately.
|
|
*
|
|
* \dep_begin
|
|
* \dep{device->devHalInfo}
|
|
* \dep{rxAgcCtrl->agcPower}
|
|
* \dep_end
|
|
*
|
|
* \param device Pointer to the Talise data structure containing settings
|
|
* \param rxChannel taliseRxChannels_t enum type to select either Rx1 or Rx2
|
|
* \param rxDecPower_mdBFS Pointer to store the Rx decimated power return. Value returned in mdBFS
|
|
*
|
|
* \retval TALACT_WARN_RESET_LOG recovery action for log reset
|
|
* \retval TALACT_ERR_CHECK_PARAM recovery action for bad parameter check
|
|
* \retval TALACT_ERR_RESET_SPI recovery action for SPI reset required
|
|
* \retval TALACT_NO_ACTION function completed successfully, no action required
|
|
*/
|
|
uint32_t TALISE_getRxDecPower(taliseDevice_t *device, taliseRxChannels_t rxChannel, uint16_t *rxDecPower_mdBFS);
|
|
|
|
/****************************************************************************
|
|
* Helper functions
|
|
****************************************************************************
|
|
*/
|
|
|
|
/****************************************************************************
|
|
* Debug functions
|
|
****************************************************************************
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* TALISE_RX_H_ */
|