PA power conversion functions provided to the customer as source for highest level of customization.

This file contains the curves and logic that convert PA power levels to dBm powers.

License#

Copyright 2020 Silicon Laboratories Inc. www.silabs.com

SPDX-License-Identifier: Zlib

The licensor of this software is Silicon Laboratories Inc.

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

  3. This notice may not be removed or altered from any source distribution.

Variables#

The curves to be used when battery voltage powers transmission.

The curves to be used when the DC-DC converter powers transmission.

Functions#

RAIL_InitTxPowerCurves(const RAIL_TxPowerCurvesConfig_t *config)

Initialize Transmit power curves.

RAIL_InitTxPowerCurvesAlt(const RAIL_TxPowerCurvesConfigAlt_t *config)

Initialize TxPower curves.

RAIL_GetTxPowerCurve(RAIL_TxPowerMode_t mode)

Gets the curve that should be used for conversion functions based on the current PA configuration.

RAIL_GetTxPowerCurveLimits(RAIL_Handle_t railHandle, RAIL_TxPowerMode_t mode, RAIL_TxPower_t *maxpower, RAIL_TxPower_t *increment)

Gets the maximum power in deci-dBm that should be used for calculating the segments and to find right curve segment to convert Dbm to raw power level for a specific PA.

void

Initialize PA TX Curves.

Get a pointer to the TX Power Config 2.4 GHz structure.

Get a pointer to the TX Power Config Sub-GHz structure.

Get a pointer to the TX Power Config OFDM structure.

void
sl_rail_util_pa_on_channel_config_change(RAIL_Handle_t rail_handle, const RAIL_ChannelConfigEntry_t *entry)

Provide a channel config change callback capable of configuring the PA correctly.

Variable Documentation#

RAIL_TxPowerCurvesVbat#

const RAIL_TxPowerCurvesConfigAlt_t RAIL_TxPowerCurvesVbat

The curves to be used when battery voltage powers transmission.


Definition at line 83 of file plugin/pa-conversions/pa_conversions_efr32.h

RAIL_TxPowerCurvesDcdc#

const RAIL_TxPowerCurvesConfigAlt_t RAIL_TxPowerCurvesDcdc

The curves to be used when the DC-DC converter powers transmission.


Definition at line 86 of file plugin/pa-conversions/pa_conversions_efr32.h

Function Documentation#

RAIL_InitTxPowerCurves#

RAIL_Status_t RAIL_InitTxPowerCurves (const RAIL_TxPowerCurvesConfig_t * config)

Initialize Transmit power curves.

Parameters
[in]config

A pointer to the custom TX power curves.

Returns

  • Status code indicating success of the function call.

Deprecatedfunction is no longer supported. Must use RAIL_InitTxPowerCurvesAlt() instead.


Definition at line 97 of file plugin/pa-conversions/pa_conversions_efr32.h

RAIL_InitTxPowerCurvesAlt#

RAIL_Status_t RAIL_InitTxPowerCurvesAlt (const RAIL_TxPowerCurvesConfigAlt_t * config)

Initialize TxPower curves.

Parameters
[in]config

A pointer to the custom TX power curves to use.

Returns

  • Status code indicating success of the function call.


Definition at line 105 of file plugin/pa-conversions/pa_conversions_efr32.h

RAIL_GetTxPowerCurve#

RAIL_TxPowerCurves_t const * RAIL_GetTxPowerCurve (RAIL_TxPowerMode_t mode)

Gets the curve that should be used for conversion functions based on the current PA configuration.

Parameters
[in]mode

PA mode whose curves are needed.

Returns

Note

  • : If the mode is not supported by the the chip, then NULL will be returned.


Definition at line 117 of file plugin/pa-conversions/pa_conversions_efr32.h

RAIL_GetTxPowerCurveLimits#

RAIL_Status_t RAIL_GetTxPowerCurveLimits (RAIL_Handle_t railHandle, RAIL_TxPowerMode_t mode, RAIL_TxPower_t * maxpower, RAIL_TxPower_t * increment)

Gets the maximum power in deci-dBm that should be used for calculating the segments and to find right curve segment to convert Dbm to raw power level for a specific PA.

Parameters
[in]railHandle

A RAIL instance handle.

[in]mode

PA mode whose curves are needed.

[out]maxpower

A non-NULL pointer to memory allocated to hold the max power in deci-dBm used in calculation of curve segments.

[out]increment

A non-NULL pointer to memory allocated to hold the increment in deci-dBm used in calculation of curve segments.

Returns

  • Status code indicating success of the function call.

For the PAs with RAIL_PaConversionAlgorithm_tRAIL_PA_ALGORITHM_PIECEWISE_LINEAR, if the curves are generated with maxPower and increment other than RAIL_TX_POWER_CURVE_DEFAULT_MAX and RAIL_TX_POWER_CURVE_DEFAULT_INCREMENT respectively, then the first RAIL_TxPowerCurveSegment_t has its maxPowerLevel equal to RAIL_TX_POWER_LEVEL_INVALID and its slope and intercept stores the maxPower and increment in deci-dBm respectively.


Definition at line 140 of file plugin/pa-conversions/pa_conversions_efr32.h

sl_rail_util_pa_init#

void sl_rail_util_pa_init (void )

Initialize PA TX Curves.

Parameters
N/A

Definition at line 148 of file plugin/pa-conversions/pa_conversions_efr32.h

sl_rail_util_pa_get_tx_power_config_2p4ghz#

RAIL_TxPowerConfig_t * sl_rail_util_pa_get_tx_power_config_2p4ghz (void )

Get a pointer to the TX Power Config 2.4 GHz structure.

Parameters
N/A

Returns

  • A pointer to the TX Power Config stucture.


Definition at line 155 of file plugin/pa-conversions/pa_conversions_efr32.h

sl_rail_util_pa_get_tx_power_config_subghz#

RAIL_TxPowerConfig_t * sl_rail_util_pa_get_tx_power_config_subghz (void )

Get a pointer to the TX Power Config Sub-GHz structure.

Parameters
N/A

Returns

  • A pointer to the TX Power Config stucture.


Definition at line 162 of file plugin/pa-conversions/pa_conversions_efr32.h

sl_rail_util_pa_get_tx_power_config_ofdm#

RAIL_TxPowerConfig_t * sl_rail_util_pa_get_tx_power_config_ofdm (void )

Get a pointer to the TX Power Config OFDM structure.

Parameters
N/A

Returns

  • A pointer to the TX Power Config stucture.


Definition at line 169 of file plugin/pa-conversions/pa_conversions_efr32.h

sl_rail_util_pa_on_channel_config_change#

void sl_rail_util_pa_on_channel_config_change (RAIL_Handle_t rail_handle, const RAIL_ChannelConfigEntry_t * entry)

Provide a channel config change callback capable of configuring the PA correctly.

Parameters
[in]rail_handle

The RAIL handle being passed into this callback.

[in]entry

A pointer to the channel config entry being switched to by hardware.


Definition at line 179 of file plugin/pa-conversions/pa_conversions_efr32.h