33 #ifndef ti_drivers_rcl_LRF__include 34 #define ti_drivers_rcl_LRF__include 46 #define LRF_TxPower_Use_Min ((LRF_TxPowerTable_Index){.rawValue = -128}) 51 #define LRF_TxPower_Use_Max ((LRF_TxPowerTable_Index){.rawValue = 125}) 56 #define LRF_TxPower_Use_Raw ((LRF_TxPowerTable_Index){.rawValue = 126}) 62 #define LRF_TxPower_None ((LRF_TxPowerTable_Index){.rawValue = 127}) 68 #define LRF_SETTINGS_BUFFER_UNLIMITED 0x3FFF 74 #define LRF_RSSI_INVALID (127) 77 typedef enum LRF_RadioState_e {
86 typedef enum LRF_SetupResult_e {
105 uint32_t lengthMinus1 : 12;
107 uint32_t startAddress : 16;
120 uint32_t length : 14;
121 uint32_t invertedFeatureMask : 1;
122 uint32_t compoundSegment : 1;
123 uint32_t featureMask : 16;
159 #ifdef BUFFER_SPLIT_SUPPORT 163 uint32_t segmentLength;
168 uint32_t regionLength;
169 uint32_t regionStart;
173 #define LRF_PhyFeatures_Default 0 176 #define __ERROR_Address_is_in_an_invalid_range_for_LRF_setup 0x00040000 178 #define _ADDRESS_REGION_BIT(_address) \ 179 ((((((uintptr_t)(_address)) >= (LRF_BASE_ADDR)) && \ 180 ((uintptr_t)(_address)) < ((LRF_BASE_ADDR) + 0x10000)) ? 0 : \ 181 ((((uintptr_t)(_address)) >= (PBE_RAM_BASE_ADDR)) && \ 182 (((uintptr_t)(_address)) < ((PBE_RAM_BASE_ADDR) + 0x10000)) ? \ 184 (((((uintptr_t)(_address)) >= 0) && \ 185 (((uintptr_t)(_address)) < 0x10000)) ? \ 187 (__ERROR_Address_is_in_an_invalid_range_for_LRF_setup)))) << 14) 189 #define LRF_SETTINGS_CLEAR(_startAddress, _numWords) \ 190 ((((_numWords) - 1) & 0x0FFF) | \ 191 _ADDRESS_REGION_BIT(_startAddress) | \ 192 ((((uintptr_t)(_startAddress)) & 0xFFFF) << 16)) 194 #define LRF_SETTINGS_16BIT_BLOCK(_startAddress, _numWords) \ 195 ((((_numWords) - 1) & 0x0FFF) | \ 196 _ADDRESS_REGION_BIT(_startAddress) | (1 << 12) | \ 197 ((((uintptr_t)(_startAddress)) & 0xFFFF) << 16)) 199 #define LRF_SETTINGS_16BIT_DUAL_ENTRY(_value0, _value1) \ 200 (((_value0) & 0xFFFF) | (((_value1) & 0xFFFF) << 16)) 202 #define LRF_SETTINGS_32BIT_BLOCK(_startAddress, _numWords) \ 203 ((((_numWords) - 1) & 0x0FFF) | \ 204 _ADDRESS_REGION_BIT(_startAddress) | (2 << 12) | \ 205 ((((uintptr_t)(_startAddress)) & 0xFFFF) << 16)) 207 #define LRF_SETTINGS_16BIT_SPARSE_BLOCK(_startAddress, _numWords) \ 208 ((((_numWords) - 1) & 0x0FFF) | \ 209 _ADDRESS_REGION_BIT(_startAddress) | (3 << 12)) \ 211 #define LRF_SETTINGS_16BIT_SPARSE_ENTRY(_address, _value) \ 212 (((((uintptr_t)(_address)) & 0xFFFF) << 16) | ((_value) & 0xFFFF)) 214 #define LRF_SETTINGS_16BIT_MASKED_BLOCK(_startAddress, _numWords) \ 215 ((((_numWords) - 1) & 0x0FFF) | (11 << 12) | \ 216 ((((uintptr_t)(_startAddress)) & 0xFFFF) << 16)) 218 #define LRF_SETTINGS_16BIT_MASKED_ENTRY(_mask, _value) \ 219 ((((_mask) & 0xFFFF) << 16) | ((_value) & 0xFFFF)) 227 #ifdef BUFFER_SPLIT_SUPPORT 228 state->totalLength = 0;
236 uint16_t phyFeatures);
239 int32_t bufferAvailWords);
int8_t LRF_readRssi(void)
Definition: LRFLPF3.c:1382
void LRF_rclEnableRadioClocks(void)
Definition: LRFLPF3.c:1358
void LRF_setClockEnable(uint16_t mask, uint8_t entryNumber)
static void LRF_resetSettingsState(LRF_ApplySettingsState *state)
Definition: LRF.h:225
LRF_SetupResult LRF_loadImage(const LRF_TOPsmImage *image, uint32_t destinationAddress)
Definition: LRF.c:46
bool LRF_hasRxWordToRead(void)
Definition: LRFLPF3_FIFO.c:384
Index of the tx power table.
Definition: LRFLPF3.h:170
LRF_RadioState
Definition: LRF.h:77
LRF_SetupResult
Setup operation result.
Definition: LRF.h:86
void LRF_sendHardStop(void)
LRF_SetupResult LRF_setupRadio(const LRF_Config *lrfConfig, uint16_t phyFeatures, LRF_RadioState lrfState)
void LRF_deallocateTxFifo(void)
uint32_t LRF_getTxFifoWritable(void)
Definition: LRFLPF3_FIFO.c:70
void LRF_sendGracefulStop(void)
static 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.h:303
LRF_TxPowerTable_Entry LRF_TxPowerTable_findValueExtended(const LRF_TxPowerTable *table, LRF_TxPowerTable_Index powerLevel, bool roundUp, bool returnBoundaryOnOutOfRange)
Search for settings corresponding to tx power in the tx power table with extended options...
Definition: LRF.c:761
void LRF_discardRxFifoWords(uint32_t wordLength)
Definition: LRFLPF3_FIFO.c:192
void LRF_peekRxFifoWords(uint32_t *data32, uint32_t wordLength, uint32_t startRp)
Definition: LRFLPF3_FIFO.c:313
uint32_t value32
Definition: LRF.h:109
uint32_t image[]
Definition: LRF.h:100
void RCL_Hal_clearCommandRadioInterrupt(uint32_t mask)
Definition: RCLLPF3_Hal.c:367
void LRF_writeTxFifoWords(const uint32_t *data32, uint32_t wordLength)
Definition: LRFLPF3_FIFO.c:240
LRF_SetupResult LRF_applySettings(LRF_ConfigWord *config, LRF_ApplySettingsState *state, int32_t bufferAvailWords)
Definition: LRF.c:158
void LRF_clearClockEnable(uint16_t mask, uint8_t entryNumber)
uint32_t LRF_enableSynthRefsys(void)
Definition: LRFLPF3.c:1328
uint32_t LRF_prepareRxFifo(void)
Definition: LRFLPF3_FIFO.c:353
Radio configuration structure.
Definition: LRFLPF3.h:581
uint8_t * LRF_getTxFifoWrAddr(int32_t offset)
Definition: LRFLPF3_FIFO.c:122
static void LRF_clearHwInterrupt(uint32_t mask)
Definition: LRF.h:318
LRF_ApplySettingsBase
Definition: LRF.h:149
uint32_t imageLen
Definition: LRF.h:99
bool LRF_imagesNeedUpdate(const LRF_Config *lrfConfig)
Definition: LRFLPF3.c:304
Single entry of the tx power table. Maps power in dBm to specific register settings.
Definition: LRFLPF3.h:183
uint32_t swParamList[]
Definition: LRFLPF3.c:151
static void LRF_disableHwInterrupt(uint32_t mask)
Definition: LRF.h:313
void LRF_setRxFifoEffSz(uint32_t maxSz)
Definition: LRFLPF3_FIFO.c:269
void LRF_resetRxFifo(void)
void LRF_disable(void)
Definition: LRFLPF3.c:858
void LRF_rclDisableRadioClocks(void)
Definition: LRFLPF3.c:1370
void LRF_programFrequency(uint32_t frequency, bool tx)
Definition: LRFLPF3.c:1239
static void LRF_enableHwInterrupt(uint32_t mask)
Definition: LRF.h:308
uint32_t LRF_getUncommittedFifoStatus(uint32_t *currentRp)
Definition: LRFLPF3_FIFO.c:329
void LRF_disableSynthRefsys(void)
Definition: LRFLPF3.c:1353
Tx power table, containing all characterized dBm to register settings mappings.
Definition: LRFLPF3.h:202
const size_t swParamListSz
Definition: LRFLPF3.c:152
void LRF_resetTxFifo(void)
void RCL_Hal_disableCommandRadioInterrupt(uint32_t mask)
Definition: RCLLPF3_Hal.c:372
uint16_t phyFeatures
Definition: LRF.h:156
void LRF_retryTxFifo(void)
Definition: LRFLPF3_FIFO.c:375
void LRF_initSettingsState(LRF_ApplySettingsState *state, LRF_ApplySettingsBase includeBase, uint16_t phyFeatures)
Definition: LRF.c:149
uint32_t LRF_prepareTxFifo(void)
Definition: LRFLPF3_FIFO.c:78
void LRF_waitForTopsmReady(void)
Definition: LRFLPF3.c:886
void LRF_enable(void)
Definition: LRFLPF3.c:833
uint32_t numEntries
Definition: LRF.h:128
void LRF_setRawTxPower(uint32_t value, uint32_t temperatureCoefficient)
Definition: LRFLPF3.c:1397
uint32_t LRF_peekTxFifo(int32_t offset)
Definition: LRFLPF3_FIFO.c:108
LRF_ApplySettingsBase includeBase
Definition: LRF.h:157
void LRF_readRxFifoWords(uint32_t *data32, uint32_t wordLength)
Definition: LRFLPF3_FIFO.c:209
LRF_RegionOperation
Definition: LRF.h:132
void RCL_Hal_enableCommandRadioInterrupt(uint32_t mask)
Definition: RCLLPF3_Hal.c:361
LRF_TxPowerTable_Entry LRF_getRawTxPower(void)
Definition: LRFLPF3.c:1404
void LRF_skipTxFifoWords(uint32_t wordLength)
Definition: LRFLPF3_FIFO.c:178
uint32_t LRF_peekRxFifo(int32_t offset)
Definition: LRFLPF3_FIFO.c:94