Overview: EFR32 Power Amplifiers and RAIL#

The EFR32 families of chips each come equipped with three Power Amplifiers (PAs):

  • EFR32xG1x

    • A high-power * 2.4 GHz PA (for power 20 dBm and lower)**

    • A low-power 2.4 GHz PA (for power 0 dBm and lower)

    • A Sub-GHz PA**

  • EFR32xG21

    • A high-power 2.4 GHz PA (for power 20 dBm and lower)**

    • A medium-power 2.4 GHz PA (for power 10 dBm and lower)

    • A low-power 2.4 GHz PA (for power 0 dBm and lower)

  • EFR32xG22

    • A high-power 2.4 GHz PA (for power 6 dBm and lower)**

    • A low-power 2.4 GHz PA (for power 0 dBm and lower)

  • EFR32xG23x02x

    • A high-power Sub-GHz PA (for power 20 dBm and lower)**

  • EFR32xG23x01x

    • A high-power Sub-GHz PA (for power 14 dBm and lower)**

  • EFR32xG24x02x

    • A high-power 2.4 GHz PA (for power 20 dBm and lower)**

  • EFR32xG24x01x

    • A high-power 2.4 GHz PA (for power 10 dBm and lower)**

    • A low-power 2.4 GHz PA (for power 0 dBm and lower)

  • EFR32xG25

    • A single PA for OFDM operation

    • A single PA for SUBGIG (FSK) operation

  • EFR32xG26x02x

    • A high-power 2.4 GHz PA (for power 20 dBm and lower)**

  • EFR32xG26x01x

    • A high-power 2.4 GHz PA (for power 10 dBm and lower)**

    • A low-power 2.4 GHz PA (for power 0 dBm and lower)

  • EFR32xG27x02x

    • A high-power 2.4 GHz PA (for power 4 dBm and lower)**

    • A low-power 2.4 GHz PA (for power 0 dBm and lower)

  • EFR32xG27x01x

    • A high-power 2.4 GHz PA (for power 6/8 dBm and lower)**

    • A low-power 2.4 GHz PA (for power 0 dBm and lower)

  • EFR32xG28x02x

    • A high-power 2.4 GHz PA (for power 20 dBm and lower)**

    • A high-power Sub-GHz PA (for power 20 dBm and lower)**

  • EFR32xG28x01x

    • A high-power 2.4 GHz PA (for power 14 dBm and lower)**

    • A high-power Sub-GHz PA (for power 14 dBm and lower)**

Each of these PAs has a unique number of discrete "power levels", which are simply abstractions of the different register settings that control the active PA. For each PA, the following power levels are available:

  • EFR32xG1x

    • High-power 2.4 GHz: 0-252**

    • Low-power 2.4 GHz: 1-7

    • Sub-GHz: 0-248

  • EFR32xG21

    • High-power 2.4 GHz: 1-180**

    • Medium-power 2.4 GHz: 1-90

    • Low-power 2.4 GHz: 1-64

  • EFR32xG22

    • High-power 2.4 GHz: 0-127**

    • Low-power 2.4 GHz: 0-15

  • EFR32xG23x02x

    • High-power Sub-GHz: 0-240**

  • EFR32xG23x01x

    • High-power Sub-GHz: 0-240**

  • EFR32xG24x02x

    • High-power 2.4 GHz: 0-180**

  • EFR32xG24x01x

    • High-power 2.4 GHz: 0-90**

    • Low-power 2.4 GHz: 0-15

  • EFR32xG25

    • "power levels" not supported on dBm-to-powerSetting Pas (see 2.3 dBm-to-powerSetting Mode)

  • EFR32xG26x02x

    • High-power 2.4 GHz: 0-180**

  • EFR32xG26x01x

    • High-power 2.4 GHz: 0-90**

    • Low-power 2.4 GHz: 0-15

  • EFR32xG27x02x

    • High-power 2.4 GHz: 0-127**

    • Low-power 2.4 GHz: 0-15

  • EFR32xG27x01x

    • High-power 2.4 GHz: 0-127**

    • Low-power 2.4 GHz: 0-15

  • EFR32xG28x02x

    • High-power 2.4 GHz: 0-240**

    • High-power Sub-GHz: 0-240**

  • EFR32xG28x01x

    • High-power 2.4 GHz: 0-240**

    • High-power Sub-GHz: 0-240**

