CC13xx Driver Library
rf_prop_cmd.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: rf_prop_cmd.h
3 * Revised: 2015-08-04 10:40:45 +0200 (Tue, 04 Aug 2015)
4 * Revision: 44326
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 
71 
75  struct {
76  uint8_t bEnaRssi:1;
77  uint8_t bEnaCorr:1;
78  uint8_t operation:1;
79  uint8_t busyOp:1;
81  uint8_t idleOp:1;
84  uint8_t timeoutRes:1;
86  } csConf;
88  int8_t rssiThr;
89  uint8_t numRssiIdle;
90  uint8_t numRssiBusy;
92  uint16_t corrPeriod;
94  struct {
95  uint8_t numCorrInv:4;
96  uint8_t numCorrBusy:4;
98  } corrConfig;
100  struct {
101  uint8_t triggerType:4;
102  uint8_t bEnaCmd:1;
103  uint8_t triggerNo:2;
105  uint8_t pastTrig:1;
106  } csEndTrigger;
109 };
110 
112 
115 #define CMD_PROP_TX 0x3801
117  uint16_t commandNo;
118  uint16_t status;
119  rfc_radioOp_t *pNextOp;
123  struct {
124  uint8_t triggerType:4;
125  uint8_t bEnaCmd:1;
126  uint8_t triggerNo:2;
128  uint8_t pastTrig:1;
129  } startTrigger;
131  struct {
132  uint8_t rule:4;
133  uint8_t nSkip:4;
134  } condition;
135  struct {
136  uint8_t bFsOff:1;
137  uint8_t :2;
139  uint8_t bUseCrc:1;
140  uint8_t bVarLen:1;
142  } pktConf;
144  uint8_t pktLen;
145  uint32_t syncWord;
146  uint8_t* pPkt;
147 };
148 
150 
153 #define CMD_PROP_RX 0x3802
155  uint16_t commandNo;
156  uint16_t status;
157  rfc_radioOp_t *pNextOp;
161  struct {
162  uint8_t triggerType:4;
163  uint8_t bEnaCmd:1;
164  uint8_t triggerNo:2;
166  uint8_t pastTrig:1;
167  } startTrigger;
169  struct {
170  uint8_t rule:4;
171  uint8_t nSkip:4;
172  } condition;
173  struct {
174  uint8_t bFsOff:1;
175  uint8_t bRepeatOk:1;
177  uint8_t bRepeatNok:1;
179  uint8_t bUseCrc:1;
181  uint8_t bVarLen:1;
183  uint8_t bChkAddress:1;
185  uint8_t endType:1;
187  uint8_t filterOp:1;
189  } pktConf;
191  struct {
192  uint8_t bAutoFlushIgnored:1;
193  uint8_t bAutoFlushCrcErr:1;
194  uint8_t :1;
195  uint8_t bIncludeHdr:1;
196  uint8_t bIncludeCrc:1;
197  uint8_t bAppendRssi:1;
198  uint8_t bAppendTimestamp:1;
199  uint8_t bAppendStatus:1;
200  } rxConf;
201  uint32_t syncWord;
202  uint8_t maxPktLen;
203  uint8_t address0;
205  uint8_t address1;
206  struct {
208  uint8_t triggerType:4;
209  uint8_t bEnaCmd:1;
210  uint8_t triggerNo:2;
212  uint8_t pastTrig:1;
213  } endTrigger;
217  uint8_t* pOutput;
218 };
219 
221 
224 #define CMD_PROP_TX_ADV 0x3803
226  uint16_t commandNo;
227  uint16_t status;
228  rfc_radioOp_t *pNextOp;
232  struct {
233  uint8_t triggerType:4;
234  uint8_t bEnaCmd:1;
235  uint8_t triggerNo:2;
237  uint8_t pastTrig:1;
238  } startTrigger;
240  struct {
241  uint8_t rule:4;
242  uint8_t nSkip:4;
243  } condition;
244  struct {
245  uint8_t bFsOff:1;
246  uint8_t :2;
248  uint8_t bUseCrc:1;
249  uint8_t bCrcIncSw:1;
251  uint8_t bCrcIncHdr:1;
253  } pktConf;
255  uint8_t numHdrBits;
256  uint16_t pktLen;
257  struct {
258  uint8_t bExtTxTrig:1;
259  uint8_t inputMode:2;
261  uint8_t source:5;
266  } startConf;
267  struct {
268  uint8_t triggerType:4;
269  uint8_t bEnaCmd:1;
270  uint8_t triggerNo:2;
272  uint8_t pastTrig:1;
273  } preTrigger;
276  uint32_t syncWord;
280  uint8_t* pPkt;
281 };
282 
284 
287 #define CMD_PROP_RX_ADV 0x3804
289  uint16_t commandNo;
290  uint16_t status;
291  rfc_radioOp_t *pNextOp;
295  struct {
296  uint8_t triggerType:4;
297  uint8_t bEnaCmd:1;
298  uint8_t triggerNo:2;
300  uint8_t pastTrig:1;
301  } startTrigger;
303  struct {
304  uint8_t rule:4;
305  uint8_t nSkip:4;
306  } condition;
307  struct {
308  uint8_t bFsOff:1;
309  uint8_t bRepeatOk:1;
311  uint8_t bRepeatNok:1;
313  uint8_t bUseCrc:1;
315  uint8_t bCrcIncSw:1;
317  uint8_t bCrcIncHdr:1;
319  uint8_t endType:1;
321  uint8_t filterOp:1;
323  } pktConf;
325  struct {
326  uint8_t bAutoFlushIgnored:1;
327  uint8_t bAutoFlushCrcErr:1;
328  uint8_t :1;
329  uint8_t bIncludeHdr:1;
330  uint8_t bIncludeCrc:1;
331  uint8_t bAppendRssi:1;
332  uint8_t bAppendTimestamp:1;
333  uint8_t bAppendStatus:1;
334  } rxConf;
335  uint32_t syncWord0;
336  uint32_t syncWord1;
337  uint16_t maxPktLen;
338  struct {
340  uint16_t numHdrBits:6;
341  uint16_t lenPos:5;
342  uint16_t numLenBits:5;
343  } hdrConf;
344  struct {
345  uint16_t addrType:1;
346  uint16_t addrSize:5;
348  uint16_t addrPos:5;
350  uint16_t numAddr:5;
352  } addrConf;
353  int8_t lenOffset;
354  struct {
355  uint8_t triggerType:4;
356  uint8_t bEnaCmd:1;
357  uint8_t triggerNo:2;
359  uint8_t pastTrig:1;
360  } endTrigger;
363  uint8_t* pAddr;
365  uint8_t* pOutput;
366 };
367 
369 
372 #define CMD_PROP_RADIO_SETUP 0x3806
374  uint16_t commandNo;
375  uint16_t status;
376  rfc_radioOp_t *pNextOp;
380  struct {
381  uint8_t triggerType:4;
382  uint8_t bEnaCmd:1;
383  uint8_t triggerNo:2;
385  uint8_t pastTrig:1;
386  } startTrigger;
388  struct {
389  uint8_t rule:4;
390  uint8_t nSkip:4;
391  } condition;
392  struct {
393  uint16_t modType:3;
394  uint16_t deviation:13;
397  } modulation;
398  struct {
399  uint32_t preScale:4;
400  uint32_t :4;
401  uint32_t rateWord:21;
402  } symbolRate;
403  uint8_t rxBw;
404  struct {
405  uint8_t nPreamBytes:6;
406  uint8_t preamMode:2;
408  } preamConf;
412  struct {
413  uint16_t nSwBits:6;
414  uint16_t bBitReversal:1;
415  uint16_t bMsbFirst:1;
417  uint16_t fecMode:4;
419  uint16_t :1;
423  uint16_t whitenMode:3;
424  } formatConf;
432  struct {
433  uint16_t frontEndMode:3;
434  uint16_t biasMode:1;
440  uint16_t :6;
442  uint16_t bNoFsPowerUp:1;
443  } config;
445  uint16_t txPower;
446  uint32_t* pRegOverride;
447 };
449 
451 
454 #define CMD_PROP_RADIO_DIV_SETUP 0x3807
456  uint16_t commandNo;
457  uint16_t status;
458  rfc_radioOp_t *pNextOp;
462  struct {
463  uint8_t triggerType:4;
464  uint8_t bEnaCmd:1;
465  uint8_t triggerNo:2;
467  uint8_t pastTrig:1;
468  } startTrigger;
470  struct {
471  uint8_t rule:4;
472  uint8_t nSkip:4;
473  } condition;
474  struct {
475  uint16_t modType:3;
476  uint16_t deviation:13;
479  } modulation;
480  struct {
481  uint32_t preScale:4;
482  uint32_t :4;
483  uint32_t rateWord:21;
484  } symbolRate;
485  uint8_t rxBw;
486  struct {
487  uint8_t nPreamBytes:6;
488  uint8_t preamMode:2;
490  } preamConf;
494  struct {
495  uint16_t nSwBits:6;
496  uint16_t bBitReversal:1;
497  uint16_t bMsbFirst:1;
499  uint16_t fecMode:4;
501  uint16_t :1;
505  uint16_t whitenMode:3;
506  } formatConf;
514  struct {
515  uint16_t frontEndMode:3;
516  uint16_t biasMode:1;
522  uint16_t :6;
524  uint16_t bNoFsPowerUp:1;
525  } config;
527  uint16_t txPower;
528  uint32_t* pRegOverride;
529  uint16_t centerFreq;
531  int16_t intFreq;
535  uint8_t loDivider;
538 };
539 
541 
544 #define CMD_PROP_SET_LEN 0x3401
546  uint16_t commandNo;
547  uint16_t rxLen;
548 };
549 
551 
554 #define CMD_PROP_RESTART_RX 0x3402
556  uint16_t commandNo;
557 };
558 
560 
564 
566  uint16_t nRxOk;
567  uint16_t nRxNok;
568  uint8_t nRxIgnored;
569  uint8_t nRxStopped;
570  uint8_t nRxBufFull;
571  int8_t lastRssi;
573 };
574 
576 
580 
582  struct {
583  uint8_t addressInd:5;
584  uint8_t syncWordId:1;
585  uint8_t result:2;
586  } status;
590 };
591 
593 
596 #endif
uint32_t syncWord1
Alternative sync word if non-zero.
Definition: rf_prop_cmd.h:336
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:375
uint8_t * pOutput
Pointer to output structure.
Definition: rf_prop_cmd.h:365
uint8_t pktLen
Packet length.
Definition: rf_prop_cmd.h:144
int8_t rssiThr
RSSI threshold.
Definition: rf_prop_cmd.h:88
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:275
uint8_t address1
Address (set equal to address0 to accept only one address. If 0xFF, accept 0x00 as well) ...
Definition: rf_prop_cmd.h:205
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:294
uint8_t * pPkt
Pointer to packet.
Definition: rf_prop_cmd.h:146
uint16_t nRxOk
Number of packets that have been received with payload, CRC OK and not ignored.
Definition: rf_prop_cmd.h:566
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:528
uint16_t commandNo
The command ID number 0x3801.
Definition: rf_prop_cmd.h:117
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:118
struct __RFC_STRUCT rfc_propRxStatus_s rfc_propRxStatus_t
Definition: rf_prop_cmd.h:70
struct __RFC_STRUCT rfc_CMD_PROP_TX_ADV_s rfc_CMD_PROP_TX_ADV_t
Definition: rf_prop_cmd.h:63
#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:570
uint16_t commandNo
The command ID number 0x3402.
Definition: rf_prop_cmd.h:556
ratmr_t csEndTime
Time used together with csEndTrigger for ending the operation.
Definition: rf_prop_cmd.h:108
uint16_t txPower
Transmit power.
Definition: rf_prop_cmd.h:527
uint16_t maxPktLen
Packet length for fixed length, maximum packet length for variable length 0: Unlimited or unknown le...
Definition: rf_prop_cmd.h:337
struct __RFC_STRUCT rfc_CMD_PROP_RADIO_DIV_SETUP_s rfc_CMD_PROP_RADIO_DIV_SETUP_t
Definition: rf_prop_cmd.h:66
ratmr_t endTime
Time used together with endTrigger for ending the operation.
Definition: rf_prop_cmd.h:362
int8_t lastRssi
RSSI of last received packet.
Definition: rf_prop_cmd.h:571
uint8_t nRxIgnored
Number of packets that have been received with CRC OK and ignored due to address mismatch.
Definition: rf_prop_cmd.h:568
uint8_t numRssiIdle
Number of consecutive RSSI measurements below the threshold needed before the channel is declared Idl...
Definition: rf_prop_cmd.h:89
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:160
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:231
uint16_t commandNo
The command ID number 0x3807.
Definition: rf_prop_cmd.h:456
uint16_t commandNo
The command ID number 0x3802.
Definition: rf_prop_cmd.h:155
struct __RFC_STRUCT rfc_carrierSense_s rfc_carrierSense_t
Definition: rf_prop_cmd.h:60
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:461
uint16_t commandNo
The command ID number 0x3804.
Definition: rf_prop_cmd.h:289
uint8_t * pOutput
Pointer to output structure.
Definition: rf_prop_cmd.h:217
uint16_t nRxNok
Number of packets that have been received with CRC error.
Definition: rf_prop_cmd.h:567
struct __RFC_STRUCT rfc_CMD_PROP_RESTART_RX_s rfc_CMD_PROP_RESTART_RX_t
Definition: rf_prop_cmd.h:68
struct __RFC_STRUCT rfc_CMD_PROP_RADIO_SETUP_s rfc_CMD_PROP_RADIO_SETUP_t
Definition: rf_prop_cmd.h:65
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:379
struct __RFC_STRUCT rfc_CMD_PROP_RX_s rfc_CMD_PROP_RX_t
Definition: rf_prop_cmd.h:62
uint8_t maxPktLen
Packet length for fixed length, maximum packet length for variable length 0: Unlimited or unknown le...
Definition: rf_prop_cmd.h:202
ratmr_t endTime
Time used together with endTrigger for ending the operation.
Definition: rf_prop_cmd.h:215
uint16_t pktLen
Packet length. 0: Unlimited.
Definition: rf_prop_cmd.h:256
uint8_t * pPkt
Pointer to packet, or Tx queue for unlimited length.
Definition: rf_prop_cmd.h:280
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:446
uint32_t syncWord
Sync word to listen for.
Definition: rf_prop_cmd.h:201
struct __RFC_STRUCT rfc_CMD_PROP_RX_ADV_s rfc_CMD_PROP_RX_ADV_t
Definition: rf_prop_cmd.h:64
dataQueue_t * pQueue
Pointer to receive queue.
Definition: rf_prop_cmd.h:216
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:290
int8_t lenOffset
Signed value to add to length field.
Definition: rf_prop_cmd.h:353
uint16_t rxLen
Payload length to use.
Definition: rf_prop_cmd.h:547
uint8_t * pAddr
Pointer to address list.
Definition: rf_prop_cmd.h:363
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:156
uint8_t nRxStopped
Number of packets not received due to illegal length or address mismatch with pktConf.filterOp = 1.
Definition: rf_prop_cmd.h:569
uint32_t syncWord
Sync word to transmit.
Definition: rf_prop_cmd.h:145
struct __RFC_STRUCT rfc_CMD_PROP_SET_LEN_s rfc_CMD_PROP_SET_LEN_t
Definition: rf_prop_cmd.h:67
struct __RFC_STRUCT rfc_propRxOutput_s rfc_propRxOutput_t
Definition: rf_prop_cmd.h:69
ratmr_t startTime
Absolute or relative start time (depending on the value of startTrigger)
Definition: rf_prop_cmd.h:122
ratmr_t timeStamp
Time stamp of last received packet.
Definition: rf_prop_cmd.h:572
uint16_t commandNo
The command ID number 0x3803.
Definition: rf_prop_cmd.h:226
uint16_t commandNo
The command ID number 0x3806.
Definition: rf_prop_cmd.h:374
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:457
uint8_t numHdrBits
Number of bits in header (0–32)
Definition: rf_prop_cmd.h:255
dataQueue_t * pQueue
Pointer to receive queue.
Definition: rf_prop_cmd.h:364
uint8_t rxBw
Receiver bandwidth.
Definition: rf_prop_cmd.h:403
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:227
uint16_t commandNo
The command ID number 0x3401.
Definition: rf_prop_cmd.h:546
uint32_t syncWord0
Sync word to listen for.
Definition: rf_prop_cmd.h:335
uint16_t txPower
Transmit power.
Definition: rf_prop_cmd.h:445
struct __RFC_STRUCT rfc_CMD_PROP_TX_s rfc_CMD_PROP_TX_t
Definition: rf_prop_cmd.h:61
uint8_t rxBw
Receiver bandwidth.
Definition: rf_prop_cmd.h:485