Radio Control Layer (RCL)
|
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <ti/devices/DeviceFamily.h>
#include <ti/drivers/rcl/RCL_Types.h>
#include <ti/drivers/Power.h>
Go to the source code of this file.
Macros | |
#define | LRF_TxPowerTable_INVALID_VALUE ((LRF_TxPowerTable_Value){.rawValue = 0xFFFF}) |
#define | LRF_EventNone ((LRF_Events){ .value = (0U << 0U)}) |
#define | LRF_EventOpDone ((LRF_Events){ .value = (1U << 0U)}) |
#define | LRF_EventPingRsp ((LRF_Events){ .value = (1U << 1U)}) |
#define | LRF_EventRxCtrl ((LRF_Events){ .value = (1U << 2U)}) |
#define | LRF_EventRxCtrlAck ((LRF_Events){ .value = (1U << 3U)}) |
#define | LRF_EventRxNok ((LRF_Events){ .value = (1U << 4U)}) |
#define | LRF_EventRxIgnored ((LRF_Events){ .value = (1U << 5U)}) |
#define | LRF_EventRxEmpty ((LRF_Events){ .value = (1U << 6U)}) |
#define | LRF_EventRxBufFull ((LRF_Events){ .value = (1U << 7U)}) |
#define | LRF_EventRxOk ((LRF_Events){ .value = (1U << 8U)}) |
#define | LRF_EventTxCtrl ((LRF_Events){ .value = (1U << 9U)}) |
#define | LRF_EventTxCtrlAckAck ((LRF_Events){ .value = (1U << 10U)}) |
#define | LRF_EventTxRetrans ((LRF_Events){ .value = (1U << 11U)}) |
#define | LRF_EventTxAck ((LRF_Events){ .value = (1U << 12U)}) |
#define | LRF_EventTxDone ((LRF_Events){ .value = (1U << 13U)}) |
#define | LRF_EventTxCtrlAck ((LRF_Events){ .value = (1U << 14U)}) |
#define | LRF_EventOpError ((LRF_Events){ .value = (1U << 15U)}) |
#define | LRF_EventRxfifo ((LRF_Events){ .value = (1U << 16U)}) |
#define | LRF_EventTxfifo ((LRF_Events){ .value = (1U << 17U)}) |
#define | LRF_EventLossOfLock ((LRF_Events){ .value = (1U << 18U)}) |
#define | LRF_EventLock ((LRF_Events){ .value = (1U << 19U)}) |
#define | LRF_EventRfesoft0 ((LRF_Events){ .value = (1U << 20U)}) |
#define | LRF_EventRfesoft1 ((LRF_Events){ .value = (1U << 21U)}) |
#define | LRF_EventRfedone ((LRF_Events){ .value = (1U << 22U)}) |
#define | LRF_EventMdmsoft0 ((LRF_Events){ .value = (1U << 23U)}) |
#define | LRF_EventMdmsoft1 ((LRF_Events){ .value = (1U << 24U)}) |
#define | LRF_EventMdmsoft2 ((LRF_Events){ .value = (1U << 25U)}) |
#define | LRF_EventMdmout ((LRF_Events){ .value = (1U << 26U)}) |
#define | LRF_EventMdmin ((LRF_Events){ .value = (1U << 27U)}) |
#define | LRF_EventMdmdone ((LRF_Events){ .value = (1U << 28U)}) |
#define | LRF_EventSystim0 ((LRF_Events){ .value = (1U << 29U)}) |
#define | LRF_EventSystim1 ((LRF_Events){ .value = (1U << 30U)}) |
#define | LRF_EventSystim2 ((LRF_Events){ .value = (1U << 31U)}) |
#define | LRF_TxPowerEntry_INVALID_VALUE |
#define | LRF_TRIM_NUM_VARIANTS 2 |
#define | LRF_TRIM_NORMAL_BW 0 |
#define | LRF_TRIM_HIGH_BW 1 /* Revision >= 4 only */ |
#define | LRF_TRIM_MIN_VERSION_FULL_FEATURES 4 /* Only AppTrims revision 4 and above has all features */ |
#define | LRF_TRIM_VERSION_RSSIOFFSET_ISSUE_CC23X0R5 4 /* AppTrims revision with issue in rssiOffset field */ |
#define | LRF_TRIM_LIMIT_RSSIOFFSET_ISSUE_CC23X0R5 (-4) /* If rssiOffset is less or equal to this, apply correction */ |
#define | LRF_TRIM_CORRECTION_RSSIOFFSET_ISSUE_CC23X0R5 5 /* Correction to apply to devices with wrong RSSI offset */ |
#define | LRF_TRIM_VERSION_STATE_C_TRIM_WORKAROUND_CC27XX 7U /* AppTrims revision of CC27XX devices in state C and beyond */ |
#define | LRF_TRIM_RTRIM_VALUE_STATE_B_RTRIM_WORKAROUND_CC27XX 10U /* RTRIM value used on CC27XX state B devices */ |
#define | LRF_TRIM_DCOLDO0_FIRSTTRIM_VALUE_STATE_B_DCOLDO_WORKAROUND_CC27XX 8U /* DCOLDO0:FIRSTTRIM value used on CC27XX state B devices */ |
#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_STATE_B_DCOLDO_WORKAROUND_CC27XX ((1U << 3U) | (1U << 5U)) /* Bits mask for bit 3 and 5 of DCOLDO0:SECONDTRIM */ |
#define | LRF_TRIM_DCOLDO0_SECONDTRIM_MAX_STATE_B_DCOLDO_WORKAROUND_CC27XX 63U /* DCOLDO0:SECONDTRIM maximum value allowed within the range of 6-bit representation */ |
#define | LRF_TRIM_VERSION_CORRECT_AMOUNT_OF_PA_TRIMS_CC27XX 5 |
#define | LRF_BASE_ADDR 0x40080000U |
#define | PBE_RAM_BASE_ADDR 0x40090000U |
#define | BUF_RAM_BASE_ADDR 0x40092000U |
#define | RXF_UNWRAPPED_BASE_ADDR 0x40093000U |
#define | TXF_UNWRAPPED_BASE_ADDR 0x40093800U |
#define | MCE_RAM_BASE_ADDR 0x40094000U |
#define | RFE_RAM_BASE_ADDR 0x40096000U |
#define | S2R_RAM_BASE_ADDR 0x40098000U |
#define | TOPSM_RAM_SZ 0x00001000U /* 4 KB */ |
#define | MAX_REG_CONFIG_LEN 1024U /* 1024 entries, using 4 KB */ |
#define | LRF_TXPOWER_REFERENCE_TEMPERATURE 25 |
#define | LRF_TXPOWER_TEMPERATURE_SCALING 0x100 |
#define | LRF_POWER_PERIPH_VALUE(x) (PowerCC23X0_PERIPH_GROUP_LRFD | (x)) |
#define | PowerLPF3_PERIPH_LRFD_BUFRAM LRF_POWER_PERIPH_VALUE(LRFDDBELL_CLKCTL_BUFRAM_S) |
#define | PowerLPF3_PERIPH_LRFD_MDM LRF_POWER_PERIPH_VALUE(LRFDDBELL_CLKCTL_MDM_S) |
#define | PowerLPF3_PERIPH_LRFD_TRC LRF_POWER_PERIPH_VALUE(LRFDDBELL_CLKCTL_TRC_S) |
Typedefs | |
typedef uint8_t | LRF_TxPowerTable_TempCoeff |
Enumerations | |
enum | LRF_TxPowerResult { TxPowerResult_Ok, TxPowerResult_Error } |
Functions | |
static void | LRF_sendHardStop (void) |
static void | LRF_sendGracefulStop (void) |
static void | LRF_hardStop (void) |
static uint32_t | LRF_getTxFifoWritable (void) |
void | LRF_programTemperatureCompensatedTxPower (void) |
Programs current TX power setting in radio with temperature compensation. More... | |
LRF_TxPowerResult | LRF_programTxPower (LRF_TxPowerTable_Index powerLevel) |
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... | |
static void | LRF_setRclClockEnable (uint16_t mask) |
Request specific clock enable bits for use by the RCL. More... | |
static void | LRF_clearRclClockEnable (uint16_t mask) |
Remove request of specific clock enable bits for use by the RCL. More... | |
Variables | |
const LRF_TxShape | LRF_shapeBaseGfsk05 |
const LRF_TxShape | LRF_shapeBaseGfsk067 |
const LRF_TxShape | LRF_shapeBaseGfsk20 |
union LRF_TxPowerTable_Value |
Type for tx power configuration.
Register value to be written to registers, prior to temperature compensation
Data Fields | ||
---|---|---|
struct LRF_TxPowerTable_Value | __unnamed__ | |
uint16_t | rawValue |
union LRF_Events_u |
Data Fields | ||
---|---|---|
struct LRF_Events_u | __unnamed__ | |
uint32_t | value |
union LRF_TxPowerTable_Index |
Index of the tx power table.
Data Fields | ||
---|---|---|
struct LRF_TxPowerTable_Index | __unnamed__ | |
int8_t | rawValue |
rawValue is twice the dBm number, allowing 0.5 dB steps |
struct LRF_TxPowerTable_Entry |
Single entry of the tx power table. Maps power in dBm to specific register settings.
Data Fields | ||
---|---|---|
LRF_TxPowerTable_Index | power |
Power level |
LRF_TxPowerTable_TempCoeff | tempCoeff |
Temperature coefficient |
LRF_TxPowerTable_Value | value |
Settings to be compensated and written into register |
struct LRF_TxPowerTable |
Tx power table, containing all characterized dBm to register settings mappings.
The table must be sorted from lowest to highest power level
Data Fields | ||
---|---|---|
uint32_t | numEntries | |
LRF_TxPowerTable_Entry | powerTable[] |
struct LRF_TxShape |
Data Fields | ||
---|---|---|
struct LRF_TxShape | __unnamed__ | |
uint8_t | coeff[] |
union LRF_Trim1 |
Data Fields | ||
---|---|---|
struct LRF_Trim1 | fields | |
struct LRF_Trim1 | __unnamed__ | |
LRF_DoubleWord | data |
union LRF_Trim2 |
Data Fields | ||
---|---|---|
struct LRF_Trim2 | fields | |
struct LRF_Trim2 | __unnamed__ | |
LRF_DoubleWord | data |
union LRF_Trim_Variant |
Data Fields | ||
---|---|---|
struct LRF_Trim_Variant | fields | |
struct LRF_Trim_Variant | __unnamed__ | |
LRF_DoubleWord | data |
struct LRF_Trim_tempLdoRtrim |
struct LRF_Trim_tempRssiAgc |
struct LRF_TrimDef |
Data Fields | ||
---|---|---|
uint8_t | revision | |
uint8_t | nToolsClientOffset | |
uint8_t | reserved[2] | |
LRF_Trim0 | trim0 | |
LRF_Trim1 | trim1 | |
LRF_Trim2 | trim2 | |
LRF_Trim_Variant | trimVariant[LRF_TRIM_NUM_VARIANTS] | |
LRF_Trim3 | trim3 | |
LRF_Trim4 | trim4 |
struct LRF_SwConfig |
Software defined PHY parameters.
Data Fields | ||
---|---|---|
int32_t | rxIntFrequency |
Receiver intermediate frequency [Hz] |
int32_t | rxFrequencyOffset |
Receiver frequency offset [Hz] |
int32_t | txFrequencyOffset |
Transmitter frequency offset [Hz] |
uint32_t | modFrequencyDeviation |
Transmitter frequency deviation [Hz] |
const LRF_TxShape * | txShape |
Transmitter shape definition |
uint8_t | bwIndex |
Index to use for bandwitdh dependent settings (0: normal 1: high) |
uint8_t | bwIndexDither |
Index to use for bandwitdh dependent ADC dithering settings (0: low 1: normal/high) |
struct LRF_SwParam |
Software defined PHY parameter list.
Data Fields | ||
---|---|---|
const LRF_SwConfig * | swConfig |
Software defined parameters. |
const LRF_TxPowerTable * | txPowerTable |
TX power table |
const LRF_TrimDef * | trimDef |
Trim definitions. NULL: Do not apply trim. |
struct LRF_Config |
struct LRF_TxPowerTable_Value.__unnamed__ |
struct LRF_Events_u.__unnamed__ |
struct LRF_TxPowerTable_Index.__unnamed__ |
union LRF_Trim0.fields.__unnamed__ |
Data Fields | ||
---|---|---|
__unnamed__ | pa0 |
struct LRF_Trim0.fields.atstRefH |
struct LRF_Trim1.__unnamed__ |
struct LRF_Trim2.fields.dcoLdo0 |
struct LRF_Trim2.fields.ifadcAldo |
struct LRF_Trim2.fields.ifadcDldo |
struct LRF_Trim2.__unnamed__ |
struct LRF_Trim_Variant.fields |
struct LRF_Trim_Variant.fields.ifadc0 |
struct LRF_Trim_Variant.fields.ifadc1 |
struct LRF_Trim_Variant.fields.ifadclf |
struct LRF_Trim_Variant.__unnamed__ |
struct LRF_Trim3.fields |
Data Fields | ||
---|---|---|
fields | lrfdrfeExtTrim1 | |
LRF_Trim_tempRssiAgc | lrfdrfeExtTrim0 |
struct LRF_Trim3.fields.lrfdrfeExtTrim1 |
Data Fields | ||
---|---|---|
LRF_Trim_tempLdoRtrim | tempLdoRtrim | |
uint8_t | hfxtPdError | |
uint8_t | res |
struct LRF_Trim4.fields |
Data Fields | ||
---|---|---|
fields | fend0Rssi | |
fields | syntDiv0 | |
uint16_t | res1 | |
fields | ifamprfldo[LRF_TRIM_NUM_VARIANTS] |
struct LRF_Trim4.fields.fend0Rssi |
struct LRF_Trim4.__unnamed__ |
Data Fields | ||
---|---|---|
int8_t | rssiOffset | |
uint8_t | trimCompleteN | |
uint16_t | demIQMC0 | |
uint16_t | res1 | |
uint8_t | ifamprfldo[LRF_TRIM_NUM_VARIANTS] |
#define LRF_TxPowerTable_INVALID_VALUE ((LRF_TxPowerTable_Value){.rawValue = 0xFFFF}) |
Value indicating that no valid tx power could be found in the table.
Referenced by LRF_programTxPower().
#define LRF_EventNone ((LRF_Events){ .value = (0U << 0U)}) |
No events
Referenced by rclDispatchHwi().
#define LRF_EventOpDone ((LRF_Events){ .value = (1U << 0U)}) |
The PBE operation has finished
Referenced by RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Ble5_txTest(), RCL_Handler_BLE_CS(), 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().
#define LRF_EventPingRsp ((LRF_Events){ .value = (1U << 1U)}) |
When receiving a CMD_PING, PBE responds with a PINGRSP.
#define LRF_EventRxCtrl ((LRF_Events){ .value = (1U << 2U)}) |
LL control packet received correctly
#define LRF_EventRxCtrlAck ((LRF_Events){ .value = (1U << 3U)}) |
LL control packet received with CRC OK, not to be ignored, then acknowledgement sent
Referenced by RCL_Handler_Ieee_RxTx().
#define LRF_EventRxNok ((LRF_Events){ .value = (1U << 4U)}) |
Packet received with CRC error
Referenced by RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_maskEventsByFifoConf(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Generic_Rx(), RCL_Handler_Ieee_maskEventsByFifoConf(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
#define LRF_EventRxIgnored ((LRF_Events){ .value = (1U << 5U)}) |
Packet received, but may be ignored by MCU
Referenced by RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_maskEventsByFifoConf(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Generic_maskEventsByFifoConf(), RCL_Handler_Ieee_maskEventsByFifoConf(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
#define LRF_EventRxEmpty ((LRF_Events){ .value = (1U << 6U)}) |
Empty packet received
Referenced by RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_maskEventsByFifoConf(), and RCL_Handler_Ieee_RxTx().
#define LRF_EventRxBufFull ((LRF_Events){ .value = (1U << 7U)}) |
Packet received which did not fit in the RX FIFO and was not to be discarded.
Referenced by RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_maskEventsByFifoConf(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Generic_maskEventsByFifoConf(), RCL_Handler_Generic_Rx(), RCL_Handler_Ieee_maskEventsByFifoConf(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
#define LRF_EventRxOk ((LRF_Events){ .value = (1U << 8U)}) |
Packet received with CRC OK and not to be ignored by the MCU
Referenced by RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Generic_Rx(), RCL_Handler_Ieee_RxTx(), RCL_Handler_Nesb_Prx(), and RCL_Handler_Nesb_Ptx().
#define LRF_EventTxCtrl ((LRF_Events){ .value = (1U << 9U)}) |
Transmitted LL control packet
#define LRF_EventTxCtrlAckAck ((LRF_Events){ .value = (1U << 10U)}) |
Acknowledgement received on a transmitted LL control packet, and acknowledgement transmitted for that packet
#define LRF_EventTxRetrans ((LRF_Events){ .value = (1U << 11U)}) |
Packet retransmitted with same SN
#define LRF_EventTxAck ((LRF_Events){ .value = (1U << 12U)}) |
Acknowledgement transmitted, or acknowledgement received on a transmitted packet.
#define LRF_EventTxDone ((LRF_Events){ .value = (1U << 13U)}) |
Packet transmitted
Referenced by RCL_Handler_BLE5_conn(), and RCL_Handler_Ieee_RxTx().
#define LRF_EventTxCtrlAck ((LRF_Events){ .value = (1U << 14U)}) |
Acknowledgement received on a transmitted LL control packet
Referenced by RCL_Handler_BLE_CS().
#define LRF_EventOpError ((LRF_Events){ .value = (1U << 15U)}) |
Something went awfully wrong, the reason is indicated in RAM-based register BLE_ENDCAUSE.
Referenced by RCL_Handler_BLE5_adv(), RCL_Handler_BLE5_aux_adv(), RCL_Handler_BLE5_conn(), RCL_Handler_BLE5_dtmTx(), RCL_Handler_BLE5_genericRx(), RCL_Handler_BLE5_genericTx(), RCL_Handler_BLE5_scan_init(), RCL_Handler_Ble5_txTest(), RCL_Handler_BLE_CS(), 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().
#define LRF_EventRxfifo ((LRF_Events){ .value = (1U << 16U)}) |
Event from fifo, triggered when crossing threshold. Normal use for rxfifo is to generate IRQ when crossing threshold upwards (filling fifo). But downwards is also possible to configure, could be use case for using both fifos for TX or both for RX
Referenced by RCL_Handler_BLE_CS().
#define LRF_EventTxfifo ((LRF_Events){ .value = (1U << 17U)}) |
Event from fifo, triggered when crossing threshold. Normal use for txfifo is to generate IRQ when crossing threshold downwards (emptying fifo). But upwards is also possible to configure, could be use case for using both fifos for TX or both for RX
Referenced by RCL_Handler_BLE_CS().
#define LRF_EventLossOfLock ((LRF_Events){ .value = (1U << 18U)}) |
LOSS_OF_LOCK event
#define LRF_EventLock ((LRF_Events){ .value = (1U << 19U)}) |
LOCK event
#define LRF_EventRfesoft0 ((LRF_Events){ .value = (1U << 20U)}) |
RFESOFT0 event
Referenced by RCL_Handler_Ieee_RxTx().
#define LRF_EventRfesoft1 ((LRF_Events){ .value = (1U << 21U)}) |
RFESOFT1 event
#define LRF_EventRfedone ((LRF_Events){ .value = (1U << 22U)}) |
RFEDONE event
#define LRF_EventMdmsoft0 ((LRF_Events){ .value = (1U << 23U)}) |
MDMSOFT event
#define LRF_EventMdmsoft1 ((LRF_Events){ .value = (1U << 24U)}) |
MDMSOFT1 event
#define LRF_EventMdmsoft2 ((LRF_Events){ .value = (1U << 25U)}) |
MDMSOFT event
#define LRF_EventMdmout ((LRF_Events){ .value = (1U << 26U)}) |
MDMOUT event
#define LRF_EventMdmin ((LRF_Events){ .value = (1U << 27U)}) |
MDMIN event
#define LRF_EventMdmdone ((LRF_Events){ .value = (1U << 28U)}) |
MDMDONE event
#define LRF_EventSystim0 ((LRF_Events){ .value = (1U << 29U)}) |
SYSTIM0 event
#define LRF_EventSystim1 ((LRF_Events){ .value = (1U << 30U)}) |
SYSTIM1 event
#define LRF_EventSystim2 ((LRF_Events){ .value = (1U << 31U)}) |
SYSTIM2 event
#define LRF_TxPowerEntry_INVALID_VALUE |
Value indicating that no valid tx power could be found in the table.
Referenced by LRF_getRawTxPower(), and LRF_TxPowerTable_findValue().
#define LRF_TRIM_NUM_VARIANTS 2 |
#define LRF_TRIM_NORMAL_BW 0 |
#define LRF_TRIM_HIGH_BW 1 /* Revision >= 4 only */ |
#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_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_VERSION_STATE_C_TRIM_WORKAROUND_CC27XX 7U /* AppTrims revision of CC27XX devices in state C and beyond */ |
Referenced by LRF_applyTrim(), and LRF_temperatureCompensateTrim().
#define LRF_TRIM_RTRIM_VALUE_STATE_B_RTRIM_WORKAROUND_CC27XX 10U /* RTRIM value used on CC27XX state B devices */ |
Referenced by LRF_temperatureCompensateTrim().
#define LRF_TRIM_DCOLDO0_FIRSTTRIM_VALUE_STATE_B_DCOLDO_WORKAROUND_CC27XX 8U /* DCOLDO0:FIRSTTRIM value used on CC27XX state B devices */ |
Referenced by LRF_applyTrim().
#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 */ |
Referenced by LRF_applyTrim().
#define LRF_TRIM_DCOLDO0_SECONDTRIM_CODED_BITS_MASK_STATE_B_DCOLDO_WORKAROUND_CC27XX ((1U << 3U) | (1U << 5U)) /* Bits mask for bit 3 and 5 of DCOLDO0:SECONDTRIM */ |
Referenced by LRF_applyTrim().
#define LRF_TRIM_DCOLDO0_SECONDTRIM_MAX_STATE_B_DCOLDO_WORKAROUND_CC27XX 63U /* DCOLDO0:SECONDTRIM maximum value allowed within the range of 6-bit representation */ |
Referenced by LRF_applyTrim().
#define LRF_TRIM_VERSION_CORRECT_AMOUNT_OF_PA_TRIMS_CC27XX 5 |
Referenced by LRF_applyTrim().
#define LRF_BASE_ADDR 0x40080000U |
Referenced by LRF_applySettings().
#define PBE_RAM_BASE_ADDR 0x40090000U |
Referenced by LRF_applySettings().
#define BUF_RAM_BASE_ADDR 0x40092000U |
#define RXF_UNWRAPPED_BASE_ADDR 0x40093000U |
Referenced by LRF_readRxFifoWords().
#define TXF_UNWRAPPED_BASE_ADDR 0x40093800U |
Referenced by LRF_getTxFifoWrAddr(), and LRF_writeTxFifoWords().
#define MCE_RAM_BASE_ADDR 0x40094000U |
#define RFE_RAM_BASE_ADDR 0x40096000U |
#define S2R_RAM_BASE_ADDR 0x40098000U |
Referenced by RCL_Handler_BLE_CS_readS2RSamples().
#define TOPSM_RAM_SZ 0x00001000U /* 4 KB */ |
Referenced by LRF_loadImage().
#define MAX_REG_CONFIG_LEN 1024U /* 1024 entries, using 4 KB */ |
Referenced by LRF_applySettings().
#define LRF_TXPOWER_REFERENCE_TEMPERATURE 25 |
Reference temperature for TX power, degrees C
Referenced by LRF_programTemperatureCompensatedTxPower().
#define LRF_TXPOWER_TEMPERATURE_SCALING 0x100 |
Scaling factor for TX power temperature coefficients
Referenced by LRF_programTemperatureCompensatedTxPower().
#define LRF_POWER_PERIPH_VALUE | ( | x | ) | (PowerCC23X0_PERIPH_GROUP_LRFD | (x)) |
#define PowerLPF3_PERIPH_LRFD_BUFRAM LRF_POWER_PERIPH_VALUE(LRFDDBELL_CLKCTL_BUFRAM_S) |
Referenced by adcNoiseCallback(), RCL_AdcNoise_get_samples_blocking(), and RCL_AdcNoise_get_samples_callback().
#define PowerLPF3_PERIPH_LRFD_MDM LRF_POWER_PERIPH_VALUE(LRFDDBELL_CLKCTL_MDM_S) |
#define PowerLPF3_PERIPH_LRFD_TRC LRF_POWER_PERIPH_VALUE(LRFDDBELL_CLKCTL_TRC_S) |
typedef uint8_t LRF_TxPowerTable_TempCoeff |
enum LRF_TxPowerResult |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void LRF_programTemperatureCompensatedTxPower | ( | void | ) |
Programs current TX power setting in radio with temperature compensation.
References hal_get_temperature(), LRF_TXPOWER_REFERENCE_TEMPERATURE, LRF_TXPOWER_TEMPERATURE_SCALING, lrfPhyState, LRF_TxPowerTable_Value::rawValue, RFE_PA0_IB_MIN_USED, LRF_TxPowerTable_Entry::tempCoeff, and LRF_TxPowerTable_Entry::value.
Referenced by LRF_getTxFifoWritable(), and LRF_programTxPower().
LRF_TxPowerResult LRF_programTxPower | ( | LRF_TxPowerTable_Index | powerLevel | ) |
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) |
References LRF_programTemperatureCompensatedTxPower(), LRF_TxPower_None, LRF_TxPowerTable_findValue(), LRF_TxPowerTable_INVALID_VALUE, lrfPhyState, LRF_TxPowerTable_Value::rawValue, LRF_TxPowerTable_Index::rawValue, swParamList, 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_scan_init(), RCL_Handler_Ble5_txTest(), 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().
|
inlinestatic |
Request specific clock enable bits for use by the RCL.
mask | Bit mask of clock enable bits to be set; bit positions as in LRFDDBELL_CLKCTL |
References hal_set_rcl_clock_enable().
Referenced by LRF_rclEnableRadioClocks(), RCL_Handler_Adc_Noise_configureS2R(), RCL_Handler_BLE_CS_configureS2R(), and RCL_Handler_BLE_CS_preprocessCommand().
|
inlinestatic |
Remove request of specific clock enable bits for use by the RCL.
mask | Bit mask of clock enable bits to be cleared; bit positions as in LRFDDBELL_CLKCTL |
References hal_clear_rcl_clock_enable().
Referenced by LRF_rclDisableRadioClocks(), and RCL_Handler_Adc_Noise_powerDown().
const LRF_TxShape LRF_shapeBaseGfsk05 |
const LRF_TxShape LRF_shapeBaseGfsk067 |
const LRF_TxShape LRF_shapeBaseGfsk20 |