CC26xx Driver Library
rf_prop_cmd.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: rf_prop_cmd.h
3 * Revised: 2016-04-07 15:04:05 +0200 (Thu, 07 Apr 2016)
4 * Revision: 46052
5 *
6 * Description: CC26xx API for Proprietary mode commands
7 *
8 * Copyright (c) 2015, Texas Instruments Incorporated
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions are met:
13 *
14 * 1) Redistributions of source code must retain the above copyright notice,
15 * this list of conditions and the following disclaimer.
16 *
17 * 2) Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 *
21 * 3) Neither the name of the ORGANIZATION nor the names of its contributors may
22 * be used to endorse or promote products derived from this software without
23 * specific prior written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 *
37 ******************************************************************************/
38 
39 #ifndef __PROP_CMD_H
40 #define __PROP_CMD_H
41 
42 #ifndef __RFC_STRUCT
43 #ifdef __GNUC__
44 #define __RFC_STRUCT __attribute__ ((aligned (4)))
45 #else
46 #define __RFC_STRUCT
47 #endif
48 #endif
49 
52 
55 
56 #include <stdint.h>
57 #include <driverlib/rf_mailbox.h>
59 
69 
72 #define CMD_PROP_TX 0x3801
74  uint16_t commandNo;
75  uint16_t status;
76  rfc_radioOp_t *pNextOp;
80  struct {
81  uint8_t triggerType:4;
82  uint8_t bEnaCmd:1;
83  uint8_t triggerNo:2;
85  uint8_t pastTrig:1;
86  } startTrigger;
88  struct {
89  uint8_t rule:4;
90  uint8_t nSkip:4;
91  } condition;
92  struct {
93  uint8_t bFsOff:1;
94  uint8_t :2;
96  uint8_t bUseCrc:1;
97  uint8_t bVarLen:1;
99  } pktConf;
101  uint8_t pktLen;
102  uint32_t syncWord;
103  uint8_t* pPkt;
104 };
105 
107 
110 #define CMD_PROP_RX 0x3802
112  uint16_t commandNo;
113  uint16_t status;
114  rfc_radioOp_t *pNextOp;
118  struct {
119  uint8_t triggerType:4;
120  uint8_t bEnaCmd:1;
121  uint8_t triggerNo:2;
123  uint8_t pastTrig:1;
124  } startTrigger;
126  struct {
127  uint8_t rule:4;
128  uint8_t nSkip:4;
129  } condition;
130  struct {
131  uint8_t bFsOff:1;
132  uint8_t bRepeatOk:1;
134  uint8_t bRepeatNok:1;
136  uint8_t bUseCrc:1;
138  uint8_t bVarLen:1;
140  uint8_t bChkAddress:1;
142  uint8_t endType:1;
144  uint8_t filterOp:1;
146  } pktConf;
148  struct {
149  uint8_t bAutoFlushIgnored:1;
150  uint8_t bAutoFlushCrcErr:1;
151  uint8_t :1;
152  uint8_t bIncludeHdr:1;
153  uint8_t bIncludeCrc:1;
154  uint8_t bAppendRssi:1;
155  uint8_t bAppendTimestamp:1;
156  uint8_t bAppendStatus:1;
157  } rxConf;
158  uint32_t syncWord;
159  uint8_t maxPktLen;
160  uint8_t address0;
162  uint8_t address1;
163  struct {
165  uint8_t triggerType:4;
166  uint8_t bEnaCmd:1;
167  uint8_t triggerNo:2;
169  uint8_t pastTrig:1;
170  } endTrigger;
174  uint8_t* pOutput;
175 };
176 
178 
181 #define CMD_PROP_TX_ADV 0x3803
183  uint16_t commandNo;
184  uint16_t status;
185  rfc_radioOp_t *pNextOp;
189  struct {
190  uint8_t triggerType:4;
191  uint8_t bEnaCmd:1;
192  uint8_t triggerNo:2;
194  uint8_t pastTrig:1;
195  } startTrigger;
197  struct {
198  uint8_t rule:4;
199  uint8_t nSkip:4;
200  } condition;
201  struct {
202  uint8_t bFsOff:1;
203  uint8_t :2;
205  uint8_t bUseCrc:1;
206  uint8_t bCrcIncSw:1;
208  uint8_t bCrcIncHdr:1;
210  } pktConf;
212  uint8_t numHdrBits;
213  uint16_t pktLen;
214  struct {
215  uint8_t bExtTxTrig:1;
216  uint8_t inputMode:2;
218  uint8_t source:5;
223  } startConf;
224  struct {
225  uint8_t triggerType:4;
226  uint8_t bEnaCmd:1;
227  uint8_t triggerNo:2;
229  uint8_t pastTrig:1;
230  } preTrigger;
233  uint32_t syncWord;
237  uint8_t* pPkt;
238 };
239 
241 
244 #define CMD_PROP_RX_ADV 0x3804
246  uint16_t commandNo;
247  uint16_t status;
248  rfc_radioOp_t *pNextOp;
252  struct {
253  uint8_t triggerType:4;
254  uint8_t bEnaCmd:1;
255  uint8_t triggerNo:2;
257  uint8_t pastTrig:1;
258  } startTrigger;
260  struct {
261  uint8_t rule:4;
262  uint8_t nSkip:4;
263  } condition;
264  struct {
265  uint8_t bFsOff:1;
266  uint8_t bRepeatOk:1;
268  uint8_t bRepeatNok:1;
270  uint8_t bUseCrc:1;
272  uint8_t bCrcIncSw:1;
274  uint8_t bCrcIncHdr:1;
276  uint8_t endType:1;
278  uint8_t filterOp:1;
280  } pktConf;
282  struct {
283  uint8_t bAutoFlushIgnored:1;
284  uint8_t bAutoFlushCrcErr:1;
285  uint8_t :1;
286  uint8_t bIncludeHdr:1;
287  uint8_t bIncludeCrc:1;
288  uint8_t bAppendRssi:1;
289  uint8_t bAppendTimestamp:1;
290  uint8_t bAppendStatus:1;
291  } rxConf;
292  uint32_t syncWord0;
293  uint32_t syncWord1;
294  uint16_t maxPktLen;
295  struct {
297  uint16_t numHdrBits:6;
298  uint16_t lenPos:5;
299  uint16_t numLenBits:5;
300  } hdrConf;
301  struct {
302  uint16_t addrType:1;
303  uint16_t addrSize:5;
305  uint16_t addrPos:5;
307  uint16_t numAddr:5;
309  } addrConf;
310  int8_t lenOffset;
311  struct {
312  uint8_t triggerType:4;
313  uint8_t bEnaCmd:1;
314  uint8_t triggerNo:2;
316  uint8_t pastTrig:1;
317  } endTrigger;
320  uint8_t* pAddr;
322  uint8_t* pOutput;
323 };
324 
326 
329 #define CMD_PROP_RADIO_SETUP 0x3806
331  uint16_t commandNo;
332  uint16_t status;
333  rfc_radioOp_t *pNextOp;
337  struct {
338  uint8_t triggerType:4;
339  uint8_t bEnaCmd:1;
340  uint8_t triggerNo:2;
342  uint8_t pastTrig:1;
343  } startTrigger;
345  struct {
346  uint8_t rule:4;
347  uint8_t nSkip:4;
348  } condition;
349  struct {
350  uint16_t modType:3;
351  uint16_t deviation:13;
354  } modulation;
355  struct {
356  uint32_t preScale:4;
357  uint32_t :4;
358  uint32_t rateWord:21;
359  } symbolRate;
360  uint8_t rxBw;
361  struct {
362  uint8_t nPreamBytes:6;
363  uint8_t preamMode:2;
365  } preamConf;
369  struct {
370  uint16_t nSwBits:6;
371  uint16_t bBitReversal:1;
372  uint16_t bMsbFirst:1;
374  uint16_t fecMode:4;
376  uint16_t bOuterCode:1;
379  uint16_t whitenMode:2;
380  uint16_t bAgcDisable:1;
384  } formatConf;
385  struct {
386  uint16_t frontEndMode:3;
387  uint16_t biasMode:1;
393  uint16_t analogCfgMode:6;
395  uint16_t bNoFsPowerUp:1;
402  } config;
404  uint16_t txPower;
405  uint32_t* pRegOverride;
406 };
407 
409 
412 #define CMD_PROP_SET_LEN 0x3401
414  uint16_t commandNo;
415  uint16_t rxLen;
416 };
417 
419 
422 #define CMD_PROP_RESTART_RX 0x3402
424  uint16_t commandNo;
425 };
426 
428 
432 
434  uint16_t nRxOk;
435  uint16_t nRxNok;
436  uint8_t nRxIgnored;
437  uint8_t nRxStopped;
438  uint8_t nRxBufFull;
439  int8_t lastRssi;
441 };
442 
444 
448 
450  struct {
451  uint8_t addressInd:5;
452  uint8_t syncWordId:1;
453  uint8_t result:2;
454  } status;
458 };
459 
461 
464 #endif
uint32_t syncWord1
Alternative sync word if non-zero.
Definition: rf_prop_cmd.h:293
uint16_t status
An integer telling the status of the command. This value is updated by the radio CPU during operation...
Definition: rf_prop_cmd.h:332
uint8_t * pOutput
Pointer to output structure.
Definition: rf_prop_cmd.h:322
uint8_t pktLen
Packet length.
Definition: rf_prop_cmd.h:101
ratmr_t preTime
Time used together with preTrigger for transition from preamble to sync word. If preTrigger.triggerType is set to "now", one preamble as configured in the setup will be sent. Otherwise, the preamble will be repeated until this trigger is observed.
Definition: rf_prop_cmd.h:232
uint8_t address1
Address (set equal to address0 to accept only one address. If 0xFF, accept 0x00 as well) ...
Definition: rf_prop_cmd.h:162
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:251
uint8_t * pPkt
Pointer to packet.
Definition: rf_prop_cmd.h:103
uint16_t nRxOk
Number of packets that have been received with payload, CRC OK and not ignored.
Definition: rf_prop_cmd.h:434
uint16_t commandNo
The command ID number 0x3801.
Definition: rf_prop_cmd.h:74
uint16_t status
An integer telling the status of the command. This value is updated by the radio CPU during operation...
Definition: rf_prop_cmd.h:75
struct __RFC_STRUCT rfc_propRxStatus_s rfc_propRxStatus_t
Definition: rf_prop_cmd.h:68
struct __RFC_STRUCT rfc_CMD_PROP_TX_ADV_s rfc_CMD_PROP_TX_ADV_t
Definition: rf_prop_cmd.h:62
#define __RFC_STRUCT
Definition: rf_prop_cmd.h:46
uint8_t nRxBufFull
Number of packets that have been received and discarded due to lack of buffer space.
Definition: rf_prop_cmd.h:438
uint16_t commandNo
The command ID number 0x3402.
Definition: rf_prop_cmd.h:424
uint16_t maxPktLen
Packet length for fixed length, maximum packet length for variable length 0: Unlimited or unknown le...
Definition: rf_prop_cmd.h:294
ratmr_t endTime
Time used together with endTrigger for ending the operation.
Definition: rf_prop_cmd.h:319
int8_t lastRssi
RSSI of last received packet.
Definition: rf_prop_cmd.h:439
uint8_t nRxIgnored
Number of packets that have been received with CRC OK and ignored due to address mismatch.
Definition: rf_prop_cmd.h:436
struct __RFC_STRUCT rfc_radioOp_s rfc_radioOp_t
Definition: rf_common_cmd.h:60
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:117
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:188
uint16_t commandNo
The command ID number 0x3802.
Definition: rf_prop_cmd.h:112
uint16_t commandNo
The command ID number 0x3804.
Definition: rf_prop_cmd.h:246
uint8_t * pOutput
Pointer to output structure.
Definition: rf_prop_cmd.h:174
uint16_t nRxNok
Number of packets that have been received with CRC error.
Definition: rf_prop_cmd.h:435
struct __RFC_STRUCT rfc_CMD_PROP_RESTART_RX_s rfc_CMD_PROP_RESTART_RX_t
Definition: rf_prop_cmd.h:66
struct __RFC_STRUCT rfc_CMD_PROP_RADIO_SETUP_s rfc_CMD_PROP_RADIO_SETUP_t
Definition: rf_prop_cmd.h:64
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:336
struct __RFC_STRUCT rfc_CMD_PROP_RX_s rfc_CMD_PROP_RX_t
Definition: rf_prop_cmd.h:61
uint8_t maxPktLen
Packet length for fixed length, maximum packet length for variable length 0: Unlimited or unknown le...
Definition: rf_prop_cmd.h:159
ratmr_t endTime
Time used together with endTrigger for ending the operation.
Definition: rf_prop_cmd.h:172
uint16_t pktLen
Packet length. 0: Unlimited.
Definition: rf_prop_cmd.h:213
uint8_t * pPkt
Pointer to packet, or Tx queue for unlimited length.
Definition: rf_prop_cmd.h:237
uint32_t * pRegOverride
Pointer to a list of hardware and configuration registers to override. If NULL, no override is used...
Definition: rf_prop_cmd.h:405
uint32_t syncWord
Sync word to listen for.
Definition: rf_prop_cmd.h:158
struct __RFC_STRUCT rfc_CMD_PROP_RX_ADV_s rfc_CMD_PROP_RX_ADV_t
Definition: rf_prop_cmd.h:63
dataQueue_t * pQueue
Pointer to receive queue.
Definition: rf_prop_cmd.h:173
uint32_t ratmr_t
Type definition for RAT.
Definition: rf_mailbox.h:57
uint16_t status
An integer telling the status of the command. This value is updated by the radio CPU during operation...
Definition: rf_prop_cmd.h:247
int8_t lenOffset
Signed value to add to length field.
Definition: rf_prop_cmd.h:310
uint16_t rxLen
Payload length to use.
Definition: rf_prop_cmd.h:415
uint8_t * pAddr
Pointer to address list.
Definition: rf_prop_cmd.h:320
uint16_t status
An integer telling the status of the command. This value is updated by the radio CPU during operation...
Definition: rf_prop_cmd.h:113
uint8_t nRxStopped
Number of packets not received due to illegal length or address mismatch with pktConf.filterOp = 1.
Definition: rf_prop_cmd.h:437
uint32_t syncWord
Sync word to transmit.
Definition: rf_prop_cmd.h:102
struct __RFC_STRUCT rfc_CMD_PROP_SET_LEN_s rfc_CMD_PROP_SET_LEN_t
Definition: rf_prop_cmd.h:65
struct __RFC_STRUCT rfc_propRxOutput_s rfc_propRxOutput_t
Definition: rf_prop_cmd.h:67
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:79
ratmr_t timeStamp
Time stamp of last received packet.
Definition: rf_prop_cmd.h:440
uint16_t commandNo
The command ID number 0x3803.
Definition: rf_prop_cmd.h:183
uint16_t commandNo
The command ID number 0x3806.
Definition: rf_prop_cmd.h:331
Type definition for a data queue.
Definition: rf_mailbox.h:62
uint8_t numHdrBits
Number of bits in header (0–32)
Definition: rf_prop_cmd.h:212
dataQueue_t * pQueue
Pointer to receive queue.
Definition: rf_prop_cmd.h:321
uint8_t rxBw
Receiver bandwidth.
Definition: rf_prop_cmd.h:360
uint16_t status
An integer telling the status of the command. This value is updated by the radio CPU during operation...
Definition: rf_prop_cmd.h:184
uint16_t commandNo
The command ID number 0x3401.
Definition: rf_prop_cmd.h:414
uint32_t syncWord0
Sync word to listen for.
Definition: rf_prop_cmd.h:292
uint16_t txPower
Transmit power.
Definition: rf_prop_cmd.h:404
struct __RFC_STRUCT rfc_CMD_PROP_TX_s rfc_CMD_PROP_TX_t
Definition: rf_prop_cmd.h:60