647 #ifndef ti_drivers_rf__include 648 #define ti_drivers_rf__include 657 #include <ti/drivers/dpl/ClockP.h> 658 #include <ti/drivers/dpl/SemaphoreP.h> 660 #include <ti/devices/DeviceFamily.h> 661 #include DeviceFamily_constructPath(driverlib/rf_common_cmd.h) 662 #include DeviceFamily_constructPath(driverlib/rf_prop_cmd.h) 663 #include DeviceFamily_constructPath(driverlib/rf_ble_cmd.h) 676 #define RF_EventCmdDone (1 << 0) 677 #define RF_EventLastCmdDone (1 << 1) 678 #define RF_EventFGCmdDone (1 << 2) 679 #define RF_EventLastFGCmdDone (1 << 3) 680 #define RF_EventTxDone (1 << 4) 681 #define RF_EventTXAck (1 << 5) 682 #define RF_EventTxCtrl (1 << 6) 683 #define RF_EventTxCtrlAck (1 << 7) 684 #define RF_EventTxCtrlAckAck (1 << 8) 685 #define RF_EventTxRetrans (1 << 9) 686 #define RF_EventTxEntryDone (1 << 10) 687 #define RF_EventTxBufferChange (1 << 11) 688 #define RF_EventRxOk (1 << 16) 689 #define RF_EventRxNOk (1 << 17) 690 #define RF_EventRxIgnored (1 << 18) 691 #define RF_EventRxEmpty (1 << 19) 692 #define RF_EventRxCtrl (1 << 20) 693 #define RF_EventRxCtrlAck (1 << 21) 694 #define RF_EventRxBufFull (1 << 22) 695 #define RF_EventRxEntryDone (1 << 23) 696 #define RF_EventDataWritten (1 << 24) 697 #define RF_EventNDataWritten (1 << 25) 698 #define RF_EventRxAborted (1 << 26) 699 #define RF_EventRxCollisionDetected (1 << 27) 700 #define RF_EventModulesUnlocked (1 << 29) 701 #define RF_EventInternalError (uint32_t)(1 << 31) 702 #define RF_EventMdmSoft 0x0000002000000000 712 #define RF_EventCmdCancelled 0x1000000000000000 713 #define RF_EventCmdAborted 0x2000000000000000 714 #define RF_EventCmdStopped 0x4000000000000000 715 #define RF_EventRatCh 0x0800000000000000 716 #define RF_EventPowerUp 0x0400000000000000 717 #define RF_EventError 0x0200000000000000 718 #define RF_EventCmdPreempted 0x0100000000000000 737 #define RF_CTRL_SET_INACTIVITY_TIMEOUT 0 747 #define RF_CTRL_UPDATE_SETUP_CMD 1 753 #define RF_CTRL_SET_POWERUP_DURATION_MARGIN 2 761 #define RF_CTRL_SET_RAT_RTC_ERR_TOL_VAL 3 773 #define RF_CTRL_SET_POWER_MGMT 4 795 #define RF_CTRL_SET_HWI_PRIORITY 5 817 #define RF_CTRL_SET_SWI_PRIORITY 6 827 #define RF_CTRL_SET_AVAILABLE_RAT_CHANNELS_MASK 7 841 #define RF_TxPowerTable_MIN_DBM -128 849 #define RF_TxPowerTable_MAX_DBM 126 856 #define RF_TxPowerTable_INVALID_DBM 127 875 #define RF_TxPowerTable_INVALID_VALUE 0x3fffff 892 #define RF_TxPowerTable_TERMINATION_ENTRY \ 893 { .power = RF_TxPowerTable_INVALID_DBM, .value = { .rawValue = RF_TxPowerTable_INVALID_VALUE, .paType = RF_TxPowerTable_DefaultPA } } 901 #define RF_TxPowerTable_DEFAULT_PA_ENTRY(bias, gain, boost, coefficient) \ 902 { .rawValue = ((bias) << 0) | ((gain) << 6) | ((boost) << 8) | ((coefficient) << 9), .paType = RF_TxPowerTable_DefaultPA } 910 #define RF_TxPowerTable_HIGH_PA_ENTRY(bias, ibboost, boost, coefficient, ldotrim) \ 911 { .rawValue = ((bias) << 0) | ((ibboost) << 6) | ((boost) << 8) | ((coefficient) << 9) | ((ldotrim) << 16), .paType = RF_TxPowerTable_HighPA } 920 #define RF_GET_RSSI_ERROR_VAL (-128) 921 #define RF_CMDHANDLE_FLUSH_ALL (-1) 922 #define RF_ALLOC_ERROR (-2) 923 #define RF_SCHEDULE_CMD_ERROR (-3) 924 #define RF_ERROR_RAT_PROG (-255) 925 #define RF_ERROR_INVALID_RFMODE (-256) 926 #define RF_ERROR_CMDFS_SYNTH_PROG (-257) 928 #define RF_NUM_SCHEDULE_ACCESS_ENTRIES 2 929 #define RF_NUM_SCHEDULE_COMMAND_ENTRIES 8 930 #define RF_NUM_SCHEDULE_MAP_ENTRIES (RF_NUM_SCHEDULE_ACCESS_ENTRIES + RF_NUM_SCHEDULE_COMMAND_ENTRIES) 931 #define RF_SCH_MAP_CURRENT_CMD_OFFSET RF_NUM_SCHEDULE_ACCESS_ENTRIES 932 #define RF_SCH_MAP_PENDING_CMD_OFFSET (RF_SCH_MAP_CURRENT_CMD_OFFSET + 1) 934 #define RF_ABORT_PREEMPTION (1<<2) 935 #define RF_ABORT_GRACEFULLY (1<<0) 937 #define RF_SCH_CMD_EXECUTION_TIME_UNKNOWN 0 939 #define RF_RAT_ANY_CHANNEL (-1) 940 #define RF_RAT_TICKS_PER_US 4 945 #define RF_convertUsToRatTicks(microseconds) \ 946 ((microseconds) * (RF_RAT_TICKS_PER_US)) 951 #define RF_convertMsToRatTicks(milliseconds) \ 952 ((milliseconds) * 1000 * (RF_RAT_TICKS_PER_US)) 957 #define RF_convertRatTicksToUs(ticks) \ 958 ((ticks) / (RF_RAT_TICKS_PER_US)) 963 #define RF_convertRatTicksToMs(ticks) \ 964 ((ticks) / (1000 * (RF_RAT_TICKS_PER_US))) 979 uint32_t rawValue:22;
1055 void (*cpePatchFxn)(void);
1056 void (*mcePatchFxn)(void);
1057 void (*rfePatchFxn)(void);
1252 #if defined (RF_SINGLEMODE) 1253 typedef struct RF_ObjectSingleMode
RF_Object;
1255 typedef struct RF_ObjectMultiMode
RF_Object;
1261 struct RF_ObjectSingleMode{
1264 uint32_t nInactivityTimeout;
1267 uint32_t nPowerUpDuration;
1268 bool bMeasurePowerUpDuration;
1270 uint16_t nPowerUpDurationMargin;
1279 SemaphoreP_Struct semSync;
1280 RF_EventMask
volatile eventSync;
1282 RF_EventMask unpendCause;
1283 ClockP_Struct clkInactivity;
1291 struct RF_ObjectMultiMode{
1294 uint32_t nInactivityTimeout;
1297 uint32_t nPowerUpDuration;
1298 bool bMeasurePowerUpDuration;
1300 uint16_t nPowerUpDurationMargin;
1303 void* pClientEventCb;
1304 RF_ClientEventMask nClientEventMask;
1311 SemaphoreP_Struct semSync;
1312 RF_EventMask
volatile eventSync;
1314 RF_EventMask unpendCause;
1315 ClockP_Struct clkInactivity;
1316 ClockP_Struct clkReqAccess;
1362 RF_Handle pClientList[2];
1363 uint32_t phySwitchingTimeInUs[2];
1411 typedef void (*
RF_Callback)(RF_Handle h, RF_CmdHandle ch, RF_EventMask e);
1426 typedef void (*
RF_RatCallback)(RF_Handle h, RF_RatHandle rh, RF_EventMask e, uint32_t compareCaptureTime);
1874 extern RF_EventMask
RF_pendCmd(RF_Handle h, RF_CmdHandle ch, RF_EventMask bmEvent);
1945 extern RF_Stat
RF_cancelCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode);
1966 extern RF_Stat
RF_flushCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode);
2057 extern RF_Op*
RF_getCmdOp(RF_Handle h, RF_CmdHandle cmdHnd);
2202 extern RF_Stat
RF_control(RF_Handle h, int8_t ctrl,
void *args);
RF Hardware attributes.
Definition: RF.h:1498
uint32_t allowDelay
Definition: RF.h:1521
RF_RatCaptureMode captureMode
Configuration of the mode of event to cause a capture event.
Definition: RF.h:1639
RF_CmdHandle ch
Command handle (RF_GET_CURR_CMD).
Definition: RF.h:1359
Command not executed because RF core is powered down.
Definition: RF.h:1087
void(* RF_ClientCallback)(RF_Handle h, RF_ClientEvent event, void *arg)
Handles events related to a driver instance.
Definition: RF.h:1443
RF driver configuration parameters.
Definition: RF.h:1468
uint32_t startTime
Start time window in RAT Time for radio access.
Definition: RF.h:1533
RF_RatCallback callback
Callback function to be invoked upon a capture event (optional).
Definition: RF.h:1648
Use RAT user channel 2.
Definition: RF.h:1547
RF_InfoType
Selects the entry of interest in RF_getInfo().
Definition: RF.h:1344
RF_Stat RF_setTxPower(RF_Handle h, RF_TxPowerTable_Value value)
Updates the transmit power configuration of the RF core.
uint16_t nPowerUpDurationMargin
Definition: RF.h:1481
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[1].
Definition: RF.h:1622
The RF core has been powered up the radio setup has been finished.
Definition: RF.h:1152
RF_ClientEvent
Client-related RF driver events.
Definition: RF.h:1151
RF_Stat
Status codes for various RF driver functions.
Definition: RF.h:1085
uint8_t rfMode
Specifies which PHY modes should be activated. Must be set to RF_MODE_MULTIPLE for dual-mode operatio...
Definition: RF.h:1054
RF_Priority priority
Intra client priority.
Definition: RF.h:1520
void(* RF_Callback)(RF_Handle h, RF_CmdHandle ch, RF_EventMask e)
Handles events related to RF command execution.
Definition: RF.h:1411
RF_EventMask RF_pendCmd(RF_Handle h, RF_CmdHandle ch, RF_EventMask bmEvent)
Synchronizes the calling task to an RF operation command ch and returns accumulated event flags...
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[7].
Definition: RF.h:1628
RF_ClientEventMask nClientEventMask
Definition: RF.h:1489
Selects the RTC update signal source.
Definition: RF.h:1556
RF_RatCaptureSource
Selects the source signal for RF_ratCapture().
Definition: RF.h:1555
RF schedule map entry structure.
Definition: RF.h:1370
RF_CmdHandle RF_postCmd(RF_Handle h, RF_Op *pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent)
Appends RF operation commands to the driver's command queue and returns a command handle...
Command finished with success.
Definition: RF.h:1092
RF_EventMask RF_runScheduleCmd(RF_Handle h, RF_Op *pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent)
Runs synchronously a (chain of) RF operation(s) for dual or single-mode.
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[2].
Definition: RF.h:1623
Command not executed because RF driver is busy.
Definition: RF.h:1086
Highest priority. Only use this for urgent commands.
Definition: RF.h:1072
RF_Stat RF_runImmediateCmd(RF_Handle h, uint32_t *pCmdStruct)
Send any Immediate command.
High-power PA.
Definition: RF.h:1025
void RF_RatConfigCompare_init(RF_RatConfigCompare *channelConfig)
Initialize the configuration structure to be used to set up a RAT compare event.
RF_RatHandle channel
RF_RatHandle identifies the channel to be allocated.
Definition: RF.h:1637
Sets the output high independently of any RAT events.
Definition: RF.h:1609
uint64_t RF_EventMask
Data type for events during command execution.
Definition: RF.h:1101
uint32_t RF_ClientEventMask
Event mask for combining RF_ClientEvent event flags in RF_Params::nClientEventMask.
Definition: RF.h:1211
uint32_t nPowerUpDuration
Definition: RF.h:1472
Command successfully scheduled for execution.
Definition: RF.h:1093
uint8_t swiPriority
Priority for SWIs belong to the RF driver.
Definition: RF.h:1500
Provide the client to client switching times.
Definition: RF.h:1350
RF_TxPowerTable_Value RF_getTxPower(RF_Handle h)
Returns the currently configured transmit power configuration.
void RF_close(RF_Handle h)
Close client connection to RF driver.
Use RAT user channel 0.
Definition: RF.h:1545
Cmd is found in the pool but was already ended.
Definition: RF.h:1090
RF_RatOutputMode
Selects the mode of the RAT_GPO[x] for RF_ratCompare() or RF_ratCapture().
Definition: RF.h:1603
RF_Handle RF_open(RF_Object *pObj, RF_Mode *pRfMode, RF_RadioSetup *pOpSetup, RF_Params *params)
Creates a a new client instance of the RF driver.
rfc_CMD_PROP_RADIO_DIV_SETUP_t prop_div
Radio setup command for PROPRIETARY mode on Sub-1 Ghz.
Definition: RF.h:1119
Use RAT user channel 1.
Definition: RF.h:1546
uint32_t RF_getCurrentTime(void)
Return current radio timer value.
Signals the client that the RF driver is about to switch over from another client.
Definition: RF.h:1157
RF_GlobalEventMask globalEventMask
Event mask which the globalCallback is invoked upon.
Definition: RF.h:1503
Selects the Generic event of Event Fabric as source.
Definition: RF.h:1557
Stores output parameters for RF_getInfo().
Definition: RF.h:1358
RF_Object * RF_Handle
A handle that is returned by to RF_open().
Definition: RF.h:1328
uint32_t RF_GlobalEventMask
Event mask for combining RF_GlobalEvent event flags in RFCC26XX_HWAttrsV2::globalEventMask.
Definition: RF.h:1216
void(* RF_GlobalCallback)(RF_Handle h, RF_GlobalEvent event, void *arg)
Handles global events as part of PHY configuration.
Definition: RF.h:1458
RF_Handle pClient
Pointer to client object.
Definition: RF.h:1372
Provide the client list.
Definition: RF.h:1349
void(* RF_RatCallback)(RF_Handle h, RF_RatHandle rh, RF_EventMask e, uint32_t compareCaptureTime)
Handles events related to the Radio Timer (RAT).
Definition: RF.h:1426
#define RF_NUM_SCHEDULE_ACCESS_ENTRIES
Number of access request entries.
Definition: RF.h:928
RAT related IO parameter structure.
Definition: RF.h:1658
RF_CmdHandle ch
Command handle.
Definition: RF.h:1371
RF_EventMask RF_runCmd(RF_Handle h, RF_Op *pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent)
Runs synchronously an RF operation command or a chain of commands and returns the termination reason...
int8_t RF_TxPowerTable_findPowerLevel(RF_TxPowerTable_Entry table[], RF_TxPowerTable_Value value)
Retrieves a power level in dBm for a given power configuration value.
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[3].
Definition: RF.h:1624
RF_Priority priority
Priority of the command or access request.
Definition: RF.h:1375
rfc_radioOp_t RF_Op
Base type for all radio operation commands.
Definition: RF.h:1042
Default priority. Use this in single-client applications.
Definition: RF.h:1074
RF_ratCapture parameter structure.
Definition: RF.h:1635
int8_t RF_getRssi(RF_Handle h)
Get RSSI value.
bool bRadioState
Current RF core power state (RF_GET_RADIO_STATE).
Definition: RF.h:1361
RF_RatOutputSelect select
The signal which shall be connected to the GPO.
Definition: RF.h:1660
uint32_t duration
Radio access duration in RAT Ticks requested by the client.
Definition: RF.h:1532
RF_RatCaptureSource source
Configuration of the event source to cause a capture event.
Definition: RF.h:1638
void RF_yield(RF_Handle h)
Signal that radio client is not going to issue more commands in a while.
RF_RatCaptureRepetition repeat
Configuration of the channel to be used in single or repeate mode.
Definition: RF.h:1640
void RF_RatConfigOutput_init(RF_RatConfigOutput *ioConfig)
Initialize the configuration structure to be used to set up a RAT IO.
#define RF_NUM_SCHEDULE_COMMAND_ENTRIES
Number of scheduled command entries.
Definition: RF.h:929
uint32_t startTime
Start time (in RAT tick) of the command or access request.
Definition: RF.h:1373
uint32_t endTime
End time in RAT Ticks for the radio command.
Definition: RF.h:1519
Rearm the channel after each capture events.
Definition: RF.h:1586
RF_GlobalCallback globalCallback
Pointer to a callback function serving client independent events listed in RF_GlobalEvent.
Definition: RF.h:1502
Create a bitmask showing available RAT channels.
Definition: RF.h:1346
RF_Stat RF_flushCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode)
Abort/stop/cancel command and any subsequent commands in command queue.
RF_Stat RF_cancelCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode)
Abort/stop/cancel single command in command queue.
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[4].
Definition: RF.h:1625
RF_Callback pPowerCb
Definition: RF.h:1476
RF_RatCaptureMode
Selects the mode of RF_ratCapture().
Definition: RF.h:1571
int16_t RF_CmdHandle
Command handle that is returned by RF_postCmd().
Definition: RF.h:1230
RF_ClientCallback pClientEventCb
Definition: RF.h:1486
uint16_t availRatCh
Available RAT channels (RF_GET_AVAIL_RAT_CH).
Definition: RF.h:1360
RF_TxPowerTable_PAType
Selects a power amplifier path in a TX power value.
Definition: RF.h:1023
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[6].
Definition: RF.h:1627
uint32_t timeout
Definition: RF.h:1650
RF_RatOutputSelect
Selects GPO to be used with RF_ratCompare() or RF_ratCapture().
Definition: RF.h:1621
RF_Op * RF_getCmdOp(RF_Handle h, RF_CmdHandle cmdHnd)
Get command structure pointer.
General error specifier.
Definition: RF.h:1091
uint32_t endTime
End time (in RAT tick) of the command or access request.
Definition: RF.h:1374
int8_t power
Definition: RF.h:1010
rfc_CMD_RADIO_SETUP_t common
Radio setup command for BLE and IEEE modes.
Definition: RF.h:1116
Free the channel after the first capture event.
Definition: RF.h:1585
Rising edge of the selected source will trigg a capture event.
Definition: RF.h:1572
int8_t RF_RatHandle
RAT handle that is returned by RF_ratCompare() or RF_ratCapture().
Definition: RF.h:1339
RF_RatHandle RF_ratCapture(RF_Handle rfHandle, RF_RatConfigCapture *channelConfig, RF_RatConfigOutput *ioConfig)
Setup a Radio Timer (RAT) channel in capture mode.
RF request access parameter struct.
Definition: RF.h:1531
RF_Stat RF_getInfo(RF_Handle h, RF_InfoType type, RF_InfoVal *pValue)
Get value for some RF driver parameters.
Command finished with an error.
Definition: RF.h:1088
Provide a timetable of all scheduled commands.
Definition: RF.h:1348
RF_Priority
Scheduling priority of RF operation commands.
Definition: RF.h:1071
RF_RatOutputMode mode
The mode the GPO should operate in.
Definition: RF.h:1659
Function was called with an invalid parameter.
Definition: RF.h:1089
RF_AllowDelay
Controls the behaviour of the RF_scheduleCmd() API.
Definition: RF.h:1509
TX power configuration entry in a TX power table.
Definition: RF.h:1008
High priority. Use this for time-critical commands in synchronous protocols.
Definition: RF.h:1073
void RF_RatConfigCapture_init(RF_RatConfigCapture *channelConfig)
Initialize the configuration structure to be used to set up a RAT capture event.
A unified type for radio setup commands of different PHYs.
Definition: RF.h:1112
RF_RatHandle RF_ratCompare(RF_Handle rfHandle, RF_RatConfigCompare *channelConfig, RF_RatConfigOutput *ioConfig)
Setup a Radio Timer (RAT) channel in compare mode.
RF_TxPowerTable_Value value
PA hardware configuration for that power level.
Definition: RF.h:1013
uint32_t nInactivityTimeout
Definition: RF.h:1469
RF schedule map structure.
Definition: RF.h:1381
RF_ratCompare parameter structure.
Definition: RF.h:1647
RF_TxPowerTable_Value RF_TxPowerTable_findValue(RF_TxPowerTable_Entry table[], int8_t powerLevel)
Retrieves a power configuration value for a given power level in dBm.
Generates a one-clock period width pulse.
Definition: RF.h:1604
RF_RatSelectChannel
Select the preferred RAT channel through the configuration of RF_ratCompare() or RF_ratCapture().
Definition: RF.h:1543
Sets the output high on a RAT event.
Definition: RF.h:1605
Falling edge of the selected source will trigg a capture event.
Definition: RF.h:1573
Inverts the polarity of the output.
Definition: RF.h:1607
Chose the first available channel.
Definition: RF.h:1544
RF_RatHandle channel
RF_RatHandle identifies the channel to be allocated.
Definition: RF.h:1649
bool xoscHfAlwaysNeeded
Indicate that the XOSC HF should be turned on by the power driver.
Definition: RF.h:1501
RF_Stat RF_requestAccess(RF_Handle h, RF_AccessParams *pParams)
Request radio access.
RF_Stat RF_runDirectCmd(RF_Handle h, uint32_t cmd)
Send any Direct command.
void RF_ScheduleCmdParams_init(RF_ScheduleCmdParams *pSchParams)
Initialize the configuration structure to default values to be used with the RF_scheduleCmd() API...
RF_Stat RF_ratDisableChannel(RF_Handle rfHandle, RF_RatHandle ratHandle)
Disable a RAT channel.
Retrieve a command handle of the current command.
Definition: RF.h:1345
Specifies a RF core firmware configuration.
Definition: RF.h:1053
rfc_command_t commandId
Definition: RF.h:1113
RF_RatCaptureRepetition
Selects the repetition of RF_ratCapture().
Definition: RF.h:1584
rfc_CMD_PROP_RADIO_SETUP_t prop
Radio setup command for PROPRIETARY mode on 2.4 GHz.
Definition: RF.h:1118
rfc_CMD_BLE5_RADIO_SETUP_t ble5
Radio setup command for BLE5 mode.
Definition: RF.h:1117
PA configuration value for a certain power level.
Definition: RF.h:978
RF_RatCallback callback
Callback function to be invoked upon a capture event (optional).
Definition: RF.h:1636
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[5].
Definition: RF.h:1626
Function finished with success.
Definition: RF.h:1094
RF_Callback pErrCb
Definition: RF.h:1479
Sets the output low on a RAT event.
Definition: RF.h:1606
RF_CmdHandle RF_scheduleCmd(RF_Handle h, RF_Op *pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent)
Schedule an RF operation (chain) to the command queue.
Sets the output low independently of any RAT events.
Definition: RF.h:1608
RF_GlobalEvent
Global RF driver events.
Definition: RF.h:1197
RF_Stat RF_control(RF_Handle h, int8_t ctrl, void *args)
Set RF control parameters.
uint8_t hwiPriority
Priority for HWIs belong to the RF driver.
Definition: RF.h:1499
void RF_Params_init(RF_Params *params)
Function to initialize the RF_Params struct to its defaults.
Stores the client's internal confguration and states.
Show the current RF core power state. 0: Radio OFF, 1: Radio ON.
Definition: RF.h:1347
RF_Priority priority
Access priority.
Definition: RF.h:1534
void * pScheduleMap
Pointer to scheduling map (RF_GET_SCHEDULE_MAP).
Definition: RF.h:1364
Default PA.
Definition: RF.h:1024