*Note that the use of 'high', 'medium', and 'low' in the names of these PAs refers to power consumption, not power output. It is possible, for instance, to configure the high-power PA to transmit at a lower dBm output than the low-power PA.

**Maximum power/use of these PAs may be restricted by your specific OPN. Please see the data sheet for more details regarding your particular part.

Although the number of power levels vary across PAs, for a given PA a higher power level generally indicates a higher dBm output power. It is important to realize, however, that a PA power level does not always correspond to the same dBm output power across boards and applications.

The power level of the active PA is controlled by the RAIL_GetTxPower and RAIL_SetTxPower APIs. RAIL_GetTxPowerDbm and RAIL_SetTxPowerDbm also allow users to interface with dBm output power values, but they are merely utility functions that combine calls to RAIL_ConvertRawToDbm, RAIL_ConvertDbmToRaw, RAIL_SetTxPower, and RAIL_GetTxPower. They add no new functionality or features on their own. See the RAIL documentation that comes with the Simplicity Studio SDK for more details.

Although these PA power levels add another layer of complexity to PA control, they give the user much more control to account for parasitics and impedance mismatch between the PA and a custom board. In RAIL 1.x, customers were only able to interface with PA output power in dBm and provide a linear offset, which was often not sufficiently robust to account for the complex PCB-to-PA interaction. Now, RAIL allows users to assign an exact dBm power to each of the PA power levels for their custom boards through the functions RAIL_ConvertDbmToRaw and RAIL_ConvertRawToDbm. Note that these functions convert between raw power levels and deci-dBm, or dBm * 10, to allow for higher precision dBm values. Though Silicon Labs provides a default implementation for these functions to do the conversion, the user can also override these functions with other algorithms, ranging from a highly precise but space-intensive lookup table for all possible PA-power level combinations, to less robust solutions such as a lookup table containing only a few power levels that correspond to the dBm output power levels of interest (see Alternative Methods to Convert between Power Levels and dBm Output Power for more information on creating custom conversion functions).

In the default conversion function implementation, Silicon Labs uses an 8-segment, piecewise linear curve fit of the mapping between PA power levels and dBm output powers to convert between these quantities. On EFR32xG1x chips, there is one curve for the high- power 2.4GHz PA, and another for the sub-GHz PA. On EFR32xG21 and EFR32xG23 chips, there is one curve for each PA. On EFR32xG22 and EFR32xG24 chips, there is one curve for the high power 2.4GHz PA. For these PAs, this method provides a good balance between accuracy across power levels, computational speed, and code size. The conversion for low-power 2.4GHz on EFR32xG1x, EFR32xG22, and EFR32xG24, which have fewer than 20 possible values, is handled with a simple lookup table. The majority of this application note focuses on how to generate the curve data (slopes and y-intercepts) for a custom application, similar to the default values currently found in pa_curves_efr32xg1x.h and pa_curves_efr32xg2x.h in RAIL 2.8 and earlier versions and in sl_rail_util_pa_curves.h in RAIL 2.9 and later versions. In other words, it assumes that the existing methodologies found in RAIL_ConvertDbmToRaw and RAIL_ConvertRawToDbm are appropriate for your application and will not be over- written, but that the parameters for these functions need to be adjusted for the custom board.

This application note is not intended for use with Silicon Labs’ pre-certified Wireless SiP and PCB modules. The power amplifiers on these parts have been calibrated specifically to adhere to certain regulations. Trying to alter these calibrations in software will cause the RAIL library to assert and lock the chip, preventing further use until Silicon Labs’ default libraries are restored.

In the following procedures, use the railtest and pa_customer_curve_fits.py script from RAIL 2.5 or higher in Proprietary Flex SDK version 2.4.0 or higher, even if you are developing in an earlier Proprietary Flex SDK 2.x version. There were improvements to the app and script that will subtly improve results. If you have already generated the CSV files from the procedure in Piecewise Linear Curve Fits, you can simply re-run the newer pa_customer_curve_fits.py on the existing CSVs. There is no need to re-generate the CSVs by running the sweep again.