Bluetooth LE Auto PA mode#

Introduction#

The EFR32 families of chips each come equipped with two or 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)

  • 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)

Each PA maps to different TX output power curves. While using high-power or medium-power PA, TX power under 0 dBm may get a very inaccuracy output. While using low-power PA, TX power cannot set above 0 dBm. In most use cases, the antenna matching network works well in one range only (either above 0 dBm or below 0 dBm), and hence this is not a big problem. In some use cases, however, high accuracy output is needed both above and below 0 dBm. In this case, an automatic switching between the PAs is needed. This article discusses how to achieve this.

Enabling Auto PA Mode#

By default, the used PA can be configured under the configuration of RAIL Utility, PA software components, as shown here:

PA mode configurationPA mode configuration

However, this lets you select a fixed PA only, and does not enable auto PA mode. Currently, auto PA mode can be enabled in source code by directly editing the config\sl_bluetooth_config.h in your project. Find the following configuration and change the .pa.pa_mode to SL_BT_BLUETOOTH_PA_AUTOMODE:

#define SL_BT_CONFIG_DEFAULT