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_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
703 
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
719 
737 #define RF_CTRL_SET_INACTIVITY_TIMEOUT 0
738 
747 #define RF_CTRL_UPDATE_SETUP_CMD 1
748 
753 #define RF_CTRL_SET_POWERUP_DURATION_MARGIN 2
754 
761 #define RF_CTRL_SET_RAT_RTC_ERR_TOL_VAL 3
762 
773 #define RF_CTRL_SET_POWER_MGMT 4
774 
795 #define RF_CTRL_SET_HWI_PRIORITY 5
796 
817 #define RF_CTRL_SET_SWI_PRIORITY 6
818 
827 #define RF_CTRL_SET_AVAILABLE_RAT_CHANNELS_MASK 7
828 
841 #define RF_TxPowerTable_MIN_DBM -128
842 
849 #define RF_TxPowerTable_MAX_DBM 126
850 
856 #define RF_TxPowerTable_INVALID_DBM 127
857 
875 #define RF_TxPowerTable_INVALID_VALUE 0x3fffff
876 
892 #define RF_TxPowerTable_TERMINATION_ENTRY \
893  { .power = RF_TxPowerTable_INVALID_DBM, .value = { .rawValue = RF_TxPowerTable_INVALID_VALUE, .paType = RF_TxPowerTable_DefaultPA } }
894 
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 }
903 
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 }
912 
913 
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)
927 
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)
933 
934 #define RF_ABORT_PREEMPTION (1<<2)
935 #define RF_ABORT_GRACEFULLY (1<<0)
936 
937 #define RF_SCH_CMD_EXECUTION_TIME_UNKNOWN 0
938 
939 #define RF_RAT_ANY_CHANNEL (-1)
940 #define RF_RAT_TICKS_PER_US 4
941 
942 
945 #define RF_convertUsToRatTicks(microseconds) \
946  ((microseconds) * (RF_RAT_TICKS_PER_US))
947 
951 #define RF_convertMsToRatTicks(milliseconds) \
952  ((milliseconds) * 1000 * (RF_RAT_TICKS_PER_US))
953 
957 #define RF_convertRatTicksToUs(ticks) \
958  ((ticks) / (RF_RAT_TICKS_PER_US))
959 
963 #define RF_convertRatTicksToMs(ticks) \
964  ((ticks) / (1000 * (RF_RAT_TICKS_PER_US)))
965 
966 
978 typedef struct {
979  uint32_t rawValue:22;
980  uint32_t __dummy:9;
984  uint32_t paType:1;
989 
1008 typedef struct
1009 {
1010  int8_t power;
1011 
1014 } __attribute__((packed)) RF_TxPowerTable_Entry;
1015 
1016 
1023 typedef enum {
1027 
1028 
1042 typedef rfc_radioOp_t RF_Op;
1043 
1044 
1053 typedef struct {
1054  uint8_t rfMode;
1055  void (*cpePatchFxn)(void);
1056  void (*mcePatchFxn)(void);
1057  void (*rfePatchFxn)(void);
1058 } RF_Mode;
1059 
1060 
1071 typedef enum {
1075 } RF_Priority;
1076 
1085 typedef enum {
1091  RF_StatError = 0x80,
1095 } RF_Stat;
1096 
1101 typedef uint64_t RF_EventMask;
1102 
1112 typedef union {
1113  rfc_command_t commandId;
1114 
1116  rfc_CMD_RADIO_SETUP_t common;
1117  rfc_CMD_BLE5_RADIO_SETUP_t ble5;
1118  rfc_CMD_PROP_RADIO_SETUP_t prop;
1119  rfc_CMD_PROP_RADIO_DIV_SETUP_t prop_div;
1120 } RF_RadioSetup;
1121 
1122 
1151 typedef enum {
1154 
1158 } RF_ClientEvent;
1159 
1197 typedef enum {
1199 
1203 } RF_GlobalEvent;
1206 
1207 
1211 typedef uint32_t RF_ClientEventMask;
1212 
1216 typedef uint32_t RF_GlobalEventMask;
1217 
1230 typedef int16_t RF_CmdHandle;
1231 
1252 #if defined (RF_SINGLEMODE)
1253  typedef struct RF_ObjectSingleMode RF_Object;
1254 #else
1255  typedef struct RF_ObjectMultiMode RF_Object;
1256 #endif
1257 
1258 /* Definition of the RF_Object structure for single-mode applications.
1259  * It is applicable with the single-mode RF driver through the #RF_Object common type.
1260  */
1261 struct RF_ObjectSingleMode{
1263  struct {
1264  uint32_t nInactivityTimeout;
1265  RF_Mode* pRfMode;
1266  RF_RadioSetup* pOpSetup;
1267  uint32_t nPowerUpDuration;
1268  bool bMeasurePowerUpDuration;
1269  bool bUpdateSetup;
1270  uint16_t nPowerUpDurationMargin;
1271  void* pPowerCb;
1272  void* pErrCb;
1273  } clientConfig;
1275  struct {
1276  struct {
1277  rfc_CMD_FS_t cmdFs;
1278  } mode_state;
1279  SemaphoreP_Struct semSync;
1280  RF_EventMask volatile eventSync;
1281  void* pCbSync;
1282  RF_EventMask unpendCause;
1283  ClockP_Struct clkInactivity;
1284  bool bYielded;
1285  } state;
1286 };
1287 
1291 struct RF_ObjectMultiMode{
1293  struct {
1294  uint32_t nInactivityTimeout;
1295  RF_Mode* pRfMode;
1296  RF_RadioSetup* pOpSetup;
1297  uint32_t nPowerUpDuration;
1298  bool bMeasurePowerUpDuration;
1299  bool bUpdateSetup;
1300  uint16_t nPowerUpDurationMargin;
1301  void* pPowerCb;
1302  void* pErrCb;
1303  void* pClientEventCb;
1304  RF_ClientEventMask nClientEventMask;
1305  } clientConfig;
1307  struct {
1308  struct {
1309  rfc_CMD_FS_t cmdFs;
1310  } mode_state;
1311  SemaphoreP_Struct semSync;
1312  RF_EventMask volatile eventSync;
1313  void* pCbSync;
1314  RF_EventMask unpendCause;
1315  ClockP_Struct clkInactivity;
1316  ClockP_Struct clkReqAccess;
1317  bool bYielded;
1318  } state;
1319 };
1320 
1329 
1330 
1339 typedef int8_t RF_RatHandle;
1340 
1344 typedef enum {
1351 } RF_InfoType;
1352 
1358 typedef union {
1359  RF_CmdHandle ch;
1360  uint16_t availRatCh;
1362  RF_Handle pClientList[2];
1363  uint32_t phySwitchingTimeInUs[2];
1365 } RF_InfoVal;
1366 
1370 typedef struct {
1371  RF_CmdHandle ch;
1372  RF_Handle pClient;
1373  uint32_t startTime;
1374  uint32_t endTime;
1377 
1381 typedef struct {
1384 } RF_ScheduleMap;
1385 
1411 typedef void (*RF_Callback)(RF_Handle h, RF_CmdHandle ch, RF_EventMask e);
1412 
1426 typedef void (*RF_RatCallback)(RF_Handle h, RF_RatHandle rh, RF_EventMask e, uint32_t compareCaptureTime);
1427 
1443 typedef void (*RF_ClientCallback)(RF_Handle h, RF_ClientEvent event, void* arg);
1444 
1458 typedef void (*RF_GlobalCallback)(RF_Handle h, RF_GlobalEvent event, void* arg);
1459 
1468 typedef struct {
1470 
1472  uint32_t nPowerUpDuration;
1473 
1477 
1480 
1482 
1487 
1489  RF_ClientEventMask nClientEventMask;
1490 } RF_Params;
1492 
1498 typedef struct {
1499  uint8_t hwiPriority;
1500  uint8_t swiPriority;
1503  RF_GlobalEventMask globalEventMask;
1505 
1509 typedef enum {
1511  RF_AllowDelayAny = UINT32_MAX
1512 } RF_AllowDelay;
1513 
1514 /* @brief RF schedule command parameter struct
1515  *
1516  * RF schedule command parameters are used with the RF_scheduleCmd() call.
1517  */
1518 typedef struct {
1519  uint32_t endTime;
1521  uint32_t allowDelay;
1526 
1531 typedef struct {
1532  uint32_t duration;
1533  uint32_t startTime;
1535 } RF_AccessParams;
1536 
1543 typedef enum {
1549 
1555 typedef enum {
1565 
1571 typedef enum {
1577 
1584 typedef enum {
1588 
1603 typedef enum {
1611 
1621 typedef enum {
1630 
1635 typedef struct {
1637  RF_RatHandle channel;
1642 
1647 typedef struct {
1649  RF_RatHandle channel;
1650  uint32_t timeout;
1653 
1658 typedef struct {
1662 
1695 extern RF_Handle RF_open(RF_Object *pObj, RF_Mode *pRfMode, RF_RadioSetup *pOpSetup, RF_Params *params);
1696 
1707 extern void RF_close(RF_Handle h);
1708 
1719 extern uint32_t RF_getCurrentTime(void);
1720 
1775 extern RF_CmdHandle RF_postCmd(RF_Handle h, RF_Op* pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent);
1776 
1785 extern void RF_ScheduleCmdParams_init(RF_ScheduleCmdParams *pSchParams);
1786 
1813 extern RF_CmdHandle RF_scheduleCmd(RF_Handle h, RF_Op* pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent);
1814 
1874 extern RF_EventMask RF_pendCmd(RF_Handle h, RF_CmdHandle ch, RF_EventMask bmEvent);
1875 
1903 extern RF_EventMask RF_runCmd(RF_Handle h, RF_Op* pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent);
1904 
1924 extern RF_EventMask RF_runScheduleCmd(RF_Handle h, RF_Op* pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent);
1925 
1945 extern RF_Stat RF_cancelCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode);
1946 
1947 
1966 extern RF_Stat RF_flushCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode);
1967 
1981 extern RF_Stat RF_runImmediateCmd(RF_Handle h, uint32_t* pCmdStruct);
1982 
1996 extern RF_Stat RF_runDirectCmd(RF_Handle h, uint32_t cmd);
1997 
2012 extern void RF_yield(RF_Handle h);
2013 
2024 extern void RF_Params_init(RF_Params *params);
2025 
2036 extern RF_Stat RF_getInfo(RF_Handle h, RF_InfoType type, RF_InfoVal *pValue);
2037 
2046 extern int8_t RF_getRssi(RF_Handle h);
2047 
2057 extern RF_Op* RF_getCmdOp(RF_Handle h, RF_CmdHandle cmdHnd);
2058 
2067 extern void RF_RatConfigCompare_init(RF_RatConfigCompare* channelConfig);
2068 
2077 extern void RF_RatConfigCapture_init(RF_RatConfigCapture* channelConfig);
2078 
2087 extern void RF_RatConfigOutput_init(RF_RatConfigOutput* ioConfig);
2088 
2130 extern RF_RatHandle RF_ratCompare(RF_Handle rfHandle, RF_RatConfigCompare* channelConfig, RF_RatConfigOutput* ioConfig);
2131 
2171 extern RF_RatHandle RF_ratCapture(RF_Handle rfHandle, RF_RatConfigCapture* channelConfig, RF_RatConfigOutput* ioConfig);
2172 
2190 extern RF_Stat RF_ratDisableChannel(RF_Handle rfHandle, RF_RatHandle ratHandle);
2191 
2202 extern RF_Stat RF_control(RF_Handle h, int8_t ctrl, void *args);
2203 
2222 extern RF_Stat RF_requestAccess(RF_Handle h, RF_AccessParams *pParams);
2223 
2243 extern RF_TxPowerTable_Value RF_getTxPower(RF_Handle h);
2244 
2262 extern RF_Stat RF_setTxPower(RF_Handle h, RF_TxPowerTable_Value value);
2263 
2283 
2308 extern RF_TxPowerTable_Value RF_TxPowerTable_findValue(RF_TxPowerTable_Entry table[], int8_t powerLevel);
2309 
2310 
2311 #ifdef __cplusplus
2312 }
2313 #endif
2314 
2315 #endif /* ti_drivers_rf__include */
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&#39;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
Definition: RF.h:1558
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
Definition: RF.h:1153
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
Definition: RF.h:1574
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
Definition: RF.h:1510
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
Definition: RF.h:1511
Definition: RF.h:1561
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.
Definition: RF.h:1518
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...
Definition: RF.h:1202
RF_Stat RF_ratDisableChannel(RF_Handle rfHandle, RF_RatHandle ratHandle)
Disable a RAT channel.
Definition: RF.h:1198
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&#39;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
Copyright 2018, Texas Instruments Incorporated