CC26xx Driver Library
rf_prop_cmd.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: rf_prop_cmd.h
3 * Revised: $ $
4 * Revision: $ $
5 *
6 * Description: CC26xx API for Proprietary mode commands
7 *
8 * Copyright (c) 2015 - 2016, 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 
73 #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
115  uint16_t commandNo;
116  uint16_t status;
117  rfc_radioOp_t *pNextOp;
121  struct {
122  uint8_t triggerType:4;
123  uint8_t bEnaCmd:1;
124  uint8_t triggerNo:2;
126  uint8_t pastTrig:1;
127  } startTrigger;
129  struct {
130  uint8_t rule:4;
131  uint8_t nSkip:4;
132  } condition;
133  struct {
134  uint8_t bFsOff:1;
135  uint8_t bRepeatOk:1;
137  uint8_t bRepeatNok:1;
139  uint8_t bUseCrc:1;
141  uint8_t bVarLen:1;
143  uint8_t bChkAddress:1;
145  uint8_t endType:1;
147  uint8_t filterOp:1;
149  } pktConf;
151  struct {
152  uint8_t bAutoFlushIgnored:1;
153  uint8_t bAutoFlushCrcErr:1;
154  uint8_t :1;
155  uint8_t bIncludeHdr:1;
156  uint8_t bIncludeCrc:1;
157  uint8_t bAppendRssi:1;
158  uint8_t bAppendTimestamp:1;
159  uint8_t bAppendStatus:1;
160  } rxConf;
161  uint32_t syncWord;
162  uint8_t maxPktLen;
163  uint8_t address0;
165  uint8_t address1;
166  struct {
168  uint8_t triggerType:4;
169  uint8_t bEnaCmd:1;
170  uint8_t triggerNo:2;
172  uint8_t pastTrig:1;
173  } endTrigger;
177  uint8_t* pOutput;
178 };
179 
181 
184 #define CMD_PROP_TX_ADV 0x3803
187  uint16_t commandNo;
188  uint16_t status;
189  rfc_radioOp_t *pNextOp;
193  struct {
194  uint8_t triggerType:4;
195  uint8_t bEnaCmd:1;
196  uint8_t triggerNo:2;
198  uint8_t pastTrig:1;
199  } startTrigger;
201  struct {
202  uint8_t rule:4;
203  uint8_t nSkip:4;
204  } condition;
205  struct {
206  uint8_t bFsOff:1;
207  uint8_t :2;
209  uint8_t bUseCrc:1;
210  uint8_t bCrcIncSw:1;
212  uint8_t bCrcIncHdr:1;
214  } pktConf;
216  uint8_t numHdrBits;
217  uint16_t pktLen;
218  struct {
219  uint8_t bExtTxTrig:1;
220  uint8_t inputMode:2;
222  uint8_t source:5;
227  } startConf;
228  struct {
229  uint8_t triggerType:4;
230  uint8_t bEnaCmd:1;
231  uint8_t triggerNo:2;
233  uint8_t pastTrig:1;
234  } preTrigger;
237  uint32_t syncWord;
241  uint8_t* pPkt;
242 };
243 
245 
248 #define CMD_PROP_RX_ADV 0x3804
251  uint16_t commandNo;
252  uint16_t status;
253  rfc_radioOp_t *pNextOp;
257  struct {
258  uint8_t triggerType:4;
259  uint8_t bEnaCmd:1;
260  uint8_t triggerNo:2;
262  uint8_t pastTrig:1;
263  } startTrigger;
265  struct {
266  uint8_t rule:4;
267  uint8_t nSkip:4;
268  } condition;
269  struct {
270  uint8_t bFsOff:1;
271  uint8_t bRepeatOk:1;
273  uint8_t bRepeatNok:1;
275  uint8_t bUseCrc:1;
277  uint8_t bCrcIncSw:1;
279  uint8_t bCrcIncHdr:1;
281  uint8_t endType:1;
283  uint8_t filterOp:1;
285  } pktConf;
287  struct {
288  uint8_t bAutoFlushIgnored:1;
289  uint8_t bAutoFlushCrcErr:1;
290  uint8_t :1;
291  uint8_t bIncludeHdr:1;
292  uint8_t bIncludeCrc:1;
293  uint8_t bAppendRssi:1;
294  uint8_t bAppendTimestamp:1;
295  uint8_t bAppendStatus:1;
296  } rxConf;
297  uint32_t syncWord0;
298  uint32_t syncWord1;
299  uint16_t maxPktLen;
300  struct {
302  uint16_t numHdrBits:6;
303  uint16_t lenPos:5;
304  uint16_t numLenBits:5;
305  } hdrConf;
306  struct {
307  uint16_t addrType:1;
308  uint16_t addrSize:5;
310  uint16_t addrPos:5;
312  uint16_t numAddr:5;
314  } addrConf;
315  int8_t lenOffset;
316  struct {
317  uint8_t triggerType:4;
318  uint8_t bEnaCmd:1;
319  uint8_t triggerNo:2;
321  uint8_t pastTrig:1;
322  } endTrigger;
325  uint8_t* pAddr;
327  uint8_t* pOutput;
328 };
329 
331 
334 #define CMD_PROP_RADIO_SETUP 0x3806
337  uint16_t commandNo;
338  uint16_t status;
339  rfc_radioOp_t *pNextOp;
343  struct {
344  uint8_t triggerType:4;
345  uint8_t bEnaCmd:1;
346  uint8_t triggerNo:2;
348  uint8_t pastTrig:1;
349  } startTrigger;
351  struct {
352  uint8_t rule:4;
353  uint8_t nSkip:4;
354  } condition;
355  struct {
356  uint16_t modType:3;
357  uint16_t deviation:13;
360  } modulation;
361  struct {
362  uint32_t preScale:4;
363  uint32_t :4;
364  uint32_t rateWord:21;
365  } symbolRate;
366  uint8_t rxBw;
367  struct {
368  uint8_t nPreamBytes:6;
369  uint8_t preamMode:2;
371  } preamConf;
375  struct {
376  uint16_t nSwBits:6;
377  uint16_t bBitReversal:1;
378  uint16_t bMsbFirst:1;
380  uint16_t fecMode:4;
382  uint16_t bOuterCode:1;
385  uint16_t whitenMode:2;
386  uint16_t bAgcDisable:1;
390  } formatConf;
391  struct {
392  uint16_t frontEndMode:3;
393  uint16_t biasMode:1;
399  uint16_t analogCfgMode:6;
401  uint16_t bNoFsPowerUp:1;
408  } config;
410  uint16_t txPower;
411  uint32_t* pRegOverride;
412 };
413 
415 
418 #define CMD_PROP_RADIO_DIV_SETUP 0x3807
421  uint8_t dummy0;
422 };
423 
425 
428 #define CMD_PROP_SET_LEN 0x3401
431  uint16_t commandNo;
432  uint16_t rxLen;
433 };
434 
436 
439 #define CMD_PROP_RESTART_RX 0x3402
442  uint16_t commandNo;
443 };
444 
446 
450 
452  uint16_t nRxOk;
453  uint16_t nRxNok;
454  uint8_t nRxIgnored;
455  uint8_t nRxStopped;
456  uint8_t nRxBufFull;
457  int8_t lastRssi;
459 };
460 
462 
466 
468  struct {
469  uint8_t addressInd:5;
470  uint8_t syncWordId:1;
471  uint8_t result:2;
472  } status;
476 };
477 
479 
482 #endif
uint32_t syncWord1
Alternative sync word if non-zero.
Definition: rf_prop_cmd.h:298
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:338
uint8_t * pOutput
Pointer to output structure.
Definition: rf_prop_cmd.h:327
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:236
uint8_t address1
Address (set equal to address0 to accept only one address. If 0xFF, accept 0x00 as well) ...
Definition: rf_prop_cmd.h:165
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:256
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:452
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
Set Packet Length Command.
Definition: rf_prop_cmd.h:430
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:456
uint16_t commandNo
The command ID number 0x3402.
Definition: rf_prop_cmd.h:442
uint16_t maxPktLen
Packet length for fixed length, maximum packet length for variable length 0: Unlimited or unknown le...
Definition: rf_prop_cmd.h:299
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:324
int8_t lastRssi
RSSI of last received packet.
Definition: rf_prop_cmd.h:457
uint8_t nRxIgnored
Number of packets that have been received with CRC OK and ignored due to address mismatch.
Definition: rf_prop_cmd.h:454
Proprietary Mode Advanced Transmit Command.
Definition: rf_prop_cmd.h:186
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:120
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:192
uint16_t commandNo
The command ID number 0x3802.
Definition: rf_prop_cmd.h:115
Proprietary Mode Radio Setup Command.
Definition: rf_prop_cmd.h:336
uint16_t commandNo
The command ID number 0x3804.
Definition: rf_prop_cmd.h:251
uint8_t * pOutput
Pointer to output structure.
Definition: rf_prop_cmd.h:177
uint16_t nRxNok
Number of packets that have been received with CRC error.
Definition: rf_prop_cmd.h:453
Define only for compatibility with CC13XX family. Command will result in error if sent...
Definition: rf_prop_cmd.h:420
Proprietary Mode Receive Command.
Definition: rf_prop_cmd.h:114
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:342
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:162
ratmr_t endTime
Time used together with endTrigger for ending the operation.
Definition: rf_prop_cmd.h:175
uint16_t pktLen
Packet length. 0: Unlimited.
Definition: rf_prop_cmd.h:217
uint8_t * pPkt
Pointer to packet, or TX queue for unlimited length.
Definition: rf_prop_cmd.h:241
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:411
uint32_t syncWord
Sync word to listen for.
Definition: rf_prop_cmd.h:161
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:176
uint32_t ratmr_t
Type definition for RAT.
Definition: rf_mailbox.h:58
Proprietary Mode Transmit Command.
Definition: rf_prop_cmd.h:75
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:252
int8_t lenOffset
Signed value to add to length field.
Definition: rf_prop_cmd.h:315
uint16_t rxLen
Payload length to use.
Definition: rf_prop_cmd.h:432
Restart Packet Command.
Definition: rf_prop_cmd.h:441
uint8_t * pAddr
Pointer to address list.
Definition: rf_prop_cmd.h:325
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:116
uint8_t nRxStopped
Number of packets not received due to illegal length or address mismatch with pktConf.filterOp = 1.
Definition: rf_prop_cmd.h:455
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:458
uint16_t commandNo
The command ID number 0x3803.
Definition: rf_prop_cmd.h:187
uint16_t commandNo
The command ID number 0x3806.
Definition: rf_prop_cmd.h:337
Type definition for a data queue.
Definition: rf_mailbox.h:63
uint8_t numHdrBits
Number of bits in header (0–32)
Definition: rf_prop_cmd.h:216
dataQueue_t * pQueue
Pointer to receive queue.
Definition: rf_prop_cmd.h:326
uint8_t rxBw
Receiver bandwidth.
Definition: rf_prop_cmd.h:366
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:188
Proprietary Mode Advanced Receive Command.
Definition: rf_prop_cmd.h:250
uint16_t commandNo
The command ID number 0x3401.
Definition: rf_prop_cmd.h:431
uint32_t syncWord0
Sync word to listen for.
Definition: rf_prop_cmd.h:297
uint16_t txPower
Transmit power.
Definition: rf_prop_cmd.h:410
struct __RFC_STRUCT rfc_CMD_PROP_TX_s rfc_CMD_PROP_TX_t
Definition: rf_prop_cmd.h:60