nRF5 SDK for Thread and Zigbee v4.0.0
PA/LNA module (FEM support)

The PA/LNA module is part of the nRF IEEE 802.15.4 radio driver library provided with the stack libraries in the nRF5 SDK for Thread and Zigbee. The PA/LNA module increases the range of communication by providing APIs that act as interface for several types of external front-end modules (FEMs). Inside the radio driver library, a three-pin FEM model support is included. (To use a different FEM model, for example a two-pin model, you must recompile the radio driver.)

The FEMs are controlled by the enable signals that turn on a Power Amplifier (PA) or a Low Noise Amplifier (LNA). The third signal disables the FEM during the radio inactivity, in order to save energy.

When the FEM is enabled, the radio driver toggles the three GPIO pins, based on the radio operation. The configuration structure allows to choose the pin polarity, and time differences between the pin toggle and the intended radio operation.

pa-lna-block-dia.svg
Interfacing PA/LNA with nRF52

You can use PCA10112 (nRF21540) to evaluate the Front End Module support for Thread and Zigbee examples.


Adding FEM support

To enable the FEM support in a Thread or a Zigbee application, build your application with the ENABLE_FEM compile-time option.

Note
For additional FEM configuration options for Zigbee, see Additional Zigbee functionalities.

Once the FEM support is included, you can configure it by using the parameters defined in the sdk_config.h file:

All of these pins can be reconfigured by the application after the initialization. Use the following parameters defined in the sdk_config.h file to configure the pin numbers:

The current implementation of the FEM support does not implement the SPI interface and does not change the transmission power or antenna after the initialization.

When the FEM support is enabled and configured, there are additional peripheral requirements required by the radio driver's PA/LNA module for toggling the GPIO pins. For more details, see Thread nRF52840 peripheral requirements or Zigbee nRF52840 peripheral requirements.


Additional Zigbee functionalities

For evaluation purposes, use a set of CLI commands in Zigbee CLI Reference to configure and enable the FEM support.

Additionally for Zigbee, you can provide the full FEM configuration structure by defining ZB_FEM_SETTINGS compile-time constant inside the sdk_config.h file.

Weak function for configuration
To simplify the evaluation of the FEM, the Zigbee port defines the nrf_fem_gpio_configure weak function that configures and sets the default polarity of all GPIO pins that are connected to the FEM chip. As a result, after enabling the FEM support, you can flash the Zigbee CLI Agent example onto the nRF21540 DK and start the evaluation process.
Weak function override
You can change the default polarity of the additional FEM GPIO pins by overriding the nrf_fem_gpio_configure weak function.

Documentation feedback | Developer Zone | Subscribe | Updated