RF.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016-2018, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
647 #ifndef ti_drivers_rf__include
648 #define ti_drivers_rf__include
649 
650 #ifdef __cplusplus
651 extern "C" {
652 #endif
653 
654 #include <stdint.h>
655 #include <stdbool.h>
656 
657 #include <ti/drivers/dpl/ClockP.h>
658 #include <ti/drivers/dpl/SemaphoreP.h>
659 
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)
664 
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_EventPaChanged (1 << 14)
689 #define RF_EventRxOk (1 << 16)
690 #define RF_EventRxNOk (1 << 17)
691 #define RF_EventRxIgnored (1 << 18)
692 #define RF_EventRxEmpty (1 << 19)
693 #define RF_EventRxCtrl (1 << 20)
694 #define RF_EventRxCtrlAck (1 << 21)
695 #define RF_EventRxBufFull (1 << 22)
696 #define RF_EventRxEntryDone (1 << 23)
697 #define RF_EventDataWritten (1 << 24)
698 #define RF_EventNDataWritten (1 << 25)
699 #define RF_EventRxAborted (1 << 26)
700 #define RF_EventRxCollisionDetected (1 << 27)
701 #define RF_EventModulesUnlocked (1 << 29)
702 #define RF_EventInternalError (uint32_t)(1 << 31)
703 #define RF_EventMdmSoft 0x0000002000000000
704 
713 #define RF_EventCmdCancelled 0x1000000000000000
714 #define RF_EventCmdAborted 0x2000000000000000
715 #define RF_EventCmdStopped 0x4000000000000000
716 #define RF_EventRatCh 0x0800000000000000
717 #define RF_EventPowerUp 0x0400000000000000
718 #define RF_EventError 0x0200000000000000
719 #define RF_EventCmdPreempted 0x0100000000000000
720 
738 #define RF_CTRL_SET_INACTIVITY_TIMEOUT 0
739 
748 #define RF_CTRL_UPDATE_SETUP_CMD 1
749 
754 #define RF_CTRL_SET_POWERUP_DURATION_MARGIN 2
755 
762 #define RF_CTRL_SET_RAT_RTC_ERR_TOL_VAL 3
763 
774 #define RF_CTRL_SET_POWER_MGMT 4
775 
796 #define RF_CTRL_SET_HWI_PRIORITY 5
797 
818 #define RF_CTRL_SET_SWI_PRIORITY 6
819 
828 #define RF_CTRL_SET_AVAILABLE_RAT_CHANNELS_MASK 7
829 
842 #define RF_TxPowerTable_MIN_DBM -128
843 
850 #define RF_TxPowerTable_MAX_DBM 126
851 
857 #define RF_TxPowerTable_INVALID_DBM 127
858 
876 #define RF_TxPowerTable_INVALID_VALUE 0x3fffff
877 
893 #define RF_TxPowerTable_TERMINATION_ENTRY \
894  { .power = RF_TxPowerTable_INVALID_DBM, .value = { .rawValue = RF_TxPowerTable_INVALID_VALUE, .paType = RF_TxPowerTable_DefaultPA } }
895 
902 #define RF_TxPowerTable_DEFAULT_PA_ENTRY(bias, gain, boost, coefficient) \
903  { .rawValue = ((bias) << 0) | ((gain) << 6) | ((boost) << 8) | ((coefficient) << 9), .paType = RF_TxPowerTable_DefaultPA }
904 
911 #define RF_TxPowerTable_HIGH_PA_ENTRY(bias, ibboost, boost, coefficient, ldotrim) \
912  { .rawValue = ((bias) << 0) | ((ibboost) << 6) | ((boost) << 8) | ((coefficient) << 9) | ((ldotrim) << 16), .paType = RF_TxPowerTable_HighPA }
913 
914 
921 #define RF_GET_RSSI_ERROR_VAL (-128)
922 #define RF_CMDHANDLE_FLUSH_ALL (-1)
923 #define RF_ALLOC_ERROR (-2)
924 #define RF_SCHEDULE_CMD_ERROR (-3)
925 #define RF_ERROR_RAT_PROG (-255)
926 #define RF_ERROR_INVALID_RFMODE (-256)
927 #define RF_ERROR_CMDFS_SYNTH_PROG (-257)
928 
929 #define RF_NUM_SCHEDULE_ACCESS_ENTRIES 2
930 #define RF_NUM_SCHEDULE_COMMAND_ENTRIES 8
931 #define RF_NUM_SCHEDULE_MAP_ENTRIES (RF_NUM_SCHEDULE_ACCESS_ENTRIES + RF_NUM_SCHEDULE_COMMAND_ENTRIES)
932 #define RF_SCH_MAP_CURRENT_CMD_OFFSET RF_NUM_SCHEDULE_ACCESS_ENTRIES
933 #define RF_SCH_MAP_PENDING_CMD_OFFSET (RF_SCH_MAP_CURRENT_CMD_OFFSET + 1)
934 
935 #define RF_ABORT_PREEMPTION (1<<2)
936 #define RF_ABORT_GRACEFULLY (1<<0)
937 
938 #define RF_SCH_CMD_EXECUTION_TIME_UNKNOWN 0
939 
940 #define RF_RAT_ANY_CHANNEL (-1)
941 #define RF_RAT_TICKS_PER_US 4
942 
943 #define RF_LODIVIDER_MASK 0x7F
944 
945 
948 #define RF_convertUsToRatTicks(microseconds) \
949  ((microseconds) * (RF_RAT_TICKS_PER_US))
950 
954 #define RF_convertMsToRatTicks(milliseconds) \
955  ((milliseconds) * 1000 * (RF_RAT_TICKS_PER_US))
956 
960 #define RF_convertRatTicksToUs(ticks) \
961  ((ticks) / (RF_RAT_TICKS_PER_US))
962 
966 #define RF_convertRatTicksToMs(ticks) \
967  ((ticks) / (1000 * (RF_RAT_TICKS_PER_US)))
968 
969 
981 typedef struct {
982  uint32_t rawValue:22;
983  uint32_t __dummy:9;
987  uint32_t paType:1;
992 
1011 typedef struct
1012 {
1013  int8_t power;
1014 
1017 } __attribute__((packed)) RF_TxPowerTable_Entry;
1018 
1019 
1026 typedef enum {
1030 
1031 
1045 typedef rfc_radioOp_t RF_Op;
1046 
1047 
1056 typedef struct {
1057  uint8_t rfMode;
1058  void (*cpePatchFxn)(void);
1059  void (*mcePatchFxn)(void);
1060  void (*rfePatchFxn)(void);
1061 } RF_Mode;
1062 
1073 typedef enum {
1077 } RF_Priority;
1078 
1087 typedef enum {
1093  RF_StatError = 0x80,
1097 } RF_Stat;
1098 
1103 typedef uint64_t RF_EventMask;
1104 
1114 typedef union {
1115  rfc_command_t commandId;
1116  rfc_CMD_RADIO_SETUP_t common;
1118  rfc_CMD_BLE5_RADIO_SETUP_t ble5;
1119  rfc_CMD_PROP_RADIO_SETUP_t prop;
1120  rfc_CMD_PROP_RADIO_DIV_SETUP_t prop_div;
1121 
1122 #if (DeviceFamily_PARENT == DeviceFamily_PARENT_CC13X2_CC26X2)
1123  rfc_CMD_RADIO_SETUP_PA_t common_pa;
1124  rfc_CMD_BLE5_RADIO_SETUP_PA_t ble5_pa;
1125  rfc_CMD_PROP_RADIO_SETUP_PA_t prop_pa;
1126  rfc_CMD_PROP_RADIO_DIV_SETUP_PA_t prop_div_pa;
1127 #endif
1128 } RF_RadioSetup;
1129 
1158 typedef enum {
1161 
1165 } RF_ClientEvent;
1166 
1204 typedef enum {
1206 
1210 } RF_GlobalEvent;
1213 
1214 
1218 typedef uint32_t RF_ClientEventMask;
1219 
1223 typedef uint32_t RF_GlobalEventMask;
1224 
1237 typedef int16_t RF_CmdHandle;
1238 
1259 #if defined (RF_SINGLEMODE)
1260  typedef struct RF_ObjectSingleMode RF_Object;
1261 #else
1262  typedef struct RF_ObjectMultiMode RF_Object;
1263 #endif
1264 
1265 /* Definition of the RF_Object structure for single-mode applications.
1266  * It is applicable with the single-mode RF driver through the #RF_Object common type.
1267  */
1268 struct RF_ObjectSingleMode{
1270  struct {
1271  uint32_t nInactivityTimeout;
1272  RF_Mode* pRfMode;
1273  RF_RadioSetup* pRadioSetup;
1274  uint32_t nPowerUpDuration;
1275  bool bMeasurePowerUpDuration;
1276  bool bUpdateSetup;
1277  uint16_t nPowerUpDurationMargin;
1278  void* pPowerCb;
1279  void* pErrCb;
1280  } clientConfig;
1282  struct {
1283  struct {
1284  rfc_CMD_FS_t cmdFs;
1285  } mode_state;
1286  SemaphoreP_Struct semSync;
1287  RF_EventMask volatile eventSync;
1288  void* pCbSync;
1289  RF_EventMask unpendCause;
1290  ClockP_Struct clkInactivity;
1291  bool bYielded;
1292  } state;
1293 };
1294 
1298 struct RF_ObjectMultiMode{
1300  struct {
1301  uint32_t nInactivityTimeout;
1302  RF_Mode* pRfMode;
1303  RF_RadioSetup* pRadioSetup;
1304  uint32_t nPowerUpDuration;
1305  bool bMeasurePowerUpDuration;
1306  bool bUpdateSetup;
1307  uint16_t nPowerUpDurationMargin;
1308  void* pPowerCb;
1309  void* pErrCb;
1310  void* pClientEventCb;
1311  RF_ClientEventMask nClientEventMask;
1312  } clientConfig;
1314  struct {
1315  struct {
1316  rfc_CMD_FS_t cmdFs;
1317  } mode_state;
1318  SemaphoreP_Struct semSync;
1319  RF_EventMask volatile eventSync;
1320  void* pCbSync;
1321  RF_EventMask unpendCause;
1322  ClockP_Struct clkInactivity;
1323  ClockP_Struct clkReqAccess;
1324  bool bYielded;
1325  } state;
1326 };
1327 
1336 
1337 
1346 typedef int8_t RF_RatHandle;
1347 
1351 typedef enum {
1358 } RF_InfoType;
1359 
1365 typedef union {
1366  RF_CmdHandle ch;
1367  uint16_t availRatCh;
1369  RF_Handle pClientList[2];
1370  uint32_t phySwitchingTimeInUs[2];
1372 } RF_InfoVal;
1373 
1377 typedef struct {
1378  RF_CmdHandle ch;
1379  RF_Handle pClient;
1380  uint32_t startTime;
1381  uint32_t endTime;
1384 
1388 typedef struct {
1391 } RF_ScheduleMap;
1392 
1418 typedef void (*RF_Callback)(RF_Handle h, RF_CmdHandle ch, RF_EventMask e);
1419 
1433 typedef void (*RF_RatCallback)(RF_Handle h, RF_RatHandle rh, RF_EventMask e, uint32_t compareCaptureTime);
1434 
1450 typedef void (*RF_ClientCallback)(RF_Handle h, RF_ClientEvent event, void* arg);
1451 
1465 typedef void (*RF_GlobalCallback)(RF_Handle h, RF_GlobalEvent event, void* arg);
1466 
1475 typedef struct {
1477 
1479  uint32_t nPowerUpDuration;
1480 
1484 
1487 
1489 
1494 
1496  RF_ClientEventMask nClientEventMask;
1497 } RF_Params;
1499 
1505 typedef struct {
1506  uint8_t hwiPriority;
1507  uint8_t swiPriority;
1510  RF_GlobalEventMask globalEventMask;
1512 
1516 typedef enum {
1518  RF_AllowDelayAny = UINT32_MAX
1519 } RF_AllowDelay;
1520 
1521 /* @brief RF schedule command parameter struct
1522  *
1523  * RF schedule command parameters are used with the RF_scheduleCmd() call.
1524  */
1525 typedef struct {
1526  uint32_t endTime;
1528  uint32_t allowDelay;
1533 
1538 typedef struct {
1539  uint32_t duration;
1540  uint32_t startTime;
1542 } RF_AccessParams;
1543 
1550 typedef enum {
1556 
1562 typedef enum {
1572 
1578 typedef enum {
1584 
1591 typedef enum {
1595 
1610 typedef enum {
1618 
1628 typedef enum {
1637 
1642 typedef struct {
1644  RF_RatHandle channel;
1649 
1654 typedef struct {
1656  RF_RatHandle channel;
1657  uint32_t timeout;
1660 
1665 typedef struct {
1669 
1702 extern RF_Handle RF_open(RF_Object *pObj, RF_Mode *pRfMode, RF_RadioSetup *pRadioSetup, RF_Params *params);
1703 
1714 extern void RF_close(RF_Handle h);
1715 
1726 extern uint32_t RF_getCurrentTime(void);
1727 
1782 extern RF_CmdHandle RF_postCmd(RF_Handle h, RF_Op *pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent);
1783 
1792 extern void RF_ScheduleCmdParams_init(RF_ScheduleCmdParams *pSchParams);
1793 
1820 extern RF_CmdHandle RF_scheduleCmd(RF_Handle h, RF_Op *pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent);
1821 
1881 extern RF_EventMask RF_pendCmd(RF_Handle h, RF_CmdHandle ch, RF_EventMask bmEvent);
1882 
1910 extern RF_EventMask RF_runCmd(RF_Handle h, RF_Op *pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent);
1911 
1931 extern RF_EventMask RF_runScheduleCmd(RF_Handle h, RF_Op *pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent);
1932 
1952 extern RF_Stat RF_cancelCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode);
1953 
1954 
1973 extern RF_Stat RF_flushCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode);
1974 
1988 extern RF_Stat RF_runImmediateCmd(RF_Handle h, uint32_t *pCmdStruct);
1989 
2003 extern RF_Stat RF_runDirectCmd(RF_Handle h, uint32_t cmd);
2004 
2019 extern void RF_yield(RF_Handle h);
2020 
2031 extern void RF_Params_init(RF_Params *params);
2032 
2043 extern RF_Stat RF_getInfo(RF_Handle h, RF_InfoType type, RF_InfoVal *pValue);
2044 
2053 extern int8_t RF_getRssi(RF_Handle h);
2054 
2064 extern RF_Op* RF_getCmdOp(RF_Handle h, RF_CmdHandle cmdHnd);
2065 
2074 extern void RF_RatConfigCompare_init(RF_RatConfigCompare* channelConfig);
2075 
2084 extern void RF_RatConfigCapture_init(RF_RatConfigCapture* channelConfig);
2085 
2094 extern void RF_RatConfigOutput_init(RF_RatConfigOutput* ioConfig);
2095 
2137 extern RF_RatHandle RF_ratCompare(RF_Handle rfHandle, RF_RatConfigCompare* channelConfig, RF_RatConfigOutput* ioConfig);
2138 
2178 extern RF_RatHandle RF_ratCapture(RF_Handle rfHandle, RF_RatConfigCapture* channelConfig, RF_RatConfigOutput* ioConfig);
2179 
2197 extern RF_Stat RF_ratDisableChannel(RF_Handle rfHandle, RF_RatHandle ratHandle);
2198 
2209 extern RF_Stat RF_control(RF_Handle h, int8_t ctrl, void *args);
2210 
2229 extern RF_Stat RF_requestAccess(RF_Handle h, RF_AccessParams *pParams);
2230 
2250 extern RF_TxPowerTable_Value RF_getTxPower(RF_Handle h);
2251 
2271 extern RF_Stat RF_setTxPower(RF_Handle h, RF_TxPowerTable_Value value);
2272 
2292 
2317 extern RF_TxPowerTable_Value RF_TxPowerTable_findValue(RF_TxPowerTable_Entry table[], int8_t powerLevel);
2318 
2319 
2320 #ifdef __cplusplus
2321 }
2322 #endif
2323 
2324 #endif /* ti_drivers_rf__include */
RF Hardware attributes.
Definition: RF.h:1505
uint32_t allowDelay
Definition: RF.h:1528
RF_RatCaptureMode captureMode
Configuration of the mode of event to cause a capture event.
Definition: RF.h:1646
RF_CmdHandle ch
Command handle (RF_GET_CURR_CMD).
Definition: RF.h:1366
Command not executed because RF core is powered down.
Definition: RF.h:1089
void(* RF_ClientCallback)(RF_Handle h, RF_ClientEvent event, void *arg)
Handles events related to a driver instance.
Definition: RF.h:1450
RF driver configuration parameters.
Definition: RF.h:1475
rfc_CMD_RADIO_SETUP_PA_t common_pa
Radio setup command for BLE and IEEE modes with High Gain PA.
Definition: RF.h:1123
uint32_t startTime
Start time window in RAT Time for radio access.
Definition: RF.h:1540
RF_RatCallback callback
Callback function to be invoked upon a capture event (optional).
Definition: RF.h:1655
Use RAT user channel 2.
Definition: RF.h:1554
RF_InfoType
Selects the entry of interest in RF_getInfo().
Definition: RF.h:1351
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:1488
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[1].
Definition: RF.h:1629
The RF core has been powered up the radio setup has been finished.
Definition: RF.h:1159
RF_ClientEvent
Client-related RF driver events.
Definition: RF.h:1158
RF_Stat
Status codes for various RF driver functions.
Definition: RF.h:1087
rfc_CMD_PROP_RADIO_SETUP_PA_t prop_pa
Radio setup command for PROPRIETARY mode on 2.4 GHz with High Gain PA.
Definition: RF.h:1125
uint8_t rfMode
Specifies which PHY modes should be activated. Must be set to RF_MODE_MULTIPLE for dual-mode operatio...
Definition: RF.h:1057
RF_Priority priority
Intra client priority.
Definition: RF.h:1527
void(* RF_Callback)(RF_Handle h, RF_CmdHandle ch, RF_EventMask e)
Handles events related to RF command execution.
Definition: RF.h:1418
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:1635
RF_ClientEventMask nClientEventMask
Definition: RF.h:1496
Selects the RTC update signal source.
Definition: RF.h:1563
RF_RatCaptureSource
Selects the source signal for RF_ratCapture().
Definition: RF.h:1562
RF schedule map entry structure.
Definition: RF.h:1377
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&#39;s command queue and returns a command handle...
Command finished with success.
Definition: RF.h:1094
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:1630
Command not executed because RF driver is busy.
Definition: RF.h:1088
Highest priority. Only use this for urgent commands.
Definition: RF.h:1074
RF_Stat RF_runImmediateCmd(RF_Handle h, uint32_t *pCmdStruct)
Send any Immediate command.
High-power PA.
Definition: RF.h:1028
Definition: RF.h:1565
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:1644
Sets the output high independently of any RAT events.
Definition: RF.h:1616
uint64_t RF_EventMask
Data type for events during command execution.
Definition: RF.h:1103
uint32_t RF_ClientEventMask
Event mask for combining RF_ClientEvent event flags in RF_Params::nClientEventMask.
Definition: RF.h:1218
uint32_t nPowerUpDuration
Definition: RF.h:1479
Command successfully scheduled for execution.
Definition: RF.h:1095
uint8_t swiPriority
Priority for SWIs belong to the RF driver.
Definition: RF.h:1507
Provide the client to client switching times.
Definition: RF.h:1357
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:1552
Definition: RF.h:1160
Cmd is found in the pool but was already ended.
Definition: RF.h:1092
RF_RatOutputMode
Selects the mode of the RAT_GPO[x] for RF_ratCompare() or RF_ratCapture().
Definition: RF.h:1610
rfc_CMD_PROP_RADIO_DIV_SETUP_t prop_div
Radio setup command for PROPRIETARY mode on Sub-1 Ghz.
Definition: RF.h:1120
Use RAT user channel 1.
Definition: RF.h:1553
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:1164
RF_GlobalEventMask globalEventMask
Event mask which the globalCallback is invoked upon.
Definition: RF.h:1510
Selects the Generic event of Event Fabric as source.
Definition: RF.h:1564
Stores output parameters for RF_getInfo().
Definition: RF.h:1365
RF_Object * RF_Handle
A handle that is returned by to RF_open().
Definition: RF.h:1335
uint32_t RF_GlobalEventMask
Event mask for combining RF_GlobalEvent event flags in RFCC26XX_HWAttrsV2::globalEventMask.
Definition: RF.h:1223
void(* RF_GlobalCallback)(RF_Handle h, RF_GlobalEvent event, void *arg)
Handles global events as part of PHY configuration.
Definition: RF.h:1465
RF_Handle pClient
Pointer to client object.
Definition: RF.h:1379
Provide the client list.
Definition: RF.h:1356
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:1433
#define RF_NUM_SCHEDULE_ACCESS_ENTRIES
Number of access request entries.
Definition: RF.h:929
RAT related IO parameter structure.
Definition: RF.h:1665
RF_CmdHandle ch
Command handle.
Definition: RF.h:1378
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:1631
RF_Priority priority
Priority of the command or access request.
Definition: RF.h:1382
rfc_radioOp_t RF_Op
Base type for all radio operation commands.
Definition: RF.h:1045
Definition: RF.h:1581
Default priority. Use this in single-client applications.
Definition: RF.h:1076
RF_ratCapture parameter structure.
Definition: RF.h:1642
int8_t RF_getRssi(RF_Handle h)
Get RSSI value.
bool bRadioState
Current RF core power state (RF_GET_RADIO_STATE).
Definition: RF.h:1368
RF_RatOutputSelect select
The signal which shall be connected to the GPO.
Definition: RF.h:1667
uint32_t duration
Radio access duration in RAT Ticks requested by the client.
Definition: RF.h:1539
RF_RatCaptureSource source
Configuration of the event source to cause a capture event.
Definition: RF.h:1645
Definition: RF.h:1517
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:1647
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:930
uint32_t startTime
Start time (in RAT tick) of the command or access request.
Definition: RF.h:1380
uint32_t endTime
End time in RAT Ticks for the radio command.
Definition: RF.h:1526
Rearm the channel after each capture events.
Definition: RF.h:1593
RF_GlobalCallback globalCallback
Pointer to a callback function serving client independent events listed in RF_GlobalEvent.
Definition: RF.h:1509
Definition: RF.h:1518
Definition: RF.h:1568
Create a bitmask showing available RAT channels.
Definition: RF.h:1353
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.
Definition: RF.h:1525
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[4].
Definition: RF.h:1632
RF_Callback pPowerCb
Definition: RF.h:1483
RF_RatCaptureMode
Selects the mode of RF_ratCapture().
Definition: RF.h:1578
int16_t RF_CmdHandle
Command handle that is returned by RF_postCmd().
Definition: RF.h:1237
RF_ClientCallback pClientEventCb
Definition: RF.h:1493
uint16_t availRatCh
Available RAT channels (RF_GET_AVAIL_RAT_CH).
Definition: RF.h:1367
RF_TxPowerTable_PAType
Selects a power amplifier path in a TX power value.
Definition: RF.h:1026
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[6].
Definition: RF.h:1634
rfc_CMD_BLE5_RADIO_SETUP_PA_t ble5_pa
Radio setup command for BLE5 mode with High Gain PA.
Definition: RF.h:1124
uint32_t timeout
Definition: RF.h:1657
RF_RatOutputSelect
Selects GPO to be used with RF_ratCompare() or RF_ratCapture().
Definition: RF.h:1628
RF_Op * RF_getCmdOp(RF_Handle h, RF_CmdHandle cmdHnd)
Get command structure pointer.
General error specifier.
Definition: RF.h:1093
uint32_t endTime
End time (in RAT tick) of the command or access request.
Definition: RF.h:1381
int8_t power
Definition: RF.h:1013
Free the channel after the first capture event.
Definition: RF.h:1592
Rising edge of the selected source will trigg a capture event.
Definition: RF.h:1579
int8_t RF_RatHandle
RAT handle that is returned by RF_ratCompare() or RF_ratCapture().
Definition: RF.h:1346
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:1538
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:1090
Provide a timetable of all scheduled commands.
Definition: RF.h:1355
RF_Priority
Scheduling priority of RF operation commands.
Definition: RF.h:1073
RF_RatOutputMode mode
The mode the GPO should operate in.
Definition: RF.h:1666
Function was called with an invalid parameter.
Definition: RF.h:1091
RF_AllowDelay
Controls the behaviour of the RF_scheduleCmd() API.
Definition: RF.h:1516
TX power configuration entry in a TX power table.
Definition: RF.h:1011
High priority. Use this for time-critical commands in synchronous protocols.
Definition: RF.h:1075
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:1114
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:1016
uint32_t nInactivityTimeout
Definition: RF.h:1476
RF schedule map structure.
Definition: RF.h:1388
RF_ratCompare parameter structure.
Definition: RF.h:1654
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:1611
RF_RatSelectChannel
Select the preferred RAT channel through the configuration of RF_ratCompare() or RF_ratCapture().
Definition: RF.h:1550
rfc_CMD_PROP_RADIO_DIV_SETUP_PA_t prop_div_pa
Radio setup command for PROPRIETARY mode on Sub-1 Ghz with High Gain PA.
Definition: RF.h:1126
Sets the output high on a RAT event.
Definition: RF.h:1612
Falling edge of the selected source will trigg a capture event.
Definition: RF.h:1580
Inverts the polarity of the output.
Definition: RF.h:1614
Chose the first available channel.
Definition: RF.h:1551
RF_RatHandle channel
RF_RatHandle identifies the channel to be allocated.
Definition: RF.h:1656
bool xoscHfAlwaysNeeded
Indicate that the XOSC HF should be turned on by the power driver.
Definition: RF.h:1508
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...
Definition: RF.h:1209
RF_Stat RF_ratDisableChannel(RF_Handle rfHandle, RF_RatHandle ratHandle)
Disable a RAT channel.
Definition: RF.h:1205
Retrieve a command handle of the current command.
Definition: RF.h:1352
Specifies a RF core firmware configuration.
Definition: RF.h:1056
rfc_command_t commandId
Definition: RF.h:1115
RF_Handle RF_open(RF_Object *pObj, RF_Mode *pRfMode, RF_RadioSetup *pRadioSetup, RF_Params *params)
Creates a a new client instance of the RF driver.
RF_RatCaptureRepetition
Selects the repetition of RF_ratCapture().
Definition: RF.h:1591
rfc_CMD_PROP_RADIO_SETUP_t prop
Radio setup command for PROPRIETARY mode on 2.4 GHz.
Definition: RF.h:1119
rfc_CMD_BLE5_RADIO_SETUP_t ble5
Radio setup command for BLE5 mode.
Definition: RF.h:1118
PA configuration value for a certain power level.
Definition: RF.h:981
RF_RatCallback callback
Callback function to be invoked upon a capture event (optional).
Definition: RF.h:1643
Conigure RAT_CHANNEL[x] to interface with RAT_GPO[5].
Definition: RF.h:1633
Function finished with success.
Definition: RF.h:1096
RF_Callback pErrCb
Definition: RF.h:1486
Sets the output low on a RAT event.
Definition: RF.h:1613
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:1615
RF_GlobalEvent
Global RF driver events.
Definition: RF.h:1204
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:1506
void RF_Params_init(RF_Params *params)
Function to initialize the RF_Params struct to its defaults.
Stores the client&#39;s internal confguration and states.
Show the current RF core power state. 0: Radio OFF, 1: Radio ON.
Definition: RF.h:1354
RF_Priority priority
Access priority.
Definition: RF.h:1541
void * pScheduleMap
Pointer to scheduling map (RF_GET_SCHEDULE_MAP).
Definition: RF.h:1371
Default PA.
Definition: RF.h:1027
Copyright 2018, Texas Instruments Incorporated