|
Radio Control Layer (RCL)
|
#include <stdint.h>#include <stdlib.h>#include <ti/drivers/rcl/LRF.h>#include <ti/drivers/rcl/RCL_Scheduler.h>#include <ti/drivers/rcl/RCL_Command.h>#include <ti/drivers/rcl/RCL_Feature.h>#include <ti/log/Log.h>#include <ti/drivers/dpl/HwiP.h>#include <ti/devices/DeviceFamily.h>
Include dependency graph for LRFCC23X0.c:Functions | |
| static uint32_t | LRF_findPllMBase (uint32_t frequency) |
| static uint32_t | countLeadingZeros (uint16_t value) |
| static uint32_t | LRF_findCalM (uint32_t frequency, uint32_t prediv) |
| static uint32_t | LRF_findFoff (int32_t frequencyOffset, uint32_t invSynthFreq) |
| static void | LRF_programShape (const LRF_TxShape *txShape, uint32_t deviation, uint32_t invSynthFreq) |
| static uint32_t | LRF_findLog2Bde1 (uint32_t demmisc3) |
| static uint32_t | LRF_programPQ (uint32_t pllMBase) |
| static void | LRF_programCMixN (int32_t rxIntFrequency, uint32_t invSynthFreq) |
| static void | LRF_applyTrim (const LRF_TrimDef *trimDef, const LRF_SwConfig *swConfig) |
| static void | LRF_updateTrim (const LRF_TrimDef *trimDef, const LRF_SwConfig *swConfig) |
| static void | LRF_setTrimCommon (const LRF_TrimDef *trimDef, const LRF_SwConfig *swConfig) |
| static void | LRF_setTemperatureTrim (const LRF_TrimDef *trimDef) |
| static void | LRF_temperatureCompensateTrim (const LRF_TrimDef *trimDef) |
| static void | LRF_temperatureCompensateDcoldo (int32_t temperature, const LRF_TrimDef *trimDef) |
| static uint32_t | LRF_findExtTrim1TrimAdjustment (uint32_t temperatureDiff, uint32_t tempThreshFactor, uint32_t maxAdjustment) |
| static int32_t | LRF_findExtTrim0TrimAdjustment (int32_t temperature, int32_t tempCompFactor, int32_t offset) |
| static uint32_t | LRF_scaleFreqWithHFXTOffset (uint32_t frequency) |
| static void | LRF_writeFifoPtr (uint32_t value, uintptr_t regAddr) |
| static void | LRF_writeFifoPtrs (uint32_t value, uintptr_t regAddr0, uintptr_t regAddr1) |
| static void | LRF_temperatureNotification (int16_t currentTemperature) |
| static void | LRF_applyAntennaSelection (void) |
| const LRF_CoexConfiguration lrfCoexConfiguration | __attribute__ ((weak)) |
| bool | LRF_imagesNeedUpdate (const LRF_Config *lrfConfig) |
| void | LRF_enable (void) |
| void | LRF_disable (void) |
| void | LRF_waitForTopsmReady (void) |
| uint32_t | LRF_prepareRxFifo (void) |
| uint32_t | LRF_prepareTxFifo (void) |
| uint32_t | LRF_peekRxFifo (int32_t offset) |
| uint32_t | LRF_peekTxFifo (int32_t offset) |
| uint8_t * | LRF_getTxFifoWrAddr (int32_t offset) |
| void | LRF_skipTxFifoWords (uint32_t wordLength) |
| void | LRF_discardRxFifoWords (uint32_t wordLength) |
| void | LRF_readRxFifoWords (uint32_t *data32, uint32_t wordLength) |
| void | LRF_writeTxFifoWords (const uint32_t *data32, uint32_t wordLength) |
| void | LRF_setRxFifoEffSz (uint32_t maxSz) |
| void | LRF_peekRxFifoWords (uint32_t *data32, uint32_t wordLength, uint32_t startRp) |
| uint32_t | LRF_getUncommittedFifoStatus (uint32_t *currentRp) |
| void | LRF_programFrequency (uint32_t frequency, bool tx) |
| uint32_t | LRF_enableSynthRefsys (void) |
| void | LRF_disableSynthRefsys (void) |
| void | LRF_rclEnableRadioClocks (void) |
| void | LRF_rclDisableRadioClocks (void) |
| int8_t | LRF_readRssi (void) |
| int8_t | LRF_readMaxRssi (void) |
| Reads maximum RSSI from register. More... | |
| void | LRF_initializeMaxRssi (int8_t initRssi) |
| Initialize maximum RSSI register. More... | |
| void | LRF_setRawTxPower (uint32_t value, uint32_t temperatureCoefficient) |
| LRF_TxPowerTable_Entry | LRF_getRawTxPower (void) |
| void | LRF_enableCoexGrant (void) |
| Enable monitoring of coexistence grant signal in RFE. More... | |
| void | LRF_disableCoexGrant (void) |
| Disable monitoring of coexistence grant signal in RFE. More... | |
| void | LRF_deassertCoexRequest (void) |
| Deassert coexistence REQUEST. More... | |
| void | LRF_programTemperatureCompensatedTxPower (void) |
| Programs current TX power setting in radio with temperature compensation. More... | |
| LRF_TxPowerResult | LRF_programTxPower (LRF_TxPowerTable_Index powerLevel, uint32_t rfFreq) |
| Finds settings corresponding to the highest tx power lower than the specified value in the tx power table and programs it in the radio. More... | |
| void | LRF_enableTemperatureMonitoring (void) |
| Enable temperature monitoring to allow handlers to update temperature compensation. More... | |
| void | LRF_disableTemperatureMonitoring (void) |
| Disable temperature monitoring. More... | |
| void | LRF_updateTemperatureCompensation (uint32_t rfFrequency, bool tx) |
| Update temperature compensation in radio. More... | |
| int16_t | LRF_getLastTrimTemperature (void) |
| Get temperature used in last setting of trims. More... | |
| void | LRF_setAntennaSelection (uint32_t value) |
| Set the default antenna to be used during the next radio configuration. More... | |
Variables | |
| uint32_t | swParamList [sizeof(LRF_SwParam)/sizeof(uint32_t)] |
| const size_t | swParamListSz = sizeof(LRF_SwParam) |
| struct { | |
| const LRF_TOPsmImage * | pbeLoaded |
| const LRF_TOPsmImage * | mceLoaded |
| const LRF_TOPsmImage * | rfeLoaded |
| uint16_t | phyFeatures |
| int16_t | lastTrimTemperature |
| LRF_TxPowerTable_Entry | currentTxPower |
| LRF_TxPowerTable_Entry | rawTxPower |
| } | lrfPhyState = {0} |
| static bool | rxFifoDeallocated = true |
| uint16_t | rclTemperatureThreshold = 8 |
| LRF_DoubleWord | fXtalInv |
| #define LRF_TRIM_NORMAL_BW 0 |
| #define LRF_TRIM_HIGH_BW 1 /* Revision >= 4 only */s |
| #define LRF_TRIM_MIN_VERSION_FULL_FEATURES 4 /* Only AppTrims revision 4 and above has all features */ |
Referenced by LRF_setTrimCommon(), and LRF_temperatureCompensateTrim().
| #define LRF_TRIM_VERSION_DCOLDO_TEMPERATURE_COMPENSATION 8 /* Only AppTrims revision 8 and above have DCOLDO temperature compensation */ |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_TRIM_VERSION_RSSIOFFSET_ISSUE_CC23X0R5 4 /* AppTrims revision with issue in rssiOffset field */ |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_TRIM_LIMIT_RSSIOFFSET_ISSUE_CC23X0R5 (-4) /* If rssiOffset is less or equal to this, apply correction */ |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_TRIM_CORRECTION_RSSIOFFSET_ISSUE_CC23X0R5 5 /* Correction to apply to devices with wrong RSSI offset */ |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_TRIM_DCOLDO0_SECONDTRIM_INC_STATE_B_DCOLDO_WORKAROUND_CC27XX 10U /* DCOLDO0:SECONDTRIM needs to be increased by 10 on CC27XX state B devices */ |
| #define LRF_TRIM_DCOLDO0_SECONDTRIM_CODED_BITS_MASK ((1U << 3U) | (1U << 5U)) /* Bits mask for bit 3 and 5 of DCOLDO0:SECONDTRIM */ |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_TRIM_DCOLDO0_SECONDTRIM_MAX_STATE 63U /* DCOLDO0:SECONDTRIM maximum value allowed within the range of 6-bit representation */ |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_TRIM_DCOLDO0_FIRSTTRIM_MIN_STATE -8 /* DCOLDO0:FIRSTTRIM minimum value allowed within the range of 4-bit two's complement representation */ |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDOSECOND_HIGH_TEMP_ADJ_FACTOR 5 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDOSECOND_LOW_TEMP_ADJ_FACTOR 5 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDO_DEADBAND 10 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDO_OFFSET_LOWER_SATURATION 0 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDOFIRST_HIGH_TEMP_ADJ_FACTOR_S 1 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDOFIRST_HIGH_TEMP_ADJ_FACTOR_MUL 5 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDOFIRST_LOW_TEMP_ADJ_FACTOR_S 1 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDOFIRST_LOW_TEMP_ADJ_FACTOR_MUL 5 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDOSECOND_FACTOR 2 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define DIV_BY_NINE_CONSTANT 1864135 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDO_OFFSET_HIGH_TEMP 16 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDO_OFFSET_LOW_TEMP 9 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDO_SHIFT_HIGH_TEMP 5 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_DCOLDO_SHIFT_LOW_TEMP 25 |
Referenced by LRF_temperatureCompensateDcoldo().
| #define LRF_TEMPERATURE_NOM 25 |
Referenced by LRF_findExtTrim0TrimAdjustment(), and LRF_temperatureCompensateDcoldo().
| #define LRF_DCDC_IPEAK_RF_ACTIVITY 3 |
Referenced by LRF_enable().
| #define LRF_PBE_GPOCTRL_MASK 0xFF |
Referenced by LRF_setAntennaSelection().
| #define LRF_CC27XX_RFE_SPARE5_PA_20DBM_ESD_CTRL_SET ((uint32_t)(0x1 << 14U)) |
Referenced by LRF_applyAntennaSelection().
| #define LRF_CC27XX_PA_ESD_PROTECTION_VDDS_THRESHOLD_MV ((uint16_t)3635) |
Referenced by LRF_applyAntennaSelection().
| #define LRF_CC27XX_HIGH_PA_MODE ((uint16_t)0x3) |
Referenced by LRF_applyAntennaSelection(), and LRF_programTemperatureCompensatedTxPower().
| #define LRF_CC27XX_RETRIEVE_PA_MODE_FROM_RAW_VALUE | ( | txPowerRawValue | ) | (((uint16_t)(txPowerRawValue) >> 11) & 0x3) |
Referenced by LRF_applyAntennaSelection(), and LRF_programTemperatureCompensatedTxPower().
| #define LRF_CC27XX_RFE_SPARE5_RTRIM_TX_COMP_BITMASK ((uint32_t)(0x1 << 13U)) |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_TRIM_SIGN_MAG_TO_SIGNED | ( | x | ) | (int8_t)(((x & 0x8) ? -(x & 0x7) : (x & 0x7))) |
Referenced by LRF_programTemperatureCompensatedTxPower(), and LRF_programTxPower().
| #define LRF_TxPower_Use_Vdds_Comp ((LRF_TxPowerTable_Index){.fraction = 0, .dBm = 18}) |
Referenced by LRF_programTxPower().
| #define LRF_CC27XX_VDDS_THRESHOLD_0 ((uint16_t)2850) |
Referenced by LRF_programTxPower().
| #define LRF_CC27XX_VDDS_THRESHOLD_1 ((uint16_t)3150) |
Referenced by LRF_programTxPower().
| #define LRF_CC27XX_VDDS_THRESHOLD_2 ((uint16_t)3450) |
Referenced by LRF_programTxPower().
| #define LRF_CC27XX_SCALE_TEMP_COEFF 1024 |
Referenced by LRF_programTxPower().
| #define LRF_CC27XX_NOM_TEMP_FACTOR 16 /* Resolution in FCFG field is 16 degrees/LSB, covering a range from -96 C to 112 C */ |
Referenced by LRF_programTxPower().
| #define LRF_TxPower_Min_Temp_Coeff_Comp ((LRF_TxPowerTable_Index){.fraction = 0, .dBm = 4}) |
Referenced by LRF_programTxPower().
| #define LRF_TxPower_Max_Temp_Coeff_Comp ((LRF_TxPowerTable_Index){.fraction = 0, .dBm = 20}) |
Referenced by LRF_programTxPower().
| #define LRF_REFSYS_ENABLE_TIME RCL_SCHEDULER_SYSTIM_US(30) |
Referenced by LRF_enableSynthRefsys().
| #define LRF_EXTTRIM1_TEMPERATURE_SCALE_EXP 4U |
Referenced by LRF_findExtTrim1TrimAdjustment(), and LRF_temperatureCompensateTrim().
| #define LRF_DIVLDO_LOW_TEMP_ADJ_FACTOR 10U |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_DIVLDO_HIGH_TEMP_ADJ_FACTOR 10U |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_TDCLDO_LOW_TEMP_ADJ_FACTOR 10U |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_TDCLDO_HIGH_TEMP_ADJ_FACTOR 10U |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_RTRIM_LOW_TEMP_ADJ_FACTOR 1U |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_RTRIM_HIGH_TEMP_ADJ_FACTOR 1U |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_DEFAULT_RTRIM_MAX 12U |
Referenced by LRF_programTemperatureCompensatedTxPower(), and LRF_temperatureCompensateTrim().
| #define LRF_EXTTRIM0_TEMPERATURE_SCALE_EXP 7 |
Referenced by LRF_findExtTrim0TrimAdjustment().
| #define LRF_TEMPERATURE_MIN (-40) |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_TEMPERATURE_MAX 125 |
Referenced by LRF_temperatureCompensateTrim().
| #define RFE_SPARE0_LOW_GAIN_BM 0x000F |
Referenced by LRF_temperatureCompensateTrim().
| #define RFE_SPARE0_LOW_GAIN 0 |
Referenced by LRF_temperatureCompensateTrim().
| #define RFE_SPARE0_HIGH_GAIN_BM 0x00F0 |
Referenced by LRF_temperatureCompensateTrim().
| #define RFE_SPARE0_HIGH_GAIN 4 |
Referenced by LRF_temperatureCompensateTrim().
| #define RFE_SPARE1_AGC_VALUE_BM 0x000FF |
Referenced by LRF_temperatureCompensateTrim().
| #define RFE_SPARE1_AGC_VALUE 0 |
Referenced by LRF_temperatureCompensateTrim().
| #define LRF_ONE_THIRD_MANTISSA 21845U /* (round(1/3 * 2^16)) */ |
Referenced by LRF_findExtTrim1TrimAdjustment().
| #define LRF_ONE_THIRD_NEG_EXP 16 |
Referenced by LRF_findExtTrim1TrimAdjustment().
| #define FXTALINVL 0x00001E52U |
| #define FXTALINVH 0x02CBD3F0U |
| #define NUM_TX_FILTER_TAPS 24 |
Referenced by LRF_programShape().
| #define P_FACTOR 9 |
Referenced by LRF_programPQ().
| #define P_SHIFT 4 |
Referenced by LRF_programPQ().
| #define Q_MAGN_SHIFT 6 |
Referenced by LRF_programPQ().
| #define FRAC_NUM_BITS 28 |
| #define FRAC_EXTRA_BITS (32 - FRAC_NUM_BITS) |
Referenced by LRF_programPQ().
| #define RFE_PA0_IB_MIN_USED 1 |
Referenced by LRF_programTemperatureCompensatedTxPower().
|
static |
References LRF_DoubleWord::word.
Referenced by LRF_programFrequency().
|
static |
Referenced by LRF_programPQ(), and LRF_programShape().
|
static |
References LRF_DoubleWord::word.
Referenced by LRF_programFrequency().
|
static |
Referenced by LRF_programFrequency().
|
static |
References LRF_TxShape::coeff, countLeadingZeros(), and NUM_TX_FILTER_TAPS.
Referenced by LRF_programFrequency().
|
static |
Referenced by LRF_programCMixN(), and LRF_programPQ().
|
static |
References countLeadingZeros(), FRAC_EXTRA_BITS, LRF_findLog2Bde1(), P_FACTOR, P_SHIFT, and Q_MAGN_SHIFT.
Referenced by LRF_programFrequency().
|
static |
References LRF_findLog2Bde1().
Referenced by LRF_programFrequency().
|
static |
References LRF_setTrimCommon(), LRF_temperatureCompensateTrim(), LRF_TrimDef::trim0, LRF_TrimDef::trim1, LRF_TrimDef::trim2, and LRF_TrimDef::trim4.
Referenced by __attribute__().
|
static |
References LRF_setTemperatureTrim(), and LRF_setTrimCommon().
Referenced by __attribute__().
|
static |
References LRF_SwConfig::bwIndex, LRF_SwConfig::bwIndexDither, LRF_TRIM_MIN_VERSION_FULL_FEATURES, LRF_TrimDef::revision, LRF_TrimDef::trim4, and LRF_TrimDef::trimVariant.
Referenced by LRF_applyTrim(), and LRF_updateTrim().
|
static |
References LRF_temperatureCompensateTrim().
Referenced by __attribute__(), LRF_updateTemperatureCompensation(), and LRF_updateTrim().
|
static |
References LRF_Trim_tempLdoRtrim::divLdoMaxOffset, LRF_Trim_tempLdoRtrim::divLdoMinOffset, LRF_Trim1::fields, LRF_Trim2::fields, LRF_Trim3::fields, hal_get_temperature(), LRF_CC27XX_RFE_SPARE5_RTRIM_TX_COMP_BITMASK, LRF_DEFAULT_RTRIM_MAX, LRF_DIVLDO_HIGH_TEMP_ADJ_FACTOR, LRF_DIVLDO_LOW_TEMP_ADJ_FACTOR, LRF_EXTTRIM1_TEMPERATURE_SCALE_EXP, LRF_findExtTrim0TrimAdjustment(), LRF_findExtTrim1TrimAdjustment(), LRF_RTRIM_HIGH_TEMP_ADJ_FACTOR, LRF_RTRIM_LOW_TEMP_ADJ_FACTOR, LRF_TDCLDO_HIGH_TEMP_ADJ_FACTOR, LRF_TDCLDO_LOW_TEMP_ADJ_FACTOR, LRF_TEMPERATURE_MAX, LRF_TEMPERATURE_MIN, LRF_temperatureCompensateDcoldo(), LRF_TRIM_CORRECTION_RSSIOFFSET_ISSUE_CC23X0R5, LRF_TRIM_LIMIT_RSSIOFFSET_ISSUE_CC23X0R5, LRF_TRIM_MIN_VERSION_FULL_FEATURES, LRF_TRIM_VERSION_RSSIOFFSET_ISSUE_CC23X0R5, lrfPhyState, LRF_TrimDef::revision, RFE_SPARE0_HIGH_GAIN, RFE_SPARE0_HIGH_GAIN_BM, RFE_SPARE0_LOW_GAIN, RFE_SPARE0_LOW_GAIN_BM, RFE_SPARE1_AGC_VALUE, RFE_SPARE1_AGC_VALUE_BM, LRF_Trim_tempLdoRtrim::rtrimMaxOffset, LRF_Trim_tempLdoRtrim::rtrimMinOffset, LRF_Trim_tempLdoRtrim::tdcLdoMaxOffset, LRF_Trim_tempLdoRtrim::tdcLdoMinOffset, LRF_TrimDef::trim1, LRF_TrimDef::trim2, LRF_TrimDef::trim3, LRF_TrimDef::trim4, LRF_Trim_tempLdoRtrim::tThrh, and LRF_Trim_tempLdoRtrim::tThrl.
Referenced by LRF_applyTrim(), and LRF_setTemperatureTrim().
|
static |
References DIV_BY_NINE_CONSTANT, LRF_Trim3::fields, LRF_DCOLDO_DEADBAND, LRF_DCOLDO_OFFSET_HIGH_TEMP, LRF_DCOLDO_OFFSET_LOW_TEMP, LRF_DCOLDO_OFFSET_LOWER_SATURATION, LRF_DCOLDO_SHIFT_HIGH_TEMP, LRF_DCOLDO_SHIFT_LOW_TEMP, LRF_DCOLDOFIRST_HIGH_TEMP_ADJ_FACTOR_MUL, LRF_DCOLDOFIRST_HIGH_TEMP_ADJ_FACTOR_S, LRF_DCOLDOFIRST_LOW_TEMP_ADJ_FACTOR_MUL, LRF_DCOLDOFIRST_LOW_TEMP_ADJ_FACTOR_S, LRF_DCOLDOSECOND_FACTOR, LRF_DCOLDOSECOND_HIGH_TEMP_ADJ_FACTOR, LRF_DCOLDOSECOND_LOW_TEMP_ADJ_FACTOR, LRF_TEMPERATURE_NOM, LRF_TRIM_DCOLDO0_FIRSTTRIM_MIN_STATE, LRF_TRIM_DCOLDO0_SECONDTRIM_CODED_BITS_MASK, LRF_TRIM_DCOLDO0_SECONDTRIM_MAX_STATE, LRF_TRIM_VERSION_DCOLDO_TEMPERATURE_COMPENSATION, LRF_TrimDef::revision, LRF_TrimDef::trim2, and LRF_TrimDef::trim3.
Referenced by LRF_temperatureCompensateTrim().
|
static |
References LRF_EXTTRIM1_TEMPERATURE_SCALE_EXP, LRF_ONE_THIRD_MANTISSA, and LRF_ONE_THIRD_NEG_EXP.
Referenced by LRF_temperatureCompensateTrim().
|
static |
References LRF_EXTTRIM0_TEMPERATURE_SCALE_EXP, and LRF_TEMPERATURE_NOM.
Referenced by LRF_temperatureCompensateTrim().
|
static |
References hal_get_hfxt_ratio(), and hal_get_hfxt_ratio_default().
Referenced by LRF_programFrequency().
|
static |
Referenced by LRF_readRxFifoWords(), LRF_setRxFifoEffSz(), LRF_skipTxFifoWords(), and LRF_writeTxFifoWords().
|
static |
Referenced by LRF_discardRxFifoWords().
|
static |
References RCL_SchedulerState::currCmd, RCL_EventSilentlyRestartRadio, RCL_Scheduler_postEvent(), and rclSchedulerState.
Referenced by LRF_enableTemperatureMonitoring().
|
static |
| const LRF_CoexConfiguration lrfCoexConfiguration __attribute__ | ( | (weak) | ) |
References LRF_applyAntennaSelection(), LRF_applySettings(), LRF_ApplySettings_IncludeBase, LRF_ApplySettings_NoBase, LRF_applyTrim(), LRF_disableCoexGrant(), LRF_initSettingsState(), LRF_loadImage(), LRF_RSSI_INVALID, LRF_setTemperatureTrim(), LRF_SETTINGS_BUFFER_UNLIMITED, LRF_updateTrim(), lrfPhyState, RadioState_Configured, RadioState_ImagesLoaded, result, SetupResult_ErrorSwConfig, SetupResult_Ok, LRF_SwParam::swConfig, swParamList, and LRF_SwParam::trimDef.
| bool LRF_imagesNeedUpdate | ( | const LRF_Config * | lrfConfig | ) |
References lrfPhyState, LRF_Config::mceImage, LRF_Config::pbeImage, and LRF_Config::rfeImage.
Referenced by LRF_resetSettingsState(), and rclSchedulerHwi().
| void LRF_enable | ( | void | ) |
References hal_set_dcdc_ipeak_setting(), and LRF_DCDC_IPEAK_RF_ACTIVITY.
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_ChannelAssessment(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_periodicAdv(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Ble5_txTest(), RCL_Handler_BLE_CS(), RCL_Handler_BLE_CS_Precal(), RCL_Handler_Generic_Fs(), RCL_Handler_Generic_FsOff(), RCL_Handler_Generic_PbeOperation(), RCL_Handler_Generic_Rx(), RCL_Handler_Generic_Tx(), RCL_Handler_Generic_TxRepeat(), RCL_Handler_Generic_TxTest(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Ieee_TxTest(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
| void LRF_disable | ( | void | ) |
References hal_set_dcdc_ipeak_setting().
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_ChannelAssessment(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_periodicAdv(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Ble5_txTest(), RCL_Handler_BLE_CS(), RCL_Handler_BLE_CS_Precal(), RCL_Handler_Generic_Fs(), RCL_Handler_Generic_FsOff(), RCL_Handler_Generic_PbeOperation(), RCL_Handler_Generic_Rx(), RCL_Handler_Generic_Tx(), RCL_Handler_Generic_TxRepeat(), RCL_Handler_Generic_TxTest(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Ieee_TxTest(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
| void LRF_waitForTopsmReady | ( | void | ) |
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_ChannelAssessment(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_periodicAdv(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Ble5_txTest(), RCL_Handler_BLE_CS(), RCL_Handler_BLE_CS_Precal(), RCL_Handler_Generic_Fs(), RCL_Handler_Generic_FsOff(), RCL_Handler_Generic_PbeOperation(), RCL_Handler_Generic_Rx(), RCL_Handler_Generic_Tx(), RCL_Handler_Generic_TxRepeat(), RCL_Handler_Generic_TxTest(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Ieee_TxTest(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
| uint32_t LRF_prepareRxFifo | ( | void | ) |
References rxFifoDeallocated.
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Generic_Rx(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
| uint32_t LRF_prepareTxFifo | ( | void | ) |
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_periodicAdv(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Generic_Tx(), RCL_Handler_Generic_TxRepeat(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
| uint32_t LRF_peekRxFifo | ( | int32_t | offset | ) |
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Generic_Rx(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
| uint32_t LRF_peekTxFifo | ( | int32_t | offset | ) |
Referenced by LRF_resetSettingsState().
| uint8_t* LRF_getTxFifoWrAddr | ( | int32_t | offset | ) |
References TXF_UNWRAPPED_BASE_ADDR.
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_getAuxPtrFromTxBuffer(), RCL_Handler_BLE5_scan_init(), and RCL_Handler_BLE5_updateTxBuffers().
| void LRF_skipTxFifoWords | ( | uint32_t | wordLength | ) |
References LRF_writeFifoPtr().
Referenced by LRF_resetSettingsState(), and RCL_Handler_BLE5_updateTxBuffers().
| void LRF_discardRxFifoWords | ( | uint32_t | wordLength | ) |
References LRF_writeFifoPtrs(), and rxFifoDeallocated.
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_genericRx(), RCL_Handler_Generic_Rx(), and RCL_Handler_Nesb_Prx().
| void LRF_readRxFifoWords | ( | uint32_t * | data32, |
| uint32_t | wordLength | ||
| ) |
References LRF_writeFifoPtr(), RXF_UNWRAPPED_BASE_ADDR, and rxFifoDeallocated.
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Generic_Rx(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
| void LRF_writeTxFifoWords | ( | const uint32_t * | data32, |
| uint32_t | wordLength | ||
| ) |
| void LRF_setRxFifoEffSz | ( | uint32_t | maxSz | ) |
References LRF_writeFifoPtr(), and rxFifoDeallocated.
Referenced by LRF_resetSettingsState(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_updateRxCurBufferAndFifo(), RCL_Handler_Generic_Rx(), RCL_Handler_Generic_updateRxCurBufferAndFifo(), RCL_Handler_Ieee_updateRxCurBufferAndFifo(), and RCL_Handler_Nesb_Prx().
| void LRF_peekRxFifoWords | ( | uint32_t * | data32, |
| uint32_t | wordLength, | ||
| uint32_t | startRp | ||
| ) |
References RXF_UNWRAPPED_BASE_ADDR.
Referenced by LRF_resetSettingsState(), RCL_Buffer_readPartialRxBuffer(), and RCL_IEEE_readPartialFrame().
| uint32_t LRF_getUncommittedFifoStatus | ( | uint32_t * | currentRp | ) |
Referenced by LRF_resetSettingsState(), RCL_Buffer_readPartialRxBuffer(), and RCL_IEEE_readPartialFrame().
| void LRF_programFrequency | ( | uint32_t | frequency, |
| bool | tx | ||
| ) |
References LRF_findCalM(), LRF_findFoff(), LRF_findPllMBase(), LRF_programCMixN(), LRF_programPQ(), LRF_programShape(), LRF_scaleFreqWithHFXTOffset(), LRF_SwConfig::modFrequencyDeviation, LRF_SwConfig::rxFrequencyOffset, LRF_SwConfig::rxIntFrequency, LRF_SwParam::swConfig, swParamList, LRF_SwConfig::txFrequencyOffset, and LRF_SwConfig::txShape.
Referenced by LRF_resetSettingsState(), LRF_updateTemperatureCompensation(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_ChannelAssessment(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_periodicAdv(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Ble5_txTest(), RCL_Handler_Generic_Fs(), RCL_Handler_Generic_Rx(), RCL_Handler_Generic_Tx(), RCL_Handler_Generic_TxRepeat(), RCL_Handler_Generic_TxTest(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Ieee_TxTest(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
| uint32_t LRF_enableSynthRefsys | ( | void | ) |
References LRF_REFSYS_ENABLE_TIME, and RCL_Scheduler_getCurrentTime().
Referenced by LRF_resetSettingsState(), RCL_Handler_ADC_Noise_getNoise(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_ChannelAssessment(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_periodicAdv(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Ble5_txTest(), RCL_Handler_BLE_CS(), RCL_Handler_BLE_CS_Precal(), RCL_Handler_Generic_prepareSynth(), RCL_Handler_Ieee_RxTx(), and RCL_Handler_Ieee_TxTest().
| void LRF_disableSynthRefsys | ( | void | ) |
Referenced by LRF_resetSettingsState(), RCL_Handler_ADC_Noise_getNoise(), RCL_Handler_Adc_Noise_powerDown(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_ChannelAssessment(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_periodicAdv(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Ble5_txTest(), RCL_Handler_BLE_CS(), RCL_Handler_BLE_CS_Precal(), RCL_Handler_Generic_setSynthPowerState(), RCL_Handler_Ieee_RxTx(), and RCL_Handler_Ieee_TxTest().
| void LRF_rclEnableRadioClocks | ( | void | ) |
References LRF_setRclClockEnable().
Referenced by LRF_resetSettingsState(), RCL_Lite_configSetPhyFeatures(), and RCL_open().
| void LRF_rclDisableRadioClocks | ( | void | ) |
References LRF_clearRclClockEnable().
Referenced by LRF_resetSettingsState(), and RCL_close().
| int8_t LRF_readRssi | ( | void | ) |
| int8_t LRF_readMaxRssi | ( | void | ) |
Reads maximum RSSI from register.
Referenced by LRF_getTxFifoWritable(), and RCL_Handler_Ieee_updateStats().
| void LRF_initializeMaxRssi | ( | int8_t | initRssi | ) |
Initialize maximum RSSI register.
Referenced by LRF_getTxFifoWritable(), and RCL_Handler_Ieee_initStats().
| void LRF_setRawTxPower | ( | uint32_t | value, |
| uint32_t | temperatureCoefficient | ||
| ) |
References LRF_TxPower_Use_Raw, and lrfPhyState.
Referenced by LRF_resetSettingsState(), and RCL_Command_setRawTxPower().
| LRF_TxPowerTable_Entry LRF_getRawTxPower | ( | void | ) |
References LRF_TxPower_Use_Raw, LRF_TxPowerEntry_INVALID_VALUE, and lrfPhyState.
Referenced by LRF_resetSettingsState(), and LRF_TxPowerTable_findValue().
| void LRF_enableCoexGrant | ( | void | ) |
Enable monitoring of coexistence grant signal in RFE.
Turns on the coex grant signal for the configured IO pin (if any). The function must be called before starting a PBE operation. The handler is responsible for disabling in order to avoid coex operation in commands not supporting it.
References LRF_CoexConfiguration::grantPin, and lrfCoexConfiguration.
Referenced by LRF_clearRclClockEnable(), and RCL_Handler_Ieee_RxTx().
| void LRF_disableCoexGrant | ( | void | ) |
Disable monitoring of coexistence grant signal in RFE.
Turns off the coex grant signal to the RFE. Should be called by the handler at the end of a command where LRF_enableCoexGrant was called. The function must be called after the PBE operation ended, but can safely be called even without a previous LRF_enableCoexGrant.
Referenced by __attribute__(), LRF_clearRclClockEnable(), and RCL_Handler_Ieee_RxTx().
| void LRF_deassertCoexRequest | ( | void | ) |
Deassert coexistence REQUEST.
Set coex REQUEST and PRIORITY lines low to indicate no request. Should only be done when PBE is finished.
Referenced by LRF_clearRclClockEnable(), and RCL_Handler_Ieee_RxTx().
| void LRF_programTemperatureCompensatedTxPower | ( | void | ) |
Programs current TX power setting in radio with temperature compensation.
References hal_get_temperature(), LRF_CC27XX_HIGH_PA_MODE, LRF_CC27XX_RETRIEVE_PA_MODE_FROM_RAW_VALUE, LRF_DEFAULT_RTRIM_MAX, LRF_TRIM_SIGN_MAG_TO_SIGNED, LRF_TXPOWER_REFERENCE_TEMPERATURE, LRF_TXPOWER_TEMPERATURE_SCALING, lrfPhyState, LRF_TxPowerTable_Value::rawValue, rclFeatureControl, RFE_PA0_IB_MIN_USED, swParamList, LRF_TxPowerTable_Entry::tempCoeff, LRF_SwParam::trimDef, and LRF_TxPowerTable_Entry::value.
Referenced by LRF_getTxFifoWritable(), LRF_programTxPower(), and LRF_updateTemperatureCompensation().
| LRF_TxPowerResult LRF_programTxPower | ( | LRF_TxPowerTable_Index | powerLevel, |
| uint32_t | rfFreq | ||
| ) |
Finds settings corresponding to the highest tx power lower than the specified value in the tx power table and programs it in the radio.
| powerLevel | maximum allowed power level in dBm, or special value (LRF_TxPower_Use_Min, LRF_TxPower_Use_Max, LRF_TxPower_Use_Raw, or LRF_TxPower_None) |
| rfFreq | Radio frequency in Hz for which the maximum Tx power is calculated |
References LRF_TxPowerLimitTable::freqDiv, hal_get_temperature(), hal_get_vdds_voltage(), LRF_TxPowerLimitTable::limitTable, LRF_CC27XX_NOM_TEMP_FACTOR, LRF_CC27XX_SCALE_TEMP_COEFF, LRF_CC27XX_VDDS_THRESHOLD_0, LRF_CC27XX_VDDS_THRESHOLD_1, LRF_CC27XX_VDDS_THRESHOLD_2, LRF_programTemperatureCompensatedTxPower(), LRF_TRIM_SIGN_MAG_TO_SIGNED, LRF_TXPOWER_BYPASS_FREQUENCY_BACKOFF, LRF_TxPower_Max_Temp_Coeff_Comp, LRF_TxPower_Min_Temp_Coeff_Comp, LRF_TxPower_None, LRF_TxPower_Use_Max, LRF_TxPower_Use_Raw, LRF_TxPower_Use_Vdds_Comp, LRF_TxPowerTable_findValue(), LRF_TxPowerTable_INVALID_VALUE, lrfPhyState, LRF_TxPowerLimitTable_Entry::maxTxPower, LRF_TxPowerLimitTable_Entry::minFreq, LRF_TxPowerTable::numEntries, LRF_TxPowerLimitTable::numEntries, LRF_TxPowerTable_Entry::power, LRF_TxPowerTable::powerTable, LRF_TxPowerTable_Value::rawValue, LRF_TxPowerTable_Index::rawValue, rclFeatureControl, LRF_TxPowerLimitTable_Entry::regulatoryMask, swParamList, LRF_SwParam::trimDef, LRF_SwParam::txPowerLimitTable, TxPowerResult_Error, TxPowerResult_Ok, LRF_SwParam::txPowerTable, and LRF_TxPowerTable_Entry::value.
Referenced by LRF_getTxFifoWritable(), RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_periodicAdv(), RCL_Handler_BLE5_periodicScan(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Ble5_txTest(), RCL_Handler_BLE_CS(), RCL_Handler_Generic_Tx(), RCL_Handler_Generic_TxRepeat(), RCL_Handler_Generic_TxTest(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Ieee_TxTest(), RCL_Handler_Nesb_Prx(), RCL_Handler_Nesb_Ptx(), and RCL_IEEE_updateTxPower().
| void LRF_enableTemperatureMonitoring | ( | void | ) |
Enable temperature monitoring to allow handlers to update temperature compensation.
References RCL_FeatureControl::enableTemperatureMonitoring, hal_set_temperature_notification(), LRF_temperatureNotification(), lrfPhyState, rclFeatureControl, and rclTemperatureThreshold.
Referenced by LRF_clearRclClockEnable(), LRF_updateTemperatureCompensation(), and RCL_Handler_Ieee_RxTx().
| void LRF_disableTemperatureMonitoring | ( | void | ) |
Disable temperature monitoring.
References RCL_FeatureControl::enableTemperatureMonitoring, hal_stop_temperature_notification(), and rclFeatureControl.
Referenced by LRF_clearRclClockEnable(), and RCL_Handler_Ieee_RxTx().
| void LRF_updateTemperatureCompensation | ( | uint32_t | rfFrequency, |
| bool | tx | ||
| ) |
Update temperature compensation in radio.
Update temperature compensation by allowing TCXO updates, set new RF frequency correction, update temperature compensated trim values, and update temperature compensation for TX power
| rfFrequency | RF frequency at which the command is operating |
| tx | True if radio will be starting in TX; false if it will be starting in RX |
References RCL_FeatureControl::enableTemperatureMonitoring, hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), LRF_enableTemperatureMonitoring(), LRF_programFrequency(), LRF_programTemperatureCompensatedTxPower(), LRF_setTemperatureTrim(), rclFeatureControl, swParamList, and LRF_SwParam::trimDef.
Referenced by LRF_clearRclClockEnable(), and RCL_Handler_Ieee_RxTx().
| int16_t LRF_getLastTrimTemperature | ( | void | ) |
Get temperature used in last setting of trims.
References lrfPhyState.
Referenced by LRF_clearRclClockEnable().
| void LRF_setAntennaSelection | ( | uint32_t | value | ) |
Set the default antenna to be used during the next radio configuration.
This function configures the antenna selection value for the current PHY. The selection does not take effect immediately but will be applied the next time the radio is configured. This typically occurs when a radio command is started or when the device wakes up from standby while running a radio command.
| value | Antenna selection value. |
References LRF_PBE_GPOCTRL_MASK.
Referenced by LRF_clearRclClockEnable().
| uint32_t swParamList[sizeof(LRF_SwParam)/sizeof(uint32_t)] |
| const size_t swParamListSz = sizeof(LRF_SwParam) |
Referenced by LRF_applySettings(), and LRF_clearHwInterrupt().
| struct { ... } lrfPhyState |
|
static |
Referenced by LRF_discardRxFifoWords(), LRF_prepareRxFifo(), LRF_readRxFifoWords(), and LRF_setRxFifoEffSz().
| uint16_t rclTemperatureThreshold = 8 |
Referenced by LRF_enableTemperatureMonitoring().
| LRF_DoubleWord fXtalInv |