CC13xx Driver Library
rf_prop_cmd.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: rf_prop_cmd.h
3 * Revised: 2015-09-28 11:32:09 +0200 (Mon, 28 Sep 2015)
4 * Revision: 44677
5 *
6 * Description: CC13xx 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 
70 
71 
74 #define CMD_PROP_TX 0x3801
76  uint16_t commandNo;
77  uint16_t status;
78  rfc_radioOp_t *pNextOp;
82  struct {
83  uint8_t triggerType:4;
84  uint8_t bEnaCmd:1;
85  uint8_t triggerNo:2;
87  uint8_t pastTrig:1;
88  } startTrigger;
90  struct {
91  uint8_t rule:4;
92  uint8_t nSkip:4;
93  } condition;
94  struct {
95  uint8_t bFsOff:1;
96  uint8_t :2;
98  uint8_t bUseCrc:1;
99  uint8_t bVarLen:1;
101  } pktConf;
103  uint8_t pktLen;
104  uint32_t syncWord;
105  uint8_t* pPkt;
106 };
107 
109 
112 #define CMD_PROP_RX 0x3802
114  uint16_t commandNo;
115  uint16_t status;
116  rfc_radioOp_t *pNextOp;
120  struct {
121  uint8_t triggerType:4;
122  uint8_t bEnaCmd:1;
123  uint8_t triggerNo:2;
125  uint8_t pastTrig:1;
126  } startTrigger;
128  struct {
129  uint8_t rule:4;
130  uint8_t nSkip:4;
131  } condition;
132  struct {
133  uint8_t bFsOff:1;
134  uint8_t bRepeatOk:1;
136  uint8_t bRepeatNok:1;
138  uint8_t bUseCrc:1;
140  uint8_t bVarLen:1;
142  uint8_t bChkAddress:1;
144  uint8_t endType:1;
146  uint8_t filterOp:1;
148  } pktConf;
150  struct {
151  uint8_t bAutoFlushIgnored:1;
152  uint8_t bAutoFlushCrcErr:1;
153  uint8_t :1;
154  uint8_t bIncludeHdr:1;
155  uint8_t bIncludeCrc:1;
156  uint8_t bAppendRssi:1;
157  uint8_t bAppendTimestamp:1;
158  uint8_t bAppendStatus:1;
159  } rxConf;
160  uint32_t syncWord;
161  uint8_t maxPktLen;
162  uint8_t address0;
164  uint8_t address1;
165  struct {
167  uint8_t triggerType:4;
168  uint8_t bEnaCmd:1;
169  uint8_t triggerNo:2;
171  uint8_t pastTrig:1;
172  } endTrigger;
176  uint8_t* pOutput;
177 };
178 
180 
183 #define CMD_PROP_TX_ADV 0x3803
185  uint16_t commandNo;
186  uint16_t status;
187  rfc_radioOp_t *pNextOp;
191  struct {
192  uint8_t triggerType:4;
193  uint8_t bEnaCmd:1;
194  uint8_t triggerNo:2;
196  uint8_t pastTrig:1;
197  } startTrigger;
199  struct {
200  uint8_t rule:4;
201  uint8_t nSkip:4;
202  } condition;
203  struct {
204  uint8_t bFsOff:1;
205  uint8_t :2;
207  uint8_t bUseCrc:1;
208  uint8_t bCrcIncSw:1;
210  uint8_t bCrcIncHdr:1;
212  } pktConf;
214  uint8_t numHdrBits;
215  uint16_t pktLen;
216  struct {
217  uint8_t bExtTxTrig:1;
218  uint8_t inputMode:2;
220  uint8_t source:5;
225  } startConf;
226  struct {
227  uint8_t triggerType:4;
228  uint8_t bEnaCmd:1;
229  uint8_t triggerNo:2;
231  uint8_t pastTrig:1;
232  } preTrigger;
235  uint32_t syncWord;
239  uint8_t* pPkt;
240 };
241 
243 
246 #define CMD_PROP_RX_ADV 0x3804
248  uint16_t commandNo;
249  uint16_t status;
250  rfc_radioOp_t *pNextOp;
254  struct {
255  uint8_t triggerType:4;
256  uint8_t bEnaCmd:1;
257  uint8_t triggerNo:2;
259  uint8_t pastTrig:1;
260  } startTrigger;
262  struct {
263  uint8_t rule:4;
264  uint8_t nSkip:4;
265  } condition;
266  struct {
267  uint8_t bFsOff:1;
268  uint8_t bRepeatOk:1;
270  uint8_t bRepeatNok:1;
272  uint8_t bUseCrc:1;
274  uint8_t bCrcIncSw:1;
276  uint8_t bCrcIncHdr:1;
278  uint8_t endType:1;
280  uint8_t filterOp:1;
282  } pktConf;
284  struct {
285  uint8_t bAutoFlushIgnored:1;
286  uint8_t bAutoFlushCrcErr:1;
287  uint8_t :1;
288  uint8_t bIncludeHdr:1;
289  uint8_t bIncludeCrc:1;
290  uint8_t bAppendRssi:1;
291  uint8_t bAppendTimestamp:1;
292  uint8_t bAppendStatus:1;
293  } rxConf;
294  uint32_t syncWord0;
295  uint32_t syncWord1;
296  uint16_t maxPktLen;
297  struct {
299  uint16_t numHdrBits:6;
300  uint16_t lenPos:5;
301  uint16_t numLenBits:5;
302  } hdrConf;
303  struct {
304  uint16_t addrType:1;
305  uint16_t addrSize:5;
307  uint16_t addrPos:5;
309  uint16_t numAddr:5;
311  } addrConf;
312  int8_t lenOffset;
313  struct {
314  uint8_t triggerType:4;
315  uint8_t bEnaCmd:1;
316  uint8_t triggerNo:2;
318  uint8_t pastTrig:1;
319  } endTrigger;
322  uint8_t* pAddr;
324  uint8_t* pOutput;
325 };
326 
328 
331 #define CMD_PROP_RADIO_SETUP 0x3806
333  uint16_t commandNo;
334  uint16_t status;
335  rfc_radioOp_t *pNextOp;
339  struct {
340  uint8_t triggerType:4;
341  uint8_t bEnaCmd:1;
342  uint8_t triggerNo:2;
344  uint8_t pastTrig:1;
345  } startTrigger;
347  struct {
348  uint8_t rule:4;
349  uint8_t nSkip:4;
350  } condition;
351  struct {
352  uint16_t modType:3;
353  uint16_t deviation:13;
356  } modulation;
357  struct {
358  uint32_t preScale:4;
359  uint32_t :4;
360  uint32_t rateWord:21;
361  } symbolRate;
362  uint8_t rxBw;
363  struct {
364  uint8_t nPreamBytes:6;
365  uint8_t preamMode:2;
367  } preamConf;
371  struct {
372  uint16_t nSwBits:6;
373  uint16_t bBitReversal:1;
374  uint16_t bMsbFirst:1;
376  uint16_t fecMode:4;
378  uint16_t :1;
382  uint16_t whitenMode:3;
383  } formatConf;
391  struct {
392  uint16_t frontEndMode:3;
393  uint16_t biasMode:1;
399  uint16_t :6;
401  uint16_t bNoFsPowerUp:1;
402  } config;
404  uint16_t txPower;
405  uint32_t* pRegOverride;
406 };
408 
410 
413 #define CMD_PROP_RADIO_DIV_SETUP 0x3807
415  uint16_t commandNo;
416  uint16_t status;
417  rfc_radioOp_t *pNextOp;
421  struct {
422  uint8_t triggerType:4;
423  uint8_t bEnaCmd:1;
424  uint8_t triggerNo:2;
426  uint8_t pastTrig:1;
427  } startTrigger;
429  struct {
430  uint8_t rule:4;
431  uint8_t nSkip:4;
432  } condition;
433  struct {
434  uint16_t modType:3;
435  uint16_t deviation:13;
438  } modulation;
439  struct {
440  uint32_t preScale:4;
441  uint32_t :4;
442  uint32_t rateWord:21;
443  } symbolRate;
444  uint8_t rxBw;
445  struct {
446  uint8_t nPreamBytes:6;
447  uint8_t preamMode:2;
449  } preamConf;
453  struct {
454  uint16_t nSwBits:6;
455  uint16_t bBitReversal:1;
456  uint16_t bMsbFirst:1;
458  uint16_t fecMode:4;
460  uint16_t :1;
464  uint16_t whitenMode:3;
465  } formatConf;
473  struct {
474  uint16_t frontEndMode:3;
475  uint16_t biasMode:1;
481  uint16_t :6;
483  uint16_t bNoFsPowerUp:1;
484  } config;
486  uint16_t txPower;
487  uint32_t* pRegOverride;
488  uint16_t centerFreq;
490  int16_t intFreq;
494  uint8_t loDivider;
497 };
498 
500 
503 #define CMD_PROP_SET_LEN 0x3401
505  uint16_t commandNo;
506  uint16_t rxLen;
507 };
508 
510 
513 #define CMD_PROP_RESTART_RX 0x3402
515  uint16_t commandNo;
516 };
517 
519 
523 
525  uint16_t nRxOk;
526  uint16_t nRxNok;
527  uint8_t nRxIgnored;
528  uint8_t nRxStopped;
529  uint8_t nRxBufFull;
530  int8_t lastRssi;
532 };
533 
535 
539 
541  struct {
542  uint8_t addressInd:5;
543  uint8_t syncWordId:1;
544  uint8_t result:2;
545  } status;
549 };
550 
552 
555 #endif
uint32_t syncWord1
Alternative sync word if non-zero.
Definition: rf_prop_cmd.h:295
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:334
uint8_t * pOutput
Pointer to output structure.
Definition: rf_prop_cmd.h:324
uint8_t pktLen
Packet length.
Definition: rf_prop_cmd.h:103
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:234
uint8_t address1
Address (set equal to address0 to accept only one address. If 0xFF, accept 0x00 as well) ...
Definition: rf_prop_cmd.h:164
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:253
uint8_t * pPkt
Pointer to packet.
Definition: rf_prop_cmd.h:105
uint16_t nRxOk
Number of packets that have been received with payload, CRC OK and not ignored.
Definition: rf_prop_cmd.h:525
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:487
uint16_t commandNo
The command ID number 0x3801.
Definition: rf_prop_cmd.h:76
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:77
struct __RFC_STRUCT rfc_propRxStatus_s rfc_propRxStatus_t
Definition: rf_prop_cmd.h:69
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:529
uint16_t commandNo
The command ID number 0x3402.
Definition: rf_prop_cmd.h:515
uint16_t txPower
Transmit power.
Definition: rf_prop_cmd.h:486
uint16_t maxPktLen
Packet length for fixed length, maximum packet length for variable length 0: Unlimited or unknown le...
Definition: rf_prop_cmd.h:296
struct __RFC_STRUCT rfc_CMD_PROP_RADIO_DIV_SETUP_s rfc_CMD_PROP_RADIO_DIV_SETUP_t
Definition: rf_prop_cmd.h:65
ratmr_t endTime
Time used together with endTrigger for ending the operation.
Definition: rf_prop_cmd.h:321
int8_t lastRssi
RSSI of last received packet.
Definition: rf_prop_cmd.h:530
uint8_t nRxIgnored
Number of packets that have been received with CRC OK and ignored due to address mismatch.
Definition: rf_prop_cmd.h:527
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:119
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:190
uint16_t commandNo
The command ID number 0x3807.
Definition: rf_prop_cmd.h:415
uint16_t commandNo
The command ID number 0x3802.
Definition: rf_prop_cmd.h:114
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:420
uint16_t commandNo
The command ID number 0x3804.
Definition: rf_prop_cmd.h:248
uint8_t * pOutput
Pointer to output structure.
Definition: rf_prop_cmd.h:176
uint16_t nRxNok
Number of packets that have been received with CRC error.
Definition: rf_prop_cmd.h:526
struct __RFC_STRUCT rfc_CMD_PROP_RESTART_RX_s rfc_CMD_PROP_RESTART_RX_t
Definition: rf_prop_cmd.h:67
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:338
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:161
ratmr_t endTime
Time used together with endTrigger for ending the operation.
Definition: rf_prop_cmd.h:174
uint16_t pktLen
Packet length. 0: Unlimited.
Definition: rf_prop_cmd.h:215
uint8_t * pPkt
Pointer to packet, or Tx queue for unlimited length.
Definition: rf_prop_cmd.h:239
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:160
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:175
uint32_t ratmr_t
Type definition for RAT.
Definition: rf_mailbox.h:46
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:249
int8_t lenOffset
Signed value to add to length field.
Definition: rf_prop_cmd.h:312
uint16_t rxLen
Payload length to use.
Definition: rf_prop_cmd.h:506
uint8_t * pAddr
Pointer to address list.
Definition: rf_prop_cmd.h:322
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:115
uint8_t nRxStopped
Number of packets not received due to illegal length or address mismatch with pktConf.filterOp = 1.
Definition: rf_prop_cmd.h:528
uint32_t syncWord
Sync word to transmit.
Definition: rf_prop_cmd.h:104
struct __RFC_STRUCT rfc_CMD_PROP_SET_LEN_s rfc_CMD_PROP_SET_LEN_t
Definition: rf_prop_cmd.h:66
struct __RFC_STRUCT rfc_propRxOutput_s rfc_propRxOutput_t
Definition: rf_prop_cmd.h:68
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:81
ratmr_t timeStamp
Time stamp of last received packet.
Definition: rf_prop_cmd.h:531
uint16_t commandNo
The command ID number 0x3803.
Definition: rf_prop_cmd.h:185
uint16_t commandNo
The command ID number 0x3806.
Definition: rf_prop_cmd.h:333
Type definition for a data queue.
Definition: rf_mailbox.h:51
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:416
uint8_t numHdrBits
Number of bits in header (0–32)
Definition: rf_prop_cmd.h:214
dataQueue_t * pQueue
Pointer to receive queue.
Definition: rf_prop_cmd.h:323
uint8_t rxBw
Receiver bandwidth.
Definition: rf_prop_cmd.h:362
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:186
uint16_t commandNo
The command ID number 0x3401.
Definition: rf_prop_cmd.h:505
uint32_t syncWord0
Sync word to listen for.
Definition: rf_prop_cmd.h:294
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
uint8_t rxBw
Receiver bandwidth.
Definition: rf_prop_cmd.h:444