From de0197d71fb3a7c8e232f263a30d50e30ef82104 Mon Sep 17 00:00:00 2001 From: Edvard Pettersen Date: Tue, 17 Jul 2018 18:01:49 +0200 Subject: [PATCH] Normalized TX power settings --- .../rf-settings/cc13x0/ieee-settings.c | 18 +- .../rf-settings/cc13x0/ieee-settings.h | 11 +- .../rf-settings/cc13x0/prop-settings.c | 143 ++++++++- .../rf-settings/cc13x0/prop-settings.h | 11 +- .../rf-settings/cc13x2/ieee-settings.c | 161 ++++++++-- .../rf-settings/cc13x2/ieee-settings.h | 14 +- .../rf-settings/cc13x2/prop-settings.c | 284 ++++++++++++++---- .../rf-settings/cc13x2/prop-settings.h | 14 +- .../rf-settings/cc26x0/ieee-settings.c | 17 +- .../rf-settings/cc26x0/ieee-settings.h | 11 +- .../rf-settings/cc26x2/ieee-settings.c | 17 +- .../rf-settings/cc26x2/ieee-settings.h | 12 +- .../cc13xx-cc26xx/Makefile.cc13xx-cc26xx | 1 + .../launchpad/cc1310/Makefile.cc1310 | 5 +- .../launchpad/cc1312r1/Makefile.cc1312r1 | 8 +- .../launchpad/cc1350-4/Makefile.cc1350-4 | 5 +- .../launchpad/cc1350/Makefile.cc1350 | 5 +- .../launchpad/cc1352p-2/Makefile.cc1352p-2 | 11 +- .../launchpad/cc1352p-4/Makefile.cc1352p-4 | 11 +- .../launchpad/cc1352p1/Makefile.cc1352p1 | 11 +- .../launchpad/cc1352r1/Makefile.cc1352r1 | 11 +- .../launchpad/cc2650/Makefile.cc2650 | 5 +- .../launchpad/cc26x2r1/Makefile.cc26x2r1 | 5 +- .../sensortag/cc1350/Makefile.cc1350 | 5 +- .../sensortag/cc2650/Makefile.cc2650 | 5 +- .../srf06/cc13x0/Makefile.cc13x0 | 5 +- .../srf06/cc26x0/Makefile.cc26x0 | 5 +- 27 files changed, 616 insertions(+), 195 deletions(-) diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/ieee-settings.c b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/ieee-settings.c index d51fec78c..d903a4c4c 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/ieee-settings.c +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/ieee-settings.c @@ -70,7 +70,7 @@ RF_Mode rf_ieee_mode = * See the Technical Reference Manual for further details about the "txPower" Command field. * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. */ -RF_TxPowerTable_Entry rf_ieee_tx_power_table[RF_IEEE_TX_POWER_TABLE_SIZE+1] = +RF_TxPowerTable_Entry rf_ieee_tx_power_table[] = { { -21, RF_TxPowerTable_DEFAULT_PA_ENTRY( 7, 3, 0, 6) }, { -18, RF_TxPowerTable_DEFAULT_PA_ENTRY( 9, 3, 0, 6) }, @@ -87,6 +87,20 @@ RF_TxPowerTable_Entry rf_ieee_tx_power_table[RF_IEEE_TX_POWER_TABLE_SIZE+1] = { 5, RF_TxPowerTable_DEFAULT_PA_ENTRY(48, 0, 1, 73) }, RF_TxPowerTable_TERMINATION_ENTRY }; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_ieee_tx_power_table_size = + (sizeof(rf_ieee_tx_power_table) / sizeof(rf_ieee_tx_power_table[0])) - 1; + +/* + * CMD_RADIO_SETUP must be configured with default TX power value + * in the .txPower field. + */ +#define DEFAULT_TX_POWER 0x9330 /* 5 dBm */ + /*---------------------------------------------------------------------------*/ /* Overrides for CMD_RADIO_SETUP */ uint32_t rf_ieee_overrides[] CC_ALIGN(4) = @@ -133,7 +147,7 @@ rfc_CMD_RADIO_SETUP_t rf_cmd_ieee_radio_setup = .config.biasMode = 0x1, .config.analogCfgMode = 0x0, .config.bNoFsPowerUp = 0x0, - .txPower = 0x9330, /* 5 dBm default */ + .txPower = DEFAULT_TX_POWER, /* 5 dBm default */ .pRegOverride = rf_ieee_overrides, }; /*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/ieee-settings.h b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/ieee-settings.h index 5f66f8b5d..e25127c9c 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/ieee-settings.h +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/ieee-settings.h @@ -31,6 +31,8 @@ #ifndef IEEE_SETTINGS_H_ #define IEEE_SETTINGS_H_ /*---------------------------------------------------------------------------*/ +#include "contiki-conf.h" +/*---------------------------------------------------------------------------*/ #include #include DeviceFamily_constructPath(driverlib/rf_mailbox.h) #include DeviceFamily_constructPath(driverlib/rf_common_cmd.h) @@ -44,12 +46,11 @@ #include /*---------------------------------------------------------------------------*/ /* TI-RTOS RF Mode Object */ -extern RF_Mode rf_ieee_mode; +extern RF_Mode rf_ieee_mode; /*---------------------------------------------------------------------------*/ /* TX Power Table */ -#define RF_IEEE_TX_POWER_TABLE_SIZE 13 - -extern RF_TxPowerTable_Entry rf_ieee_tx_power_table[RF_IEEE_TX_POWER_TABLE_SIZE+1]; +extern RF_TxPowerTable_Entry rf_ieee_tx_power_table[]; +extern const size_t rf_ieee_tx_power_table_size; /*---------------------------------------------------------------------------*/ /* RF Core API commands */ extern rfc_CMD_RADIO_SETUP_t rf_cmd_ieee_radio_setup; @@ -59,7 +60,7 @@ extern rfc_CMD_IEEE_RX_t rf_cmd_ieee_rx; extern rfc_CMD_IEEE_RX_ACK_t rf_cmd_ieee_rx_ack; /*---------------------------------------------------------------------------*/ /* RF Core API Overrides */ -extern uint32_t rf_ieee_overrides[]; +extern uint32_t rf_ieee_overrides[]; /*---------------------------------------------------------------------------*/ #endif /* IEEE_SETTINGS_H_ */ /*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/prop-settings.c b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/prop-settings.c index e32d93d31..3c6c1c261 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/prop-settings.c +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/prop-settings.c @@ -51,6 +51,7 @@ * Whitening: Dynamically IEEE 802.15.4g compatible whitener and 16/32-bit CRC */ /*---------------------------------------------------------------------------*/ +#include "contiki-conf.h" #include "sys/cc.h" /*---------------------------------------------------------------------------*/ #include @@ -73,14 +74,15 @@ RF_Mode rf_prop_mode = .rfePatchFxn = &rf_patch_rfe_genfsk, }; /*---------------------------------------------------------------------------*/ +#if defined(DEVICE_CC1310) /* - * TX Power table + * TX Power table for CC1310 * The RF_TxPowerTable_DEFAULT_PA_ENTRY macro is defined in RF.h and requires the following arguments: * RF_TxPowerTable_DEFAULT_PA_ENTRY(bias, gain, boost coefficient) * See the Technical Reference Manual for further details about the "txPower" Command field. * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. */ -RF_TxPowerTable_Entry rf_prop_tx_power_table[RF_PROP_TX_POWER_TABLE_SIZE+1] = +RF_TxPowerTable_Entry rf_prop_tx_power_table[] = { { -10, RF_TxPowerTable_DEFAULT_PA_ENTRY( 0, 3, 0, 4) }, { 0, RF_TxPowerTable_DEFAULT_PA_ENTRY( 1, 1, 0, 0) }, @@ -98,10 +100,136 @@ RF_TxPowerTable_Entry rf_prop_tx_power_table[RF_PROP_TX_POWER_TABLE_SIZE+1] = { 12, RF_TxPowerTable_DEFAULT_PA_ENTRY(24, 0, 0, 92) }, /* The original PA value (12.5 dBm) have been rounded to an integer value. */ { 13, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 0, 83) }, - /* This setting requires CCFG_FORCE_VDDR_HH = 1. */ +#if RF_CONF_TXPOWER_BOOST_MODE + /* This setting requires RF_CONF_TXPOWER_BOOST_MODE = 1. */ { 14, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 1, 83) }, +#endif RF_TxPowerTable_TERMINATION_ENTRY }; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_prop_tx_power_table_size = + (sizeof(rf_prop_tx_power_table) / sizeof(rf_prop_tx_power_table[0])) - 1; + +/* + * CMD_PROP_RADIO_DIV_SETUP must be configured with default TX power value + * in the .txPower field. This depends on whether RF_CONF_TXPOWER_BOOST_MODE + * is configured or not. + */ +#if RF_CONF_TXPOWER_BOOST_MODE +#define DEFAULT_TX_POWER 0xA73F /* 14 dBm */ +#else +#define DEFAULT_TX_POWER 0xA63F /* 12.5 dBm (rounded up to 13 dBm) */ +#endif + +#endif /* defined(DEVICE_CC1310) */ +/*---------------------------------------------------------------------------*/ +#if defined(DEVICE_CC1350) +/* + * TX Power table for CC1350 + * The RF_TxPowerTable_DEFAULT_PA_ENTRY macro is defined in RF.h and requires the following arguments: + * RF_TxPowerTable_DEFAULT_PA_ENTRY(bias, gain, boost coefficient) + * See the Technical Reference Manual for further details about the "txPower" Command field. + * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. + */ +RF_TxPowerTable_Entry rf_prop_tx_power_table[] = +{ + { -10, RF_TxPowerTable_DEFAULT_PA_ENTRY( 0, 3, 0, 2) }, + { 0, RF_TxPowerTable_DEFAULT_PA_ENTRY( 3, 3, 0, 9) }, + { 1, RF_TxPowerTable_DEFAULT_PA_ENTRY( 4, 3, 0, 11) }, + { 2, RF_TxPowerTable_DEFAULT_PA_ENTRY( 5, 3, 0, 12) }, + { 3, RF_TxPowerTable_DEFAULT_PA_ENTRY( 6, 3, 0, 14) }, + { 4, RF_TxPowerTable_DEFAULT_PA_ENTRY( 4, 1, 0, 12) }, + { 5, RF_TxPowerTable_DEFAULT_PA_ENTRY( 8, 3, 0, 16) }, + { 6, RF_TxPowerTable_DEFAULT_PA_ENTRY( 9, 3, 0, 18) }, + { 7, RF_TxPowerTable_DEFAULT_PA_ENTRY(11, 3, 0, 21) }, + { 8, RF_TxPowerTable_DEFAULT_PA_ENTRY(14, 3, 0, 25) }, + { 9, RF_TxPowerTable_DEFAULT_PA_ENTRY(18, 3, 0, 32) }, + { 10, RF_TxPowerTable_DEFAULT_PA_ENTRY(24, 3, 0, 44) }, + { 11, RF_TxPowerTable_DEFAULT_PA_ENTRY(37, 3, 0, 72) }, + { 12, RF_TxPowerTable_DEFAULT_PA_ENTRY(43, 0, 0, 94) }, +#if RF_CONF_TXPOWER_BOOST_MODE + /* This setting requires RF_CONF_TXPOWER_BOOST_MODE = 1. */ + { 14, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 1, 85) }, +#endif + RF_TxPowerTable_TERMINATION_ENTRY +}; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_prop_tx_power_table_size = + (sizeof(rf_prop_tx_power_table) / sizeof(rf_prop_tx_power_table[0])) - 1; + +/* + * CMD_PROP_RADIO_DIV_SETUP must be configured with default TX power value + * in the .txPower field. This depends on whether RF_CONF_TXPOWER_BOOST_MODE + * is configured or not. + */ +#if RF_CONF_TXPOWER_BOOST_MODE +#define DEFAULT_TX_POWER 0xAB3F /* 14 dBm */ +#else +#define DEFAULT_TX_POWER 0xBC2B /* 12 dBm */ +#endif + +#endif /* defined(DEVICE_CC1350) */ + /*---------------------------------------------------------------------------*/ +#if defined(DEVICE_CC1350_4) +/* + * TX Power table for CC1350_433 + * The RF_TxPowerTable_DEFAULT_PA_ENTRY macro is defined in RF.h and requires the following arguments: + * RF_TxPowerTable_DEFAULT_PA_ENTRY(bias, gain, boost coefficient) + * See the Technical Reference Manual for further details about the "txPower" Command field. + * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. + */ +RF_TxPowerTable_Entry rf_prop_tx_power_table[] = +{ + { -10, RF_TxPowerTable_DEFAULT_PA_ENTRY( 0, 3, 0, 2) }, + { 0, RF_TxPowerTable_DEFAULT_PA_ENTRY( 1, 3, 0, 7) }, + { 2, RF_TxPowerTable_DEFAULT_PA_ENTRY( 1, 3, 0, 9) }, + { 3, RF_TxPowerTable_DEFAULT_PA_ENTRY( 2, 3, 0, 11) }, + { 4, RF_TxPowerTable_DEFAULT_PA_ENTRY( 2, 3, 0, 12) }, + { 5, RF_TxPowerTable_DEFAULT_PA_ENTRY( 3, 3, 0, 16) }, + { 6, RF_TxPowerTable_DEFAULT_PA_ENTRY( 4, 3, 0, 18) }, + { 7, RF_TxPowerTable_DEFAULT_PA_ENTRY( 5, 3, 0, 21) }, + { 8, RF_TxPowerTable_DEFAULT_PA_ENTRY( 6, 3, 0, 23) }, + { 9, RF_TxPowerTable_DEFAULT_PA_ENTRY( 8, 3, 0, 28) }, + { 10, RF_TxPowerTable_DEFAULT_PA_ENTRY(11, 3, 0, 35) }, + { 11, RF_TxPowerTable_DEFAULT_PA_ENTRY( 8, 1, 0, 39) }, + { 12, RF_TxPowerTable_DEFAULT_PA_ENTRY(14, 1, 0, 60) }, + { 13, RF_TxPowerTable_DEFAULT_PA_ENTRY(15, 0, 0, 108) }, + /* The original PA value (13.7 dBm) have been rounded to an integer value. */ + { 14, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 0, 92) }, +#if RF_CONF_TXPOWER_BOOST_MODE + /* This setting requires RF_CONF_TXPOWER_BOOST_MODE = 1. */ + { 15, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 1, 72) }, +#endif + RF_TxPowerTable_TERMINATION_ENTRY +}; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_prop_tx_power_table_size = + (sizeof(rf_prop_tx_power_table) / sizeof(rf_prop_tx_power_table[0])) - 1; + +/* + * CMD_PROP_RADIO_DIV_SETUP must be configured with default TX power value + * in the .txPower field. This depends on whether RF_CONF_TXPOWER_BOOST_MODE + * is configured or not. + */ +#if RF_CONF_TXPOWER_BOOST_MODE +#define DEFAULT_TX_POWER 0x913F /* 15 dBm */ +#else +#define DEFAULT_TX_POWER 0xB83F /* 13.7 dBm (rounded up to 14 dBm) */ +#endif + +#endif /* defined(DEVICE_CC1350_4) */ /*---------------------------------------------------------------------------*/ /* Overrides for CMD_PROP_RADIO_DIV_SETUP */ uint32_t rf_prop_overrides[] CC_ALIGN(4) = @@ -138,10 +266,17 @@ uint32_t rf_prop_overrides[] CC_ALIGN(4) = (uint32_t)0x00000943, /* CRC-16 calculation (see TRM section 23.7.5.2.1) */ /* IEEE 802.15.4g: Fix incorrect initialization value for */ (uint32_t)0x00000963, /* CRC-16 calculation (see TRM section 23.7.5.2.1) */ +#if defined(DEVICE_CC1350_4) + /* override_phy_rx_rssi_offset_neg2db.xml */ + (uint32_t)0x000288A3, /* Rx: Set RSSI offset to adjust reported RSSI by -2 dB */ +#else /* override_phy_rx_rssi_offset_5db.xml */ (uint32_t)0x00FB88A3, /* Rx: Set RSSI offset to adjust reported RSSI by +5 dB */ +#endif /* TX power override */ +#if RF_CONF_TXPOWER_BOOST_MODE ADI_REG_OVERRIDE(0,12,0xF8), /* Tx: Set PA trim to max (in ADI0, set PACTL0=0xF8) */ +#endif (uint32_t)0xFFFFFFFF, }; /*---------------------------------------------------------------------------*/ @@ -175,7 +310,7 @@ rfc_CMD_PROP_RADIO_DIV_SETUP_t rf_cmd_prop_radio_div_setup = .config.biasMode = 0x1, /* set by driver */ .config.analogCfgMode = 0x0, .config.bNoFsPowerUp = 0x0, - .txPower = 0xA73F, + .txPower = DEFAULT_TX_POWER, .pRegOverride = rf_prop_overrides, .centerFreq = 0x0364, /* set by driver */ .intFreq = 0x8000, /* set by driver */ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/prop-settings.h b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/prop-settings.h index 1e5169459..f4f32ad57 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/prop-settings.h +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x0/prop-settings.h @@ -31,6 +31,8 @@ #ifndef PROP_SETTINGS_H_ #define PROP_SETTINGS_H_ /*---------------------------------------------------------------------------*/ +#include "contiki-conf.h" +/*---------------------------------------------------------------------------*/ #include #include DeviceFamily_constructPath(driverlib/rf_mailbox.h) #include DeviceFamily_constructPath(driverlib/rf_common_cmd.h) @@ -40,12 +42,11 @@ #include /*---------------------------------------------------------------------------*/ /* TI-RTOS RF Mode Object */ -extern RF_Mode rf_prop_mode; +extern RF_Mode rf_prop_mode; /*---------------------------------------------------------------------------*/ /* TX Power Table */ -#define RF_PROP_TX_POWER_TABLE_SIZE 16 - -extern RF_TxPowerTable_Entry rf_prop_tx_power_table[RF_PROP_TX_POWER_TABLE_SIZE+1]; +extern RF_TxPowerTable_Entry rf_prop_tx_power_table[]; +extern const size_t rf_prop_tx_power_table_size; /*---------------------------------------------------------------------------*/ /* RF Core API commands */ extern rfc_CMD_PROP_RADIO_DIV_SETUP_t rf_cmd_prop_radio_div_setup; @@ -54,7 +55,7 @@ extern rfc_CMD_PROP_TX_ADV_t rf_cmd_prop_tx_adv; extern rfc_CMD_PROP_RX_ADV_t rf_cmd_prop_rx_adv; /*---------------------------------------------------------------------------*/ /* RF Core API Overrides */ -extern uint32_t rf_prop_overrides[]; +extern uint32_t rf_prop_overrides[]; /*---------------------------------------------------------------------------*/ #endif /* PROP_SETTINGS_H_ */ /*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/ieee-settings.c b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/ieee-settings.c index 4eabcf367..253c11dfc 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/ieee-settings.c +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/ieee-settings.c @@ -67,6 +67,7 @@ RF_Mode rf_ieee_mode = .rfePatchFxn = 0, }; /*---------------------------------------------------------------------------*/ +#if defined(DEVICE_CC1352R) /* * TX Power table * The RF_TxPowerTable_DEFAULT_PA_ENTRY macro is defined in RF.h and requires the following arguments: @@ -74,7 +75,7 @@ RF_Mode rf_ieee_mode = * See the Technical Reference Manual for further details about the "txPower" Command field. * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. */ -RF_TxPowerTable_Entry rf_ieee_tx_power_table_default_pa[RF_IEEE_TX_POWER_TABLE_DEFAULT_PA_SIZE+1] = +RF_TxPowerTable_Entry rf_ieee_tx_power_table[] = { { -21, RF_TxPowerTable_DEFAULT_PA_ENTRY( 7, 3, 0, 3) }, { -18, RF_TxPowerTable_DEFAULT_PA_ENTRY( 9, 3, 0, 3) }, @@ -93,36 +94,22 @@ RF_TxPowerTable_Entry rf_ieee_tx_power_table_default_pa[RF_IEEE_TX_POWER_TABLE_D { 5, RF_TxPowerTable_DEFAULT_PA_ENTRY(30, 0, 0, 74) }, RF_TxPowerTable_TERMINATION_ENTRY }; -/*---------------------------------------------------------------------------*/ + /* - * TX Power table - * The RF_TxPowerTable_HIGH_PA_ENTRY macro is defined in RF.h and requires the following arguments: - * RF_TxPowerTable_HIGH_PA_ENTRY(bias, ibboost, boost, coefficient, ldoTrim) - * See the Technical Reference Manual for further details about the "txPower" Command field. - * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. + * TX power table size, with one less entry excluding the + * termination entry. */ -RF_TxPowerTable_Entry rf_ieee_tx_power_table_high_pa[RF_IEEE_TX_POWER_TABLE_HIGH_PA_SIZE+1] = -{ - { 0, RF_TxPowerTable_HIGH_PA_ENTRY(29, 0, 1, 17, 1) }, - { 3, RF_TxPowerTable_HIGH_PA_ENTRY(39, 0, 1, 20, 1) }, - { 6, RF_TxPowerTable_HIGH_PA_ENTRY(46, 0, 1, 26, 7) }, - { 9, RF_TxPowerTable_HIGH_PA_ENTRY(40, 0, 1, 39, 41) }, - { 10, RF_TxPowerTable_HIGH_PA_ENTRY(23, 2, 1, 65, 5) }, - { 11, RF_TxPowerTable_HIGH_PA_ENTRY(24, 2, 1, 29, 7) }, - { 12, RF_TxPowerTable_HIGH_PA_ENTRY(19, 2, 1, 16, 25) }, - { 13, RF_TxPowerTable_HIGH_PA_ENTRY(27, 2, 1, 19, 13) }, - { 14, RF_TxPowerTable_HIGH_PA_ENTRY(24, 2, 1, 19, 27) }, - { 15, RF_TxPowerTable_HIGH_PA_ENTRY(23, 2, 1, 20, 39) }, - { 16, RF_TxPowerTable_HIGH_PA_ENTRY(34, 2, 1, 26, 23) }, - { 17, RF_TxPowerTable_HIGH_PA_ENTRY(38, 2, 1, 33, 25) }, - { 18, RF_TxPowerTable_HIGH_PA_ENTRY(30, 2, 1, 37, 53) }, - { 19, RF_TxPowerTable_HIGH_PA_ENTRY(36, 2, 1, 57, 59) }, - { 20, RF_TxPowerTable_HIGH_PA_ENTRY(56, 2, 1, 45, 63) }, - RF_TxPowerTable_TERMINATION_ENTRY -}; +const size_t rf_ieee_tx_power_table_size = + (sizeof(rf_ieee_tx_power_table) / sizeof(rf_ieee_tx_power_table[0])) - 1; + +/* + * CMD_RADIO_SETUP must be configured with default TX power value + * in the .txPower field. + */ +#define DEFAULT_TX_POWER 0x941E /* 5 dBm */ /*---------------------------------------------------------------------------*/ -/* Overrides for CMD_RADIO_SETUP with default PA */ -uint32_t rf_ieee_overrides_default_pa[] CC_ALIGN(4) = +/* Overrides for CMD_RADIO_SETUP */ +uint32_t rf_ieee_overrides[] CC_ALIGN(4) = { /* override_ieee_802_15_4.xml */ MCE_RFE_OVERRIDE(1,0,0,0,1,0), /* PHY: Use MCE RAM patch, RFE ROM bank 1 */ @@ -142,9 +129,54 @@ uint32_t rf_ieee_overrides_default_pa[] CC_ALIGN(4) = (uint32_t)0x000F8883, /* Rx: Set LNA bias current offset to +15 to saturate trim to max (default: 0) */ (uint32_t)0xFFFFFFFF, }; + +#endif /* defined(DEVICE_CC1352R) */ +/*---------------------------------------------------------------------------*/ +#if defined(DEVICE_CC1352P) + +#if RF_CONF_TXPOWER_HIGH_PA +/* + * TX Power table + * The RF_TxPowerTable_HIGH_PA_ENTRY macro is defined in RF.h and requires the following arguments: + * RF_TxPowerTable_HIGH_PA_ENTRY(bias, ibboost, boost, coefficient, ldoTrim) + * See the Technical Reference Manual for further details about the "txPower" Command field. + * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. + */ +RF_TxPowerTable_Entry rf_ieee_tx_power_table[] = +{ + { 0, RF_TxPowerTable_HIGH_PA_ENTRY(29, 0, 1, 17, 1) }, + { 3, RF_TxPowerTable_HIGH_PA_ENTRY(39, 0, 1, 20, 1) }, + { 6, RF_TxPowerTable_HIGH_PA_ENTRY(46, 0, 1, 26, 7) }, + { 9, RF_TxPowerTable_HIGH_PA_ENTRY(40, 0, 1, 39, 41) }, + { 10, RF_TxPowerTable_HIGH_PA_ENTRY(23, 2, 1, 65, 5) }, + { 11, RF_TxPowerTable_HIGH_PA_ENTRY(24, 2, 1, 29, 7) }, + { 12, RF_TxPowerTable_HIGH_PA_ENTRY(19, 2, 1, 16, 25) }, + { 13, RF_TxPowerTable_HIGH_PA_ENTRY(27, 2, 1, 19, 13) }, + { 14, RF_TxPowerTable_HIGH_PA_ENTRY(24, 2, 1, 19, 27) }, + { 15, RF_TxPowerTable_HIGH_PA_ENTRY(23, 2, 1, 20, 39) }, + { 16, RF_TxPowerTable_HIGH_PA_ENTRY(34, 2, 1, 26, 23) }, + { 17, RF_TxPowerTable_HIGH_PA_ENTRY(38, 2, 1, 33, 25) }, + { 18, RF_TxPowerTable_HIGH_PA_ENTRY(30, 2, 1, 37, 53) }, + { 19, RF_TxPowerTable_HIGH_PA_ENTRY(36, 2, 1, 57, 59) }, + { 20, RF_TxPowerTable_HIGH_PA_ENTRY(56, 2, 1, 45, 63) }, + RF_TxPowerTable_TERMINATION_ENTRY +}; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_ieee_tx_power_table_size = + (sizeof(rf_ieee_tx_power_table) / sizeof(rf_ieee_tx_power_table[0])) - 1; + +/* + * CMD_PROP_RADIO_DIV_SETUP must be configured with default TX power value + * in the .txPower field. For High PA, this must be 0xFFFF. + */ +#define DEFAULT_TX_POWER 0xFFFF /* High PA */ /*---------------------------------------------------------------------------*/ /* Overrides for CMD_RADIO_SETUP with high PA */ -uint32_t rf_ieee_overrides_high_pa[] CC_ALIGN(4) = +uint32_t rf_ieee_overrides[] CC_ALIGN(4) = { /* override_ieee_802_15_4.xml */ MCE_RFE_OVERRIDE(1,0,0,0,1,0), /* PHY: Use MCE RAM patch, RFE ROM bank 1 */ @@ -168,6 +200,73 @@ uint32_t rf_ieee_overrides_high_pa[] CC_ALIGN(4) = (uint32_t)0xFFFFFFFF, }; /*---------------------------------------------------------------------------*/ +#else +/* + * TX Power table + * The RF_TxPowerTable_DEFAULT_PA_ENTRY macro is defined in RF.h and requires the following arguments: + * RF_TxPowerTable_DEFAULT_PA_ENTRY(bias, gain, boost coefficient) + * See the Technical Reference Manual for further details about the "txPower" Command field. + * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. + */ +RF_TxPowerTable_Entry rf_ieee_tx_power_table[] = +{ + { -21, RF_TxPowerTable_DEFAULT_PA_ENTRY( 7, 3, 0, 3) }, + { -18, RF_TxPowerTable_DEFAULT_PA_ENTRY( 9, 3, 0, 3) }, + { -15, RF_TxPowerTable_DEFAULT_PA_ENTRY( 8, 2, 0, 6) }, + { -12, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 2, 0, 8) }, + { -10, RF_TxPowerTable_DEFAULT_PA_ENTRY(12, 2, 0, 11) }, + { -9, RF_TxPowerTable_DEFAULT_PA_ENTRY(13, 2, 0, 5) }, + { -6, RF_TxPowerTable_DEFAULT_PA_ENTRY(13, 1, 0, 16) }, + { -5, RF_TxPowerTable_DEFAULT_PA_ENTRY(14, 1, 0, 17) }, + { -3, RF_TxPowerTable_DEFAULT_PA_ENTRY(17, 1, 0, 20) }, + { 0, RF_TxPowerTable_DEFAULT_PA_ENTRY(25, 1, 0, 26) }, + { 1, RF_TxPowerTable_DEFAULT_PA_ENTRY(28, 1, 0, 28) }, + { 2, RF_TxPowerTable_DEFAULT_PA_ENTRY(13, 0, 0, 34) }, + { 3, RF_TxPowerTable_DEFAULT_PA_ENTRY(17, 0, 0, 42) }, + { 4, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 0, 0, 54) }, + { 5, RF_TxPowerTable_DEFAULT_PA_ENTRY(30, 0, 0, 74) }, + RF_TxPowerTable_TERMINATION_ENTRY +}; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_ieee_tx_power_table_size = + (sizeof(rf_ieee_tx_power_table) / sizeof(rf_ieee_tx_power_table[0])) - 1; + +/* + * CMD_RADIO_SETUP must be configured with default TX power value + * in the .txPower field. + */ +#define DEFAULT_TX_POWER 0x941E /* 5 dBm */ +/*---------------------------------------------------------------------------*/ +/* Overrides for CMD_RADIO_SETUP with default PA */ +uint32_t rf_ieee_overrides[] CC_ALIGN(4) = +{ + /* override_ieee_802_15_4.xml */ + MCE_RFE_OVERRIDE(1,0,0,0,1,0), /* PHY: Use MCE RAM patch, RFE ROM bank 1 */ + (uint32_t)0x02400403, /* Synth: Use 48 MHz crystal, enable extra PLL filtering */ + (uint32_t)0x001C8473, /* Synth: Configure extra PLL filtering */ + (uint32_t)0x00088433, /* Synth: Configure synth hardware */ + (uint32_t)0x00038793, /* Synth: Set minimum RTRIM to 3 */ + HW32_ARRAY_OVERRIDE(0x4004,1), /* Synth: Configure faster calibration */ + (uint32_t)0x1C0C0618, /* Synth: Configure faster calibration */ + (uint32_t)0xC00401A1, /* Synth: Configure faster calibration */ + (uint32_t)0x00010101, /* Synth: Configure faster calibration */ + (uint32_t)0xC0040141, /* Synth: Configure faster calibration */ + (uint32_t)0x00214AD3, /* Synth: Configure faster calibration */ + (uint32_t)0x02980243, /* Synth: Decrease synth programming time-out (0x0298 RAT ticks = 166 us) */ + /* DC/DC regulator: In Tx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ + (uint32_t)0xFCFC08C3, /* In Rx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ + (uint32_t)0x000F8883, /* Rx: Set LNA bias current offset to +15 to saturate trim to max (default: 0) */ + (uint32_t)0xFFFFFFFF, +}; + +#endif /* RF_CONF_TXPOWER_HIGH_PA */ + +#endif /* defined(DEVICE_CC1352P) */ +/*---------------------------------------------------------------------------*/ /* CMD_RADIO_SETUP: Radio Setup Command for Pre-Defined Schemes */ rfc_CMD_RADIO_SETUP_t rf_cmd_ieee_radio_setup = { @@ -187,8 +286,8 @@ rfc_CMD_RADIO_SETUP_t rf_cmd_ieee_radio_setup = .config.biasMode = 0x1, .config.analogCfgMode = 0x0, .config.bNoFsPowerUp = 0x0, - .txPower = 0x941E, /* 5 dBm default */ - .pRegOverride = rf_ieee_overrides_default_pa, + .txPower = DEFAULT_TX_POWER, /* 5 dBm default */ + .pRegOverride = rf_ieee_overrides, }; /*---------------------------------------------------------------------------*/ /* CMD_FS: Frequency Synthesizer Programming Command */ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/ieee-settings.h b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/ieee-settings.h index b187c833f..db2717f21 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/ieee-settings.h +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/ieee-settings.h @@ -31,6 +31,8 @@ #ifndef IEEE_SETTINGS_H_ #define IEEE_SETTINGS_H_ /*---------------------------------------------------------------------------*/ +#include "contiki-conf.h" +/*---------------------------------------------------------------------------*/ #include #include DeviceFamily_constructPath(driverlib/rf_mailbox.h) #include DeviceFamily_constructPath(driverlib/rf_common_cmd.h) @@ -40,14 +42,11 @@ #include /*---------------------------------------------------------------------------*/ /* TI-RTOS RF Mode Object */ -extern RF_Mode rf_ieee_mode; +extern RF_Mode rf_ieee_mode; /*---------------------------------------------------------------------------*/ /* TX Power Table */ -#define RF_IEEE_TX_POWER_TABLE_DEFAULT_PA_SIZE 15 -#define RF_IEEE_TX_POWER_TABLE_HIGH_PA_SIZE 15 - -extern RF_TxPowerTable_Entry rf_ieee_tx_power_table_default_pa[RF_IEEE_TX_POWER_TABLE_DEFAULT_PA_SIZE+1]; -extern RF_TxPowerTable_Entry rf_ieee_tx_power_table_high_pa[RF_IEEE_TX_POWER_TABLE_HIGH_PA_SIZE+1]; +extern RF_TxPowerTable_Entry rf_ieee_tx_power_table[]; +extern const size_t rf_ieee_tx_power_table_size; /*---------------------------------------------------------------------------*/ /* RF Core API commands */ extern rfc_CMD_RADIO_SETUP_t rf_cmd_ieee_radio_setup; @@ -57,8 +56,7 @@ extern rfc_CMD_IEEE_RX_t rf_cmd_ieee_rx; extern rfc_CMD_IEEE_RX_ACK_t rf_cmd_ieee_rx_ack; /*---------------------------------------------------------------------------*/ /* RF Core API Overrides */ -extern uint32_t rf_ieee_overrides_default_pa[]; -extern uint32_t rf_ieee_overrides_high_pa[]; +extern uint32_t rf_ieee_overrides[]; /*---------------------------------------------------------------------------*/ #endif /* IEEE_SETTINGS_H_ */ /*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/prop-settings.c b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/prop-settings.c index ffea53182..44cd20960 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/prop-settings.c +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/prop-settings.c @@ -80,6 +80,7 @@ RF_Mode rf_prop_mode = .rfePatchFxn = &rf_patch_rfe_genfsk, }; /*---------------------------------------------------------------------------*/ +#if defined(DEVICE_CC1312R) || defined(DEVICE_CC1352R) /* * TX Power table * The RF_TxPowerTable_DEFAULT_PA_ENTRY macro is defined in RF.h and requires the following arguments: @@ -87,7 +88,191 @@ RF_Mode rf_prop_mode = * See the Technical Reference Manual for further details about the "txPower" Command field. * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. */ -RF_TxPowerTable_Entry rf_prop_tx_power_table_default_pa[RF_PROP_TX_POWER_TABLE_DEFAULT_PA_SIZE+1] = +RF_TxPowerTable_Entry rf_prop_tx_power_table[] = +{ + { -20, RF_TxPowerTable_DEFAULT_PA_ENTRY(0, 3, 0, 2) }, + { -15, RF_TxPowerTable_DEFAULT_PA_ENTRY(1, 3, 0, 2) }, + { -10, RF_TxPowerTable_DEFAULT_PA_ENTRY(2, 3, 0, 4) }, + { -5, RF_TxPowerTable_DEFAULT_PA_ENTRY(4, 3, 0, 5) }, + { 0, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 7) }, + { 1, RF_TxPowerTable_DEFAULT_PA_ENTRY(9, 3, 0, 7) }, + { 2, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 9) }, + { 3, RF_TxPowerTable_DEFAULT_PA_ENTRY(11, 3, 0, 9) }, + { 4, RF_TxPowerTable_DEFAULT_PA_ENTRY(12, 3, 0, 11) }, + { 5, RF_TxPowerTable_DEFAULT_PA_ENTRY(14, 3, 0, 12) }, + { 6, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 3, 0, 14) }, + { 7, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 2, 0, 16) }, + { 8, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 3, 0, 32) }, + { 9, RF_TxPowerTable_DEFAULT_PA_ENTRY(26, 3, 0, 28) }, + { 10, RF_TxPowerTable_DEFAULT_PA_ENTRY(33, 3, 0, 55) }, + { 11, RF_TxPowerTable_DEFAULT_PA_ENTRY(23, 2, 0, 42) }, + { 12, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 0, 0, 58) }, + /* The original PA value (12.5 dBm) have been rounded to an integer value. */ + { 13, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 0, 0, 102) }, +#if RF_CONF_TXPOWER_BOOST_MODE + /* This setting requires RF_CONF_TXPOWER_BOOST_MODE = 1. */ + { 14, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 1, 79) }, +#endif + RF_TxPowerTable_TERMINATION_ENTRY +}; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_prop_tx_power_table_size = + (sizeof(rf_prop_tx_power_table) / sizeof(rf_prop_tx_power_table[0])) - 1; + +/* + * CMD_PROP_RADIO_DIV_SETUP must be configured with default TX power value + * in the .txPower field. This depends on whether RF_CONF_TXPOWER_BOOST_MODE + * is configured or not. + */ +#if RF_CONF_TXPOWER_BOOST_MODE +#define DEFAULT_TX_POWER 0x9F3F /* 14 dBm */ +#else +#define DEFAULT_TX_POWER 0xCC14 /* 12.5 dBm (rounded up to 13 dBm) */ +#endif + +/*---------------------------------------------------------------------------*/ +/* Overrides for CMD_PROP_RADIO_DIV_SETUP */ +uint32_t rf_prop_overrides[] CC_ALIGN(4) = +{ + /* override_use_patch_prop_genfsk.xml */ + MCE_RFE_OVERRIDE(1,0,0,1,0,0), /* PHY: Use MCE RAM patch, RFE RAM patch */ + /* override_synth_prop_863_930_div5.xml */ + (uint32_t)0x02400403, /* Synth: Use 48 MHz crystal as synth clock, enable extra PLL filtering */ + (uint32_t)0x00068793, /* Synth: Set minimum RTRIM to 6 */ + (uint32_t)0x001C8473, /* Synth: Configure extra PLL filtering */ + (uint32_t)0x00088433, /* Synth: Configure extra PLL filtering */ + (uint32_t)0x000684A3, /* Synth: Set Fref to 4 MHz */ + HW32_ARRAY_OVERRIDE(0x4004,1), /* Synth: Configure faster calibration */ + (uint32_t)0x180C0618, /* Synth: Configure faster calibration */ + (uint32_t)0xC00401A1, /* Synth: Configure faster calibration */ + (uint32_t)0x00010101, /* Synth: Configure faster calibration */ + (uint32_t)0xC0040141, /* Synth: Configure faster calibration */ + (uint32_t)0x00214AD3, /* Synth: Configure faster calibration */ + /* Synth: Decrease synth programming time-out by 90 us from default */ + (uint32_t)0x02980243, /* (0x0298 RAT ticks = 166 us) */ + (uint32_t)0x0A480583, /* Synth: Set loop bandwidth after lock to 20 kHz */ + (uint32_t)0x7AB80603, /* Synth: Set loop bandwidth after lock to 20 kHz */ + (uint32_t)0x00000623, /* Synth: Set loop bandwidth after lock to 20 kHz */ + /* override_phy_tx_pa_ramp_genfsk_hpa.xml */ + ADI_HALFREG_OVERRIDE(0,16,0x8,0x8), /* Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[3]=1) */ + ADI_HALFREG_OVERRIDE(0,17,0x1,0x1), /* Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[4]=1) */ + /* override_phy_rx_frontend_genfsk.xml */ + HW_REG_OVERRIDE(0x609C,0x001A), /* Rx: Set AGC reference level to 0x1A (default: 0x2E) */ + (uint32_t)0x00018883, /* Rx: Set LNA bias current offset to adjust +1 (default: 0) */ + (uint32_t)0x000288A3, /* Rx: Set RSSI offset to adjust reported RSSI by -2 dB (default: 0) */ + /* override_phy_rx_aaf_bw_0xd.xml */ + /* Rx: Set anti-aliasing filter bandwidth to 0xD */ + ADI_HALFREG_OVERRIDE(0,61,0xF,0xD), /* (in ADI0, set IFAMPCTL3[7:4]=0xD) */ +#if RF_CONF_TXPOWER_BOOST_MODE + /* TX power override */ + /* DC/DC regulator: In Tx with 14 dBm PA setting, */ + /* use DCDCCTL5[3:0]=0xF (DITHER_EN=1 and IPEAK=7). */ + (uint32_t)0xFFFC08C3, /* In Rx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ + /* Tx: Set PA trim to max to maximize its output power */ + ADI_REG_OVERRIDE(0,12,0xF8), /* (in ADI0, set PACTL0=0xF8) */ +#else + /* TX power override */ + /* DC/DC regulator: */ + /* In Tx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ + (uint32_t)0xFCFC08C3, /* In Rx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ +#endif + (uint32_t)0xFFFFFFFF, +}; + +#endif /* defined(DEVICE_CC1312R) || defined(DEVICE_CC1352R) */ +/*---------------------------------------------------------------------------*/ +#if defined(DEVICE_CC1352P) + +#if RF_CONF_TXPOWER_HIGH_PA +/* + * TX Power table + * The RF_TxPowerTable_HIGH_PA_ENTRY macro is defined in RF.h and requires the following arguments: + * RF_TxPowerTable_HIGH_PA_ENTRY(bias, ibboost, boost, coefficient, ldoTrim) + * See the Technical Reference Manual for further details about the "txPower" Command field. + * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. + */ +RF_TxPowerTable_Entry rf_prop_tx_power_table[] = +{ + { 14, RF_TxPowerTable_HIGH_PA_ENTRY( 7, 0, 0, 23, 4) }, + { 15, RF_TxPowerTable_HIGH_PA_ENTRY(10, 0, 0, 26, 4) }, + { 16, RF_TxPowerTable_HIGH_PA_ENTRY(14, 0, 0, 33, 4) }, + { 17, RF_TxPowerTable_HIGH_PA_ENTRY(18, 0, 0, 40, 6) }, + { 18, RF_TxPowerTable_HIGH_PA_ENTRY(24, 0, 0, 51, 8) }, + { 19, RF_TxPowerTable_HIGH_PA_ENTRY(32, 0, 0, 73, 12) }, + { 20, RF_TxPowerTable_HIGH_PA_ENTRY(27, 0, 0, 85, 32) }, + RF_TxPowerTable_TERMINATION_ENTRY +}; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_prop_tx_power_table_size = + (sizeof(rf_prop_tx_power_table) / sizeof(rf_prop_tx_power_table[0])) - 1; + +/* + * CMD_PROP_RADIO_DIV_SETUP must be configured with default TX power value + * in the .txPower field. For High PA, this must be 0xFFFF. + */ +#define DEFAULT_TX_POWER 0xFFFF /* High PA */ + +/*---------------------------------------------------------------------------*/ +/* Overrides for CMD_PROP_RADIO_DIV_SETUP with high PA */ +uint32_t rf_prop_overrides[] CC_ALIGN(4) = +{ + /* override_use_patch_prop_genfsk.xml */ + MCE_RFE_OVERRIDE(1,0,0,1,0,0), /* PHY: Use MCE RAM patch, RFE RAM patch */ + /* override_synth_prop_863_930_div5.xml */ + (uint32_t)0x02400403, /* Synth: Use 48 MHz crystal as synth clock, enable extra PLL filtering */ + (uint32_t)0x00068793, /* Synth: Set minimum RTRIM to 6 */ + (uint32_t)0x001C8473, /* Synth: Configure extra PLL filtering */ + (uint32_t)0x00088433, /* Synth: Configure extra PLL filtering */ + (uint32_t)0x000684A3, /* Synth: Set Fref to 4 MHz */ + HW32_ARRAY_OVERRIDE(0x4004,1), /* Synth: Configure faster calibration */ + (uint32_t)0x180C0618, /* Synth: Configure faster calibration */ + (uint32_t)0xC00401A1, /* Synth: Configure faster calibration */ + (uint32_t)0x00010101, /* Synth: Configure faster calibration */ + (uint32_t)0xC0040141, /* Synth: Configure faster calibration */ + (uint32_t)0x00214AD3, /* Synth: Configure faster calibration */ + /* Synth: Decrease synth programming time-out by 90 us */ + (uint32_t)0x02980243, /* from default (0x0298 RAT ticks = 166 us) */ + (uint32_t)0x0A480583, /* Synth: Set loop bandwidth after lock to 20 kHz */ + (uint32_t)0x7AB80603, /* Synth: Set loop bandwidth after lock to 20 kHz */ + (uint32_t)0x00000623, /* Synth: Set loop bandwidth after lock to 20 kHz */ + /* override_phy_tx_pa_ramp_genfsk_hpa.xml */ + /* Tx: Configure PA ramping, set wait time before turning off */ + HW_REG_OVERRIDE(0x6028,0x002F), /* (0x2F ticks of 16/24 us = 31.3 us). */ + ADI_HALFREG_OVERRIDE(0,16,0x8,0x8), /* Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[3]=1) */ + ADI_HALFREG_OVERRIDE(0,17,0x1,0x1), /* Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[4]=1) */ + /* override_phy_rx_frontend_genfsk.xml */ + HW_REG_OVERRIDE(0x609C,0x001A), /* Rx: Set AGC reference level to 0x1A (default: 0x2E) */ + (uint32_t)0x00018883, /* Rx: Set LNA bias current offset to adjust +1 (default: 0) */ + (uint32_t)0x000288A3, /* Rx: Set RSSI offset to adjust reported RSSI by -2 dB (default: 0) */ + /* override_phy_rx_aaf_bw_0xd.xml */ + /* Rx: Set anti-aliasing filter bandwidth to 0xD */ + ADI_HALFREG_OVERRIDE(0,61,0xF,0xD), /* (in ADI0, set IFAMPCTL3[7:4]=0xD) */ + /* TX power override */ + /* DC/DC regulator: */ + /* In Tx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ + (uint32_t)0xFCFC08C3, /* In Rx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ + (uint32_t)0x82A86C2B, /* txHighPA=0x20AA1B */ + (uint32_t)0xFFFFFFFF, +}; + +#else +/*---------------------------------------------------------------------------*/ +/* + * TX Power table + * The RF_TxPowerTable_DEFAULT_PA_ENTRY macro is defined in RF.h and requires the following arguments: + * RF_TxPowerTable_DEFAULT_PA_ENTRY(bias, gain, boost coefficient) + * See the Technical Reference Manual for further details about the "txPower" Command field. + * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. + */ +RF_TxPowerTable_Entry rf_prop_tx_power_table[] = { { -20, RF_TxPowerTable_DEFAULT_PA_ENTRY( 0, 3, 0, 2) }, { -15, RF_TxPowerTable_DEFAULT_PA_ENTRY( 1, 3, 0, 3) }, @@ -106,33 +291,37 @@ RF_TxPowerTable_Entry rf_prop_tx_power_table_default_pa[RF_PROP_TX_POWER_TABLE_D { 10, RF_TxPowerTable_DEFAULT_PA_ENTRY(13, 1, 0, 40) }, { 11, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 0, 0, 71) }, { 12, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 0, 64) }, - /* The original PA value (13.5 dBm) have been rounded to an integer value. */ - /* This setting requires CCFG_FORCE_VDDR_HH = 1. */ +#if RF_CONF_TXPOWER_BOOST_MODE + /* + * This setting requires RF_CONF_TXPOWER_BOOST_MODE = 1. + * The original PA value (13.5 dBm) have been rounded to an integer value. + */ { 14, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 1, 0) }, +#endif RF_TxPowerTable_TERMINATION_ENTRY }; -/*---------------------------------------------------------------------------*/ + /* - * TX Power table - * The RF_TxPowerTable_HIGH_PA_ENTRY macro is defined in RF.h and requires the following arguments: - * RF_TxPowerTable_HIGH_PA_ENTRY(bias, ibboost, boost, coefficient, ldoTrim) - * See the Technical Reference Manual for further details about the "txPower" Command field. - * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. + * TX power table size, with one less entry excluding the + * termination entry. */ -RF_TxPowerTable_Entry rf_prop_tx_power_table_high_pa[RF_PROP_TX_POWER_TABLE_HIGH_PA_SIZE+1] = -{ - { 14, RF_TxPowerTable_HIGH_PA_ENTRY( 7, 0, 0, 23, 4) }, - { 15, RF_TxPowerTable_HIGH_PA_ENTRY(10, 0, 0, 26, 4) }, - { 16, RF_TxPowerTable_HIGH_PA_ENTRY(14, 0, 0, 33, 4) }, - { 17, RF_TxPowerTable_HIGH_PA_ENTRY(18, 0, 0, 40, 6) }, - { 18, RF_TxPowerTable_HIGH_PA_ENTRY(24, 0, 0, 51, 8) }, - { 19, RF_TxPowerTable_HIGH_PA_ENTRY(32, 0, 0, 73, 12) }, - { 20, RF_TxPowerTable_HIGH_PA_ENTRY(27, 0, 0, 85, 32) }, - RF_TxPowerTable_TERMINATION_ENTRY -}; +const size_t rf_prop_tx_power_table_size = + (sizeof(rf_prop_tx_power_table) / sizeof(rf_prop_tx_power_table[0])) - 1; + +/* + * CMD_PROP_RADIO_DIV_SETUP must be configured with default TX power value + * in the .txPower field. This depends on whether RF_CONF_TXPOWER_BOOST_MODE + * is configured or not. + */ +#if RF_CONF_TXPOWER_BOOST_MODE +#define DEFAULT_TX_POWER 0x013F /* 13.5 dBm (rounded up to 14 dBm) */ +#else +#define DEFAULT_TX_POWER 0x803F /* 12 dBm */ +#endif + /*---------------------------------------------------------------------------*/ /* Overrides for CMD_PROP_RADIO_DIV_SETUP with defualt PA */ -uint32_t rf_prop_overrides_default_pa[] CC_ALIGN(4) = +uint32_t rf_prop_overrides[] CC_ALIGN(4) = { /* override_use_patch_prop_genfsk.xml */ MCE_RFE_OVERRIDE(1,0,0,1,0,0), /* PHY: Use MCE RAM patch, RFE RAM patch */ @@ -165,56 +354,25 @@ uint32_t rf_prop_overrides_default_pa[] CC_ALIGN(4) = /* override_phy_rx_aaf_bw_0xd.xml */ /* Rx: Set anti-aliasing filter bandwidth to 0xD */ ADI_HALFREG_OVERRIDE(0,61,0xF,0xD), /* (in ADI0, set IFAMPCTL3[7:4]=0xD) */ +#if RF_CONF_TXPOWER_BOOST_MODE /* TX power override */ /* DC/DC regulator: In Tx with 14 dBm PA setting, */ /* use DCDCCTL5[3:0]=0xF (DITHER_EN=1 and IPEAK=7). */ (uint32_t)0xFFFC08C3, /* In Rx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ /* Tx: Set PA trim to max to maximize its output power */ ADI_REG_OVERRIDE(0,12,0xF8), /* (in ADI0, set PACTL0=0xF8) */ - (uint32_t)0xFFFFFFFF, -}; -/*---------------------------------------------------------------------------*/ -/* Overrides for CMD_PROP_RADIO_DIV_SETUP with high PA */ -uint32_t rf_prop_overrides_high_pa[] CC_ALIGN(4) = -{ - /* override_use_patch_prop_genfsk.xml */ - MCE_RFE_OVERRIDE(1,0,0,1,0,0), /* PHY: Use MCE RAM patch, RFE RAM patch */ - /* override_synth_prop_863_930_div5.xml */ - (uint32_t)0x02400403, /* Synth: Use 48 MHz crystal as synth clock, enable extra PLL filtering */ - (uint32_t)0x00068793, /* Synth: Set minimum RTRIM to 6 */ - (uint32_t)0x001C8473, /* Synth: Configure extra PLL filtering */ - (uint32_t)0x00088433, /* Synth: Configure extra PLL filtering */ - (uint32_t)0x000684A3, /* Synth: Set Fref to 4 MHz */ - HW32_ARRAY_OVERRIDE(0x4004,1), /* Synth: Configure faster calibration */ - (uint32_t)0x180C0618, /* Synth: Configure faster calibration */ - (uint32_t)0xC00401A1, /* Synth: Configure faster calibration */ - (uint32_t)0x00010101, /* Synth: Configure faster calibration */ - (uint32_t)0xC0040141, /* Synth: Configure faster calibration */ - (uint32_t)0x00214AD3, /* Synth: Configure faster calibration */ - /* Synth: Decrease synth programming time-out by 90 us from default */ - (uint32_t)0x02980243, /* (0x0298 RAT ticks = 166 us) */ - (uint32_t)0x0A480583, /* Synth: Set loop bandwidth after lock to 20 kHz */ - (uint32_t)0x7AB80603, /* Synth: Set loop bandwidth after lock to 20 kHz */ - (uint32_t)0x00000623, /* Synth: Set loop bandwidth after lock to 20 kHz */ - /* override_phy_tx_pa_ramp_genfsk_hpa.xml */ - /* Tx: Configure PA ramping, set wait time before turning off */ - HW_REG_OVERRIDE(0x6028,0x002F), /* (0x2F ticks of 16/24 us = 31.3 us). */ - ADI_HALFREG_OVERRIDE(0,16,0x8,0x8), /* Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[3]=1) */ - ADI_HALFREG_OVERRIDE(0,17,0x1,0x1), /* Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[4]=1) */ - /* override_phy_rx_frontend_genfsk.xml */ - HW_REG_OVERRIDE(0x609C,0x001A), /* Rx: Set AGC reference level to 0x1A (default: 0x2E) */ - (uint32_t)0x00018883, /* Rx: Set LNA bias current offset to adjust +1 (default: 0) */ - (uint32_t)0x000288A3, /* Rx: Set RSSI offset to adjust reported RSSI by -2 dB (default: 0) */ - /* override_phy_rx_aaf_bw_0xd.xml */ - /* Rx: Set anti-aliasing filter bandwidth to 0xD */ - ADI_HALFREG_OVERRIDE(0,61,0xF,0xD), /* (in ADI0, set IFAMPCTL3[7:4]=0xD) */ - /* TX power override */ +#else + /* TX power override */ /* DC/DC regulator: */ /* In Tx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ (uint32_t)0xFCFC08C3, /* In Rx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). */ - (uint32_t)0x82A86C2B, /* txHighPA=0x20AA1B */ +#endif (uint32_t)0xFFFFFFFF, }; + +#endif /* RF_CONF_TXPOWER_HIGH_PA */ + +#endif /* defined(DEVICE_CC1352P) */ /*---------------------------------------------------------------------------*/ /* CMD_PROP_RADIO_DIV_SETUP: Proprietary Mode Radio Setup Command for All Frequency Bands */ rfc_CMD_PROP_RADIO_DIV_SETUP_t rf_cmd_prop_radio_div_setup = @@ -244,11 +402,11 @@ rfc_CMD_PROP_RADIO_DIV_SETUP_t rf_cmd_prop_radio_div_setup = .formatConf.fecMode = 0x0, .formatConf.whitenMode = 0x7, .config.frontEndMode = 0x0, /* set by driver */ - .config.biasMode = 0x0, /* set by driver */ + .config.biasMode = 0x1, /* set by driver */ .config.analogCfgMode = 0x0, .config.bNoFsPowerUp = 0x0, - .txPower = 0x013F, /* default 13.5 dBm */ - .pRegOverride = rf_prop_overrides_default_pa, + .txPower = DEFAULT_TX_POWER, + .pRegOverride = rf_prop_overrides, .centerFreq = 0x0393, /* set by driver */ .intFreq = 0x8000, /* set by driver */ .loDivider = 0x05, /* set by driver */ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/prop-settings.h b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/prop-settings.h index b19e76a9f..9f4103530 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/prop-settings.h +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc13x2/prop-settings.h @@ -31,6 +31,8 @@ #ifndef PROP_SETTINGS_H_ #define PROP_SETTINGS_H_ /*---------------------------------------------------------------------------*/ +#include "contiki-conf.h" +/*---------------------------------------------------------------------------*/ #include #include DeviceFamily_constructPath(driverlib/rf_mailbox.h) #include DeviceFamily_constructPath(driverlib/rf_common_cmd.h) @@ -40,14 +42,11 @@ #include /*---------------------------------------------------------------------------*/ /* TI-RTOS RF Mode Object */ -extern RF_Mode rf_prop_mode; +extern RF_Mode rf_prop_mode; /*---------------------------------------------------------------------------*/ /* Tx Power Tables */ -#define RF_PROP_TX_POWER_TABLE_DEFAULT_PA_SIZE 18 -#define RF_PROP_TX_POWER_TABLE_HIGH_PA_SIZE 7 - -extern RF_TxPowerTable_Entry rf_prop_tx_power_table_default_pa[RF_PROP_TX_POWER_TABLE_DEFAULT_PA_SIZE+1]; -extern RF_TxPowerTable_Entry rf_prop_tx_power_table_high_pa[RF_PROP_TX_POWER_TABLE_HIGH_PA_SIZE+1]; +extern RF_TxPowerTable_Entry rf_prop_tx_power_table[]; +extern const size_t rf_prop_tx_power_table_size; /*---------------------------------------------------------------------------*/ /* RF Core API commands */ extern rfc_CMD_PROP_RADIO_DIV_SETUP_t rf_cmd_prop_radio_div_setup; @@ -56,8 +55,7 @@ extern rfc_CMD_PROP_TX_ADV_t rf_cmd_prop_tx_adv; extern rfc_CMD_PROP_RX_ADV_t rf_cmd_prop_rx_adv; /*---------------------------------------------------------------------------*/ /* RF Core API Overrides */ -extern uint32_t rf_prop_overrides_default_pa[]; -extern uint32_t rf_prop_overrides_high_pa[]; +extern uint32_t rf_prop_overrides[]; /*---------------------------------------------------------------------------*/ #endif /* PROP_SETTINGS_H_ */ /*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x0/ieee-settings.c b/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x0/ieee-settings.c index 96468c78b..2c87bb50e 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x0/ieee-settings.c +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x0/ieee-settings.c @@ -66,7 +66,7 @@ RF_Mode rf_ieee_mode = * See the Technical Reference Manual for further details about the "txPower" Command field. * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. */ -RF_TxPowerTable_Entry rf_ieee_tx_power_table[RF_IEEE_TX_POWER_TABLE_SIZE+1] = +RF_TxPowerTable_Entry rf_ieee_tx_power_table[] = { { -21, RF_TxPowerTable_DEFAULT_PA_ENTRY( 7, 3, 0, 6) }, { -18, RF_TxPowerTable_DEFAULT_PA_ENTRY( 9, 3, 0, 6) }, @@ -83,6 +83,19 @@ RF_TxPowerTable_Entry rf_ieee_tx_power_table[RF_IEEE_TX_POWER_TABLE_SIZE+1] = { 5, RF_TxPowerTable_DEFAULT_PA_ENTRY(48, 0, 1, 73) }, RF_TxPowerTable_TERMINATION_ENTRY }; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_ieee_tx_power_table_size = + (sizeof(rf_ieee_tx_power_table) / sizeof(rf_ieee_tx_power_table[0])) - 1; + +/* + * CMD_RADIO_SETUP must be configured with default TX power value + * in the .txPower field. + */ +#define DEFAULT_TX_POWER 0x9330 /* 5 dBm */ /*---------------------------------------------------------------------------*/ /* Overrides for CMD_RADIO_SETUP */ uint32_t rf_ieee_overrides[] CC_ALIGN(4) = @@ -130,7 +143,7 @@ rfc_CMD_RADIO_SETUP_t rf_cmd_ieee_radio_setup = .config.biasMode = 0x1, .config.analogCfgMode = 0x0, .config.bNoFsPowerUp = 0x0, - .txPower = 0x9330, /* 5 dBm default */ + .txPower = DEFAULT_TX_POWER, /* 5 dBm default */ .pRegOverride = rf_ieee_overrides, }; /*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x0/ieee-settings.h b/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x0/ieee-settings.h index 3a4a7236d..db2717f21 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x0/ieee-settings.h +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x0/ieee-settings.h @@ -31,6 +31,8 @@ #ifndef IEEE_SETTINGS_H_ #define IEEE_SETTINGS_H_ /*---------------------------------------------------------------------------*/ +#include "contiki-conf.h" +/*---------------------------------------------------------------------------*/ #include #include DeviceFamily_constructPath(driverlib/rf_mailbox.h) #include DeviceFamily_constructPath(driverlib/rf_common_cmd.h) @@ -40,12 +42,11 @@ #include /*---------------------------------------------------------------------------*/ /* TI-RTOS RF Mode Object */ -extern RF_Mode rf_ieee_mode; +extern RF_Mode rf_ieee_mode; /*---------------------------------------------------------------------------*/ /* TX Power Table */ -#define RF_IEEE_TX_POWER_TABLE_SIZE 14 - -extern RF_TxPowerTable_Entry rf_ieee_tx_power_table[RF_IEEE_TX_POWER_TABLE_SIZE+1]; +extern RF_TxPowerTable_Entry rf_ieee_tx_power_table[]; +extern const size_t rf_ieee_tx_power_table_size; /*---------------------------------------------------------------------------*/ /* RF Core API commands */ extern rfc_CMD_RADIO_SETUP_t rf_cmd_ieee_radio_setup; @@ -55,7 +56,7 @@ extern rfc_CMD_IEEE_RX_t rf_cmd_ieee_rx; extern rfc_CMD_IEEE_RX_ACK_t rf_cmd_ieee_rx_ack; /*---------------------------------------------------------------------------*/ /* RF Core API Overrides */ -extern uint32_t rf_ieee_overrides[]; +extern uint32_t rf_ieee_overrides[]; /*---------------------------------------------------------------------------*/ #endif /* IEEE_SETTINGS_H_ */ /*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x2/ieee-settings.c b/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x2/ieee-settings.c index 3f6d4f7ed..76e6fdd14 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x2/ieee-settings.c +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x2/ieee-settings.c @@ -67,7 +67,7 @@ RF_Mode rf_ieee_mode = * See the Technical Reference Manual for further details about the "txPower" Command field. * The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. */ -RF_TxPowerTable_Entry rf_ieee_tx_power_table[RF_IEEE_TX_POWER_TABLE_SIZE+1] = +RF_TxPowerTable_Entry rf_ieee_tx_power_table[] = { { -21, RF_TxPowerTable_DEFAULT_PA_ENTRY(7, 3, 0, 3) }, { -18, RF_TxPowerTable_DEFAULT_PA_ENTRY(9, 3, 0, 3) }, @@ -86,6 +86,19 @@ RF_TxPowerTable_Entry rf_ieee_tx_power_table[RF_IEEE_TX_POWER_TABLE_SIZE+1] = { 5, RF_TxPowerTable_DEFAULT_PA_ENTRY(30, 0, 0, 74) }, RF_TxPowerTable_TERMINATION_ENTRY }; + +/* + * TX power table size, with one less entry excluding the + * termination entry. + */ +const size_t rf_ieee_tx_power_table_size = + (sizeof(rf_ieee_tx_power_table) / sizeof(rf_ieee_tx_power_table[0])) - 1; + +/* + * CMD_RADIO_SETUP must be configured with default TX power value + * in the .txPower field. + */ +#define DEFAULT_TX_POWER 0x941E /* 5 dBm */ /*---------------------------------------------------------------------------*/ /* Overrides for CMD_RADIO_SETUP */ uint32_t rf_ieee_overrides[] CC_ALIGN(4) = @@ -129,7 +142,7 @@ rfc_CMD_RADIO_SETUP_t rf_cmd_ieee_radio_setup = .config.biasMode = 0x1, .config.analogCfgMode = 0x0, .config.bNoFsPowerUp = 0x0, - .txPower = 0x941E, /* 5 dBm default */ + .txPower = DEFAULT_TX_POWER, /* 5 dBm default */ .pRegOverride = rf_ieee_overrides, }; /*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x2/ieee-settings.h b/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x2/ieee-settings.h index d2f65aee5..d03b24665 100644 --- a/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x2/ieee-settings.h +++ b/arch/cpu/cc13xx-cc26xx/rf-settings/cc26x2/ieee-settings.h @@ -30,6 +30,9 @@ /*---------------------------------------------------------------------------*/ #ifndef IEEE_SETTINGS_H_ #define IEEE_SETTINGS_H_ +/*---------------------------------------------------------------------------*/ +#include "contiki-conf.h" + /*---------------------------------------------------------------------------*/ #include #include DeviceFamily_constructPath(driverlib/rf_mailbox.h) @@ -40,12 +43,11 @@ #include /*---------------------------------------------------------------------------*/ /* TI-RTOS RF Mode Object */ -extern RF_Mode rf_ieee_mode; +extern RF_Mode rf_ieee_mode; /*---------------------------------------------------------------------------*/ /* TX Power Table */ -#define RF_IEEE_TX_POWER_TABLE_SIZE 15 - -extern RF_TxPowerTable_Entry rf_ieee_tx_power_table[RF_IEEE_TX_POWER_TABLE_SIZE+1]; +extern RF_TxPowerTable_Entry rf_ieee_tx_power_table[]; +extern const size_t rf_ieee_tx_power_table_size; /*---------------------------------------------------------------------------*/ /* RF Core API commands */ extern rfc_CMD_RADIO_SETUP_t rf_cmd_ieee_radio_setup; @@ -55,7 +57,7 @@ extern rfc_CMD_IEEE_RX_t rf_cmd_ieee_rx; extern rfc_CMD_IEEE_RX_ACK_t rf_cmd_ieee_rx_ack; /*---------------------------------------------------------------------------*/ /* RF Core API Overrides */ -extern uint32_t rf_ieee_overrides[]; +extern uint32_t rf_ieee_overrides[]; /*---------------------------------------------------------------------------*/ #endif /* IEEE_SETTINGS_H_ */ /*---------------------------------------------------------------------------*/ diff --git a/arch/platform/simplelink/cc13xx-cc26xx/Makefile.cc13xx-cc26xx b/arch/platform/simplelink/cc13xx-cc26xx/Makefile.cc13xx-cc26xx index f0a866f24..b9e315e80 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/Makefile.cc13xx-cc26xx +++ b/arch/platform/simplelink/cc13xx-cc26xx/Makefile.cc13xx-cc26xx @@ -33,6 +33,7 @@ CONTIKI_TARGET_DIRS += $(addprefix $(FAMILY)/, $(TARGET_FAMILY_DIRS)) DEFINES += DeviceFamily_$(DEVICE_FAMILY) DEFINES += DEVICE_LINE_$(DEVICE_LINE) +DEFINES += DEVICE_$(DEVICE) DEFINES += $(BOARD_TYPE) DEFINES += PLATFORM_HAS_BUTTON=$(PLATFORM_HAS_BUTTON) DEFINES += SUPPORTS_PROP_MODE=$(SUPPORTS_PROP_MODE) diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1310/Makefile.cc1310 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1310/Makefile.cc1310 index 257308196..d43113151 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1310/Makefile.cc1310 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1310/Makefile.cc1310 @@ -1,9 +1,10 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x0-cc26x0 +SUBFAMILY = cc13x0-cc26x0 DEVICE_FAMILY = CC13X0 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1310 BOARD_SOURCEFILES += CC1310_LAUNCHXL.c CC1310_LAUNCHXL_fxns.c diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1312r1/Makefile.cc1312r1 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1312r1/Makefile.cc1312r1 index 7b773d7be..b88997c9a 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1312r1/Makefile.cc1312r1 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1312r1/Makefile.cc1312r1 @@ -1,15 +1,13 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x2-cc26x2 +SUBFAMILY = cc13x2-cc26x2 DEVICE_FAMILY = CC13X2 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1312R BOARD_SOURCEFILES += CC1312R1_LAUNCHXL.c CC1312R1_LAUNCHXL_fxns.c -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE=rf_prop_tx_power_table_default_pa -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE_SIZE=RF_PROP_TX_POWER_TABLE_DEFAULT_PA_SIZE - SUPPORTS_PROP_MODE = 1 SUPPORTS_IEEE_MODE = 0 SUPPORTS_BLE_BEACON = 0 diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1350-4/Makefile.cc1350-4 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1350-4/Makefile.cc1350-4 index df701aa49..8ea92347b 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1350-4/Makefile.cc1350-4 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1350-4/Makefile.cc1350-4 @@ -1,9 +1,10 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x0-cc26x0 +SUBFAMILY = cc13x0-cc26x0 DEVICE_FAMILY = CC13X0 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1350_4 BOARD_SOURCEFILES += CC1350_LAUNCHXL_433.c CC1350_LAUNCHXL_433_fxns.c diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1350/Makefile.cc1350 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1350/Makefile.cc1350 index 45c9212e1..350a5a045 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1350/Makefile.cc1350 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1350/Makefile.cc1350 @@ -1,9 +1,10 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x0-cc26x0 +SUBFAMILY = cc13x0-cc26x0 DEVICE_FAMILY = CC13X0 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1350 BOARD_SOURCEFILES += CC1350_LAUNCHXL.c CC1350_LAUNCHXL_fxns.c diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p-2/Makefile.cc1352p-2 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p-2/Makefile.cc1352p-2 index 651336ad3..2a31100d4 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p-2/Makefile.cc1352p-2 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p-2/Makefile.cc1352p-2 @@ -1,18 +1,13 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x2-cc26x2 +SUBFAMILY = cc13x2-cc26x2 DEVICE_FAMILY = CC13X2 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1352P BOARD_SOURCEFILES += CC1352P_2_LAUNCHXL.c CC1352P_2_LAUNCHXL_fxns.c -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE=rf_prop_tx_power_table_default_pa -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE_SIZE=RF_PROP_TX_POWER_TABLE_DEFAULT_PA_SIZE - -DEFINES += IEEE_MODE_CONF_TX_POWER_TABLE=rf_ieee_tx_power_table_default_pa -DEFINES += IEEE_MODE_CONF_TX_POWER_TABLE_SIZE=RF_IEEE_TX_POWER_TABLE_DEFAULT_PA_SIZE - SUPPORTS_PROP_MODE = 1 SUPPORTS_IEEE_MODE = 1 SUPPORTS_BLE_BEACON = 1 diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p-4/Makefile.cc1352p-4 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p-4/Makefile.cc1352p-4 index b03e44903..076e186b4 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p-4/Makefile.cc1352p-4 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p-4/Makefile.cc1352p-4 @@ -1,18 +1,13 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x2-cc26x2 +SUBFAMILY = cc13x2-cc26x2 DEVICE_FAMILY = CC13X2 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1352P BOARD_SOURCEFILES += CC1352P_4_LAUNCHXL.c CC1352P_4_LAUNCHXL_fxns.c -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE=rf_prop_tx_power_table_default_pa -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE_SIZE=RF_PROP_TX_POWER_TABLE_DEFAULT_PA_SIZE - -DEFINES += IEEE_MODE_CONF_TX_POWER_TABLE=rf_ieee_tx_power_table_default_pa -DEFINES += IEEE_MODE_CONF_TX_POWER_TABLE_SIZE=RF_IEEE_TX_POWER_TABLE_DEFAULT_PA_SIZE - SUPPORTS_PROP_MODE = 1 SUPPORTS_IEEE_MODE = 1 SUPPORTS_BLE_BEACON = 1 diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p1/Makefile.cc1352p1 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p1/Makefile.cc1352p1 index b628d1aae..37afeef96 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p1/Makefile.cc1352p1 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352p1/Makefile.cc1352p1 @@ -1,18 +1,13 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x2-cc26x2 +SUBFAMILY = cc13x2-cc26x2 DEVICE_FAMILY = CC13X2 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1352P BOARD_SOURCEFILES += CC1352P1_LAUNCHXL.c CC1352P1_LAUNCHXL_fxns.c -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE=rf_prop_tx_power_table_default_pa -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE_SIZE=RF_PROP_TX_POWER_TABLE_DEFAULT_PA_SIZE - -DEFINES += IEEE_MODE_CONF_TX_POWER_TABLE=rf_ieee_tx_power_table_default_pa -DEFINES += IEEE_MODE_CONF_TX_POWER_TABLE_SIZE=RF_IEEE_TX_POWER_TABLE_DEFAULT_PA_SIZE - SUPPORTS_PROP_MODE = 1 SUPPORTS_IEEE_MODE = 1 SUPPORTS_BLE_BEACON = 1 diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352r1/Makefile.cc1352r1 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352r1/Makefile.cc1352r1 index fc9b5c1c5..acc892e33 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352r1/Makefile.cc1352r1 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc1352r1/Makefile.cc1352r1 @@ -1,18 +1,13 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x2-cc26x2 +SUBFAMILY = cc13x2-cc26x2 DEVICE_FAMILY = CC13X2 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1352R BOARD_SOURCEFILES += CC1352R1_LAUNCHXL.c CC1352R1_LAUNCHXL_fxns.c -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE=rf_prop_tx_power_table_default_pa -DEFINES += PROP_MODE_CONF_TX_POWER_TABLE_SIZE=RF_PROP_TX_POWER_TABLE_DEFAULT_PA_SIZE - -DEFINES += IEEE_MODE_CONF_TX_POWER_TABLE=rf_ieee_tx_power_table_default_pa -DEFINES += IEEE_MODE_CONF_TX_POWER_TABLE_SIZE=RF_IEEE_TX_POWER_TABLE_DEFAULT_PA_SIZE - SUPPORTS_PROP_MODE = 1 SUPPORTS_IEEE_MODE = 1 SUPPORTS_BLE_BEACON = 1 diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc2650/Makefile.cc2650 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc2650/Makefile.cc2650 index 51e402012..d03a02397 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc2650/Makefile.cc2650 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc2650/Makefile.cc2650 @@ -1,9 +1,10 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x0-cc26x0 +SUBFAMILY = cc13x0-cc26x0 DEVICE_FAMILY = CC26X0 -DEVICE_LINE = CC26XX +DEVICE_LINE = CC26XX +DEVICE = CC2650 BOARD_SOURCEFILES += CC2650_LAUNCHXL.c CC2650_LAUNCHXL_fxns.c diff --git a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc26x2r1/Makefile.cc26x2r1 b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc26x2r1/Makefile.cc26x2r1 index 16891656a..803b592c0 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc26x2r1/Makefile.cc26x2r1 +++ b/arch/platform/simplelink/cc13xx-cc26xx/launchpad/cc26x2r1/Makefile.cc26x2r1 @@ -1,9 +1,10 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x2-cc26x2 +SUBFAMILY = cc13x2-cc26x2 DEVICE_FAMILY = CC26X2 -DEVICE_LINE = CC26XX +DEVICE_LINE = CC26XX +DEVICE = CC2652R BOARD_SOURCEFILES += CC26X2R1_LAUNCHXL.c CC26X2R1_LAUNCHXL_fxns.c diff --git a/arch/platform/simplelink/cc13xx-cc26xx/sensortag/cc1350/Makefile.cc1350 b/arch/platform/simplelink/cc13xx-cc26xx/sensortag/cc1350/Makefile.cc1350 index 475ada460..f9b395f95 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/sensortag/cc1350/Makefile.cc1350 +++ b/arch/platform/simplelink/cc13xx-cc26xx/sensortag/cc1350/Makefile.cc1350 @@ -1,9 +1,10 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x0-cc26x0 +SUBFAMILY = cc13x0-cc26x0 DEVICE_FAMILY = CC13X0 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1350 BOARD_SOURCEFILES += CC1350STK.c CC1350STK_fxns.c BOARD_SOURCEFILES += leds-arch.c diff --git a/arch/platform/simplelink/cc13xx-cc26xx/sensortag/cc2650/Makefile.cc2650 b/arch/platform/simplelink/cc13xx-cc26xx/sensortag/cc2650/Makefile.cc2650 index 02366870d..ccee91606 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/sensortag/cc2650/Makefile.cc2650 +++ b/arch/platform/simplelink/cc13xx-cc26xx/sensortag/cc2650/Makefile.cc2650 @@ -1,9 +1,10 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x0-cc26x0 +SUBFAMILY = cc13x0-cc26x0 DEVICE_FAMILY = CC26X0 -DEVICE_LINE = CC26XX +DEVICE_LINE = CC26XX +DEVICE = CC1350 BOARD_SOURCEFILES += CC2650STK.c CC2650STK_fxns.c BOARD_SOURCEFILES += leds-arch.c diff --git a/arch/platform/simplelink/cc13xx-cc26xx/srf06/cc13x0/Makefile.cc13x0 b/arch/platform/simplelink/cc13xx-cc26xx/srf06/cc13x0/Makefile.cc13x0 index a06b790a6..8b034de05 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/srf06/cc13x0/Makefile.cc13x0 +++ b/arch/platform/simplelink/cc13xx-cc26xx/srf06/cc13x0/Makefile.cc13x0 @@ -1,9 +1,10 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x0-cc26x0 +SUBFAMILY = cc13x0-cc26x0 DEVICE_FAMILY = CC13X0 -DEVICE_LINE = CC13XX +DEVICE_LINE = CC13XX +DEVICE = CC1350 BOARD_SOURCEFILES += CC1350DK_7XD.c CC1350DK_7XD_fxns.c diff --git a/arch/platform/simplelink/cc13xx-cc26xx/srf06/cc26x0/Makefile.cc26x0 b/arch/platform/simplelink/cc13xx-cc26xx/srf06/cc26x0/Makefile.cc26x0 index 2b8693a2a..5f554cda4 100644 --- a/arch/platform/simplelink/cc13xx-cc26xx/srf06/cc26x0/Makefile.cc26x0 +++ b/arch/platform/simplelink/cc13xx-cc26xx/srf06/cc26x0/Makefile.cc26x0 @@ -1,9 +1,10 @@ ################################################################################ # SimpleLink Device makefile -SUBFAMILY = cc13x0-cc26x0 +SUBFAMILY = cc13x0-cc26x0 DEVICE_FAMILY = CC26X0 -DEVICE_LINE = CC26XX +DEVICE_LINE = CC26XX +DEVICE = CC2650 BOARD_SOURCEFILES += CC2650DK_7ID.c CC2650DK_7ID_fxns.c