Contiki-NG
cc1200-rf-cfg.h
1/*
2 * Copyright (c) 2015, Weptech elektronik GmbH Germany
3 * http://www.weptech.de
4 *
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. 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 * 3. Neither the name of the copyright holder nor the names of its
16 * contributors may be used to endorse or promote products derived
17 * from this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
30 * OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 * This file is part of the Contiki operating system.
33 */
34
35#ifndef CC1200_RF_CFG_H
36#define CC1200_RF_CFG_H
37
38#include "contiki.h"
39
40#include <stdint.h>
41#include <stdlib.h>
42
43/*---------------------------------------------------------------------------*/
44/*
45 * We export the register setup from SmartRF using the standard template
46 * "trxEB RF Settings Performance Line" and have therefore to typedef
47 * the following struct.
48 */
49typedef struct cc1200_registerSetting {
50 uint16_t addr;
51 uint8_t val;
52} registerSetting_t;
53/*---------------------------------------------------------------------------*/
54/* Map SmartRF typedef to reflect Contiki's naming conventions */
55typedef registerSetting_t cc1200_register_settings_t;
56/*---------------------------------------------------------------------------*/
57/* This struct holds the complete configuration for a given mode */
58typedef struct cc1200_rf_cfg {
59 /* A string describing the mode */
60 const char *cfg_descriptor;
61 /* A pointer to a register setup exported from SmartRF */
62 const cc1200_register_settings_t *register_settings;
63 /* The size of the register setup */
64 size_t size_of_register_settings;
65 /*
66 * TX packet lifetime. Maximum duration of a TX packet including preamble,
67 * synch word + phy header, payload + CRC.
68 */
69 rtimer_clock_t tx_pkt_lifetime;
70 /* The maximum time it takes to switch from Tx to Rx */
71 rtimer_clock_t tx_rx_turnaround;
72 /* The delay between a call to transmit() and end of SFD */
73 rtimer_clock_t delay_before_tx;
74 /* Delay between GO signal and start listening
75 * Measured 104us: between GO signal and start listening */
76 rtimer_clock_t delay_before_rx;
77 /* Delay between the SFD finishes arriving and it is detected in software */
78 rtimer_clock_t delay_before_detect;
79 /* Base frequency in kHz */
80 uint32_t chan_center_freq0;
81 /* Channel spacing in Hz */
82 uint32_t chan_spacing;
83 /* The minimum channel */
84 uint8_t min_channel;
85 /* The maximum channel */
86 uint8_t max_channel;
87 /* The maximum output power in dBm */
88 int8_t max_txpower;
89 /*
90 * The carrier sense level used for CCA in dBm (int8_t). Limited by
91 * CC1200_CONST_CCA_THRESHOLD_MIN and CC1200_CONST_CCA_THRESHOLD_MAX.
92 */
93 int8_t cca_threshold;
94 /* The RSSI offset in dBm.
95 * -99 when MDMCFG1.DVGA_GAIN=00, -81 when MDMCFG1.DVGA_GAIN=01 */
96 int8_t rssi_offset;
97 /* The bitrate in bps */
98 uint32_t bitrate;
99 /* TSCH timeslot timing */
100 const uint16_t *tsch_timing;
101} cc1200_rf_cfg_t;
102/*---------------------------------------------------------------------------*/
103#endif /* CC1200_RF_CFG_H */
static uip_ds6_addr_t * addr
Pointer to a nbr cache entry.
Definition: uip-nd6.c:107