From c98b0498a74b49d45ddebda778b56932320be803 Mon Sep 17 00:00:00 2001 From: Richard Weickelt Date: Thu, 8 Feb 2018 12:56:35 +0100 Subject: [PATCH] Adding more functionality --- arch/cpu/simplelink/Makefile.simplelink | 2 +- .../rf-settings/proprietary-rf-settings.c | 49 +++++++++++++++ arch/cpu/simplelink/simplelink-conf.h | 1 - arch/cpu/simplelink/source/proprietary-rf.c | 33 +++++----- arch/cpu/simplelink/source/proprietary-rf.h | 60 +++++++++++++++++++ 5 files changed, 124 insertions(+), 21 deletions(-) create mode 100644 arch/cpu/simplelink/source/proprietary-rf.h diff --git a/arch/cpu/simplelink/Makefile.simplelink b/arch/cpu/simplelink/Makefile.simplelink index fa3831541..3e35ebfed 100644 --- a/arch/cpu/simplelink/Makefile.simplelink +++ b/arch/cpu/simplelink/Makefile.simplelink @@ -1,5 +1,5 @@ -MODULES += os/net os/net/mac os/net/mac/framer +MODULES += os/net/mac/framer CPU_ABS_PATH = $(CONTIKI)/arch/cpu/simplelink diff --git a/arch/cpu/simplelink/rf-settings/proprietary-rf-settings.c b/arch/cpu/simplelink/rf-settings/proprietary-rf-settings.c index 38ee56181..317812c39 100644 --- a/arch/cpu/simplelink/rf-settings/proprietary-rf-settings.c +++ b/arch/cpu/simplelink/rf-settings/proprietary-rf-settings.c @@ -36,6 +36,55 @@ #include DeviceFamily_constructPath(rf_patches/rf_patch_mce_genfsk.h) #include "proprietary-rf-settings.h" +#include "contiki.h" +#include "dev/radio.h" +#include + +/*---------------------------------------------------------------------------*/ +/** + * \addtogroup rf-core-prop + * @{ + * + * \file + * Default TX power settings. The board can override + */ +/*---------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------*/ +/* Default TX power settings for the 779-930MHz band */ +const prop_mode_tx_power_config_t prop_mode_tx_power_779_930[] = { + { 14, 0xa73f }, + { 13, 0xa63f }, /* 12.5 */ + { 12, 0xb818 }, + { 11, 0x50da }, + { 10, 0x38d3 }, + { 9, 0x2ccd }, + { 8, 0x24cb }, + { 7, 0x20c9 }, + { 6, 0x1cc7 }, + { 5, 0x18c6 }, + { 4, 0x18c5 }, + { 3, 0x14c4 }, + { 2, 0x1042 }, + { 1, 0x10c3 }, + { 0, 0x0041 }, + { -10, 0x08c0 }, + {-128, 0xFFFF }, +}; +/*---------------------------------------------------------------------------*/ +/* Default TX power settings for the 431-527MHz band */ +const prop_mode_tx_power_config_t prop_mode_tx_power_431_527[] = { + { 15, 0x003f }, + { 14, 0xbe3f }, /* 13.7 */ + { 13, 0x6a0f }, + { 10, 0x3dcb }, + { 6, 0x22c4 }, + {-128, 0xFFFF }, +}; +/*---------------------------------------------------------------------------*/ +/** + * @} + */ // TI-RTOS RF Mode Object RF_Mode RF_prop = diff --git a/arch/cpu/simplelink/simplelink-conf.h b/arch/cpu/simplelink/simplelink-conf.h index 17ea011a2..1db50738f 100644 --- a/arch/cpu/simplelink/simplelink-conf.h +++ b/arch/cpu/simplelink/simplelink-conf.h @@ -91,7 +91,6 @@ #else /* CC13XX_CONF_PROP_MODE */ #define NETSTACK_CONF_RADIO ieee_mode_driver -#error BLABLA #define CSMA_CONF_SEND_SOFT_ACK 0 #endif /* CC13XX_CONF_PROP_MODE */ diff --git a/arch/cpu/simplelink/source/proprietary-rf.c b/arch/cpu/simplelink/source/proprietary-rf.c index d821bf1d9..ea0a21cdc 100644 --- a/arch/cpu/simplelink/source/proprietary-rf.c +++ b/arch/cpu/simplelink/source/proprietary-rf.c @@ -43,6 +43,7 @@ #include "sys/clock.h" #include "sys/rtimer.h" #include "sys/cc.h" +#include "proprietary-rf.h" /*---------------------------------------------------------------------------*/ /* RF core and RF HAL API */ #include @@ -1037,26 +1038,20 @@ on(void) static int off(void) { - /* - * If we are in the middle of a BLE operation, we got called by ContikiMAC - * from within an interrupt context. Abort, but pretend everything is OK. - */ - if(rf_ble_is_active() == RF_BLE_ACTIVE) { +// /* +// * If we are in the middle of a BLE operation, we got called by ContikiMAC +// * from within an interrupt context. Abort, but pretend everything is OK. +// */ +// if(rf_ble_is_active() == RF_BLE_ACTIVE) { +// return RF_CORE_CMD_OK; +// } + + RF_yield(handle); + + /* We pulled the plug, so we need to restore the status manually */ + smartrf_settings_cmd_prop_rx_adv.status = IDLE; + return RF_CORE_CMD_OK; - } - - rx_off_prop(); - rf_core_power_down(); - - ENERGEST_OFF(ENERGEST_TYPE_LISTEN); - - /* Switch HF clock source to the RCOSC to preserve power */ - oscillators_switch_to_hf_rc(); - - /* We pulled the plug, so we need to restore the status manually */ - smartrf_settings_cmd_prop_rx_adv.status = RF_CORE_RADIO_OP_STATUS_IDLE; - - return RF_CORE_CMD_OK; } /*---------------------------------------------------------------------------*/ static radio_result_t diff --git a/arch/cpu/simplelink/source/proprietary-rf.h b/arch/cpu/simplelink/source/proprietary-rf.h new file mode 100644 index 000000000..de61e53ec --- /dev/null +++ b/arch/cpu/simplelink/source/proprietary-rf.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2016, Texas Instruments Incorporated - http://www.ti.com/ + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/*---------------------------------------------------------------------------*/ +/** + * \addtogroup rf-core + * @{ + * + * \defgroup rf-core-prop CC13xx Prop mode driver + * + * @{ + * + * \file + * Header file for the CC13xx prop mode NETSTACK_RADIO driver + */ +/*---------------------------------------------------------------------------*/ +#ifndef PROP_MODE_H_ +#define PROP_MODE_H_ +/*---------------------------------------------------------------------------*/ +#include "contiki.h" + +#include +/*---------------------------------------------------------------------------*/ +typedef struct prop_mode_tx_power_config { + radio_value_t dbm; + uint16_t tx_power; /* Value for the PROP_DIV_RADIO_SETUP.txPower field */ +} prop_mode_tx_power_config_t; +/*---------------------------------------------------------------------------*/ +#endif /* PROP_MODE_H_ */ +/*---------------------------------------------------------------------------*/ +/** + * @} + * @} + */