40 #if defined(DeviceFamily_CC23X0R5) || defined(DeviceFamily_CC23X0R2) || defined(DeviceFamily_CC27XX) 41 # include <ti/devices/DeviceFamily.h> 42 # include DeviceFamily_constructPath(inc/hw_types.h) 43 # include DeviceFamily_constructPath(inc/hw_lrfdpbe.h) 47 #ifdef DeviceFamily_CC1308 48 # define BUFFER_SPLIT_SUPPORT 49 # include "LRFCC1308.h" 56 #define LRF_TxPower_Use_Min ((LRF_TxPowerTable_Index){.rawValue = -128}) 61 #define LRF_TxPower_Use_Max ((LRF_TxPowerTable_Index){.rawValue = 125}) 66 #define LRF_TxPower_Use_Raw ((LRF_TxPowerTable_Index){.rawValue = 126}) 72 #define LRF_TxPower_None ((LRF_TxPowerTable_Index){.rawValue = 127}) 78 #define LRF_SETTINGS_BUFFER_UNLIMITED 0x3FFF 84 #define LRF_RSSI_INVALID (127) 87 typedef enum LRF_RadioState_e {
96 typedef enum LRF_SetupResult_e {
115 uint32_t lengthMinus1 : 12;
117 uint32_t startAddress : 16;
130 uint32_t length : 14;
131 uint32_t invertedFeatureMask : 1;
132 uint32_t compoundSegment : 1;
133 uint32_t featureMask : 16;
169 #ifdef BUFFER_SPLIT_SUPPORT 173 uint32_t segmentLength;
178 uint32_t regionLength;
179 uint32_t regionStart;
183 #define LRF_PhyFeatures_Default 0 185 #define LRF_NUM_CLK_ENA 2 186 #define LRF_CLK_ENA_APP 0 187 #define LRF_CLK_ENA_RCL 1 190 #define __ERROR_Address_is_in_an_invalid_range_for_LRF_setup 0x00040000 192 #define _ADDRESS_REGION_BIT(_address) \ 193 ((((((uintptr_t)(_address)) >= (LRF_BASE_ADDR)) && \ 194 ((uintptr_t)(_address)) < ((LRF_BASE_ADDR) + 0x10000)) ? 0 : \ 195 ((((uintptr_t)(_address)) >= (PBE_RAM_BASE_ADDR)) && \ 196 (((uintptr_t)(_address)) < ((PBE_RAM_BASE_ADDR) + 0x10000)) ? \ 198 (((((uintptr_t)(_address)) >= 0) && \ 199 (((uintptr_t)(_address)) < 0x10000)) ? \ 201 (__ERROR_Address_is_in_an_invalid_range_for_LRF_setup)))) << 14) 203 #define LRF_SETTINGS_CLEAR(_startAddress, _numWords) \ 204 ((((_numWords) - 1) & 0x0FFF) | \ 205 _ADDRESS_REGION_BIT(_startAddress) | \ 206 ((((uintptr_t)(_startAddress)) & 0xFFFF) << 16)) 208 #define LRF_SETTINGS_16BIT_BLOCK(_startAddress, _numWords) \ 209 ((((_numWords) - 1) & 0x0FFF) | \ 210 _ADDRESS_REGION_BIT(_startAddress) | (1 << 12) | \ 211 ((((uintptr_t)(_startAddress)) & 0xFFFF) << 16)) 213 #define LRF_SETTINGS_16BIT_DUAL_ENTRY(_value0, _value1) \ 214 (((_value0) & 0xFFFF) | (((_value1) & 0xFFFF) << 16)) 216 #define LRF_SETTINGS_32BIT_BLOCK(_startAddress, _numWords) \ 217 ((((_numWords) - 1) & 0x0FFF) | \ 218 _ADDRESS_REGION_BIT(_startAddress) | (2 << 12) | \ 219 ((((uintptr_t)(_startAddress)) & 0xFFFF) << 16)) 221 #define LRF_SETTINGS_16BIT_SPARSE_BLOCK(_startAddress, _numWords) \ 222 ((((_numWords) - 1) & 0x0FFF) | \ 223 _ADDRESS_REGION_BIT(_startAddress) | (3 << 12)) \ 225 #define LRF_SETTINGS_16BIT_SPARSE_ENTRY(_address, _value) \ 226 (((((uintptr_t)(_address)) & 0xFFFF) << 16) | ((_value) & 0xFFFF)) 228 #define LRF_SETTINGS_16BIT_MASKED_BLOCK(_startAddress, _numWords) \ 229 ((((_numWords) - 1) & 0x0FFF) | (11 << 12) | \ 230 ((((uintptr_t)(_startAddress)) & 0xFFFF) << 16)) 232 #define LRF_SETTINGS_16BIT_MASKED_ENTRY(_mask, _value) \ 233 ((((_mask) & 0xFFFF) << 16) | ((_value) & 0xFFFF)) 241 #ifdef BUFFER_SPLIT_SUPPORT 242 state->totalLength = 0;
250 uint16_t phyFeatures);
253 int32_t bufferAvailWords);
int8_t LRF_readRssi(void)
Definition: LRFCC23X0.c:1361
#define LRF_CLK_ENA_APP
Definition: LRF.h:186
void LRF_rclEnableRadioClocks(void)
Definition: LRFCC23X0.c:1335
void LRF_setClockEnable(uint16_t mask, uint8_t entryNumber)
Definition: LRFCC23X0.c:1304
static void LRF_resetSettingsState(LRF_ApplySettingsState *state)
Definition: LRF.h:239
LRF_SetupResult LRF_loadImage(const LRF_TOPsmImage *image, uint32_t destinationAddress)
Definition: LRF.c:46
LRF_RadioState
Definition: LRF.h:87
LRF_SetupResult
Setup operation result.
Definition: LRF.h:96
void LRF_sendHardStop(void)
LRF_SetupResult LRF_setupRadio(const LRF_Config *lrfConfig, uint16_t phyFeatures, LRF_RadioState lrfState)
Definition: LRFCC23X0.c:95
Single entry of the tx power table. Maps power in dBm to specific register settings.
Definition: LRFCC23X0.h:185
void LRF_sendGracefulStop(void)
void LRF_discardRxFifoWords(uint32_t wordLength)
Definition: LRFCC23X0.c:758
uint32_t value32
Definition: LRF.h:119
uint32_t image[]
Definition: LRF.h:110
Tx power table, containing all characterized dBm to register settings mappings.
Definition: LRFCC23X0.h:204
void LRF_writeTxFifoWords(const uint32_t *data32, uint32_t wordLength)
Definition: LRFCC23X0.c:794
LRF_SetupResult LRF_applySettings(LRF_ConfigWord *config, LRF_ApplySettingsState *state, int32_t bufferAvailWords)
Definition: LRF.c:118
void LRF_clearClockEnable(uint16_t mask, uint8_t entryNumber)
Definition: LRFCC23X0.c:1313
Index of the tx power table.
Definition: LRFCC23X0.h:172
Radio configuration structure.
Definition: LRFCC23X0.h:476
static void LRF_clearAppClockEnable(uint16_t mask)
Definition: LRF.h:304
uint32_t LRF_enableSynthRefsys(void)
Definition: LRFCC23X0.c:1273
uint32_t LRF_prepareRxFifo(void)
Definition: LRFCC23X0.c:643
static void LRF_setAppClockEnable(uint16_t mask)
Definition: LRF.h:299
uint8_t * LRF_getTxFifoWrAddr(int32_t offset)
Definition: LRFCC23X0.c:697
LRF_ApplySettingsBase
Definition: LRF.h:159
uint32_t imageLen
Definition: LRF.h:109
bool LRF_imagesNeedUpdate(const LRF_Config *lrfConfig)
Definition: LRFCC23X0.c:192
uint32_t swParamList[]
Definition: LRFCC23X0.c:76
void LRF_setRxFifoEffSz(uint32_t maxSz)
Definition: LRFCC23X0.c:814
void LRF_disable(void)
Definition: LRFCC23X0.c:610
void LRF_rclDisableRadioClocks(void)
Definition: LRFCC23X0.c:1348
void LRF_programFrequency(uint32_t frequency, bool tx)
Definition: LRFCC23X0.c:1184
void LRF_disableSynthRefsys(void)
Definition: LRFCC23X0.c:1298
LRF_TxPowerTable_Entry LRF_TxPowerTable_findValue(const LRF_TxPowerTable *table, LRF_TxPowerTable_Index powerLevel)
Search for settings corresponding to the highest tx power lower than specified value in the tx power ...
Definition: LRF.c:668
const size_t swParamListSz
Definition: LRFCC23X0.c:77
uint16_t phyFeatures
Definition: LRF.h:166
void LRF_initSettingsState(LRF_ApplySettingsState *state, LRF_ApplySettingsBase includeBase, uint16_t phyFeatures)
Definition: LRF.c:109
uint32_t LRF_prepareTxFifo(void)
Definition: LRFCC23X0.c:662
void LRF_waitForTopsmReady(void)
Definition: LRFCC23X0.c:634
void LRF_enable(void)
Definition: LRFCC23X0.c:588
uint32_t numEntries
Definition: LRF.h:138
void LRF_setRawTxPower(uint32_t value, uint32_t temperatureCoefficient)
Definition: LRFCC23X0.c:1366
uint32_t LRF_peekTxFifo(int32_t offset)
Definition: LRFCC23X0.c:686
LRF_ApplySettingsBase includeBase
Definition: LRF.h:167
void LRF_readRxFifoWords(uint32_t *data32, uint32_t wordLength)
Definition: LRFCC23X0.c:772
LRF_RegionOperation
Definition: LRF.h:142
LRF_TxPowerTable_Entry LRF_getRawTxPower(void)
Definition: LRFCC23X0.c:1373
void LRF_skipTxFifoWords(uint32_t wordLength)
Definition: LRFCC23X0.c:747
uint32_t LRF_peekRxFifo(int32_t offset)
Definition: LRFCC23X0.c:675