|
| 1 | +.. _ug_radio_fem_nrf2220ek: |
| 2 | + |
| 3 | +Developing with the nRF2220 EK |
| 4 | +############################## |
| 5 | + |
| 6 | +.. contents:: |
| 7 | + :local: |
| 8 | + :depth: 2 |
| 9 | + |
| 10 | +The nRF2220 :term:`Evaluation Kit (EK)` is an RF :term:`Front-End Module (FEM)` for Bluetooth® Low Energy, Bluetooth Mesh, 2.4 GHz proprietary, Thread, and Zigbee range extension. |
| 11 | +When combined with an nRF52, nRF53 or nRF54L Series SoC, the nRF2220 RF FEM's output power is up to +14 dBm with ability to transmit with lower output powers through built-in bypass circuit. |
| 12 | + |
| 13 | +.. _ug_radio_fem_nrf2220ek_dk_preparation: |
| 14 | + |
| 15 | +Preparation of a development kit to work with the nRF2220EK |
| 16 | +*********************************************************** |
| 17 | + |
| 18 | +On Arduino-compatible development kits like the :ref:`nrf52840dk_nrf52840` or :ref:`nrf5340dk_nrf5340`, plug the *Nordic Interposer Board A* (PCA64172) into the development kit. |
| 19 | +Plug nRF2220 EK board into ``SLOT 2`` of the *Nordic Interposer Board A*. |
| 20 | + |
| 21 | +On the :ref:`nrf54l15dk_nrf54l15` development kit, plug the nRF2220 EK board into the ``PORT P0`` expansion slot. |
| 22 | + |
| 23 | +.. warning:: |
| 24 | + |
| 25 | + On the :ref:`nrf54l15dk_nrf54l15` development kit pins **P0.00** ... **P0.03** of the nRF54L15 SoC are connected to the debugger chip and by default connect ``UART0`` of the debugger chip to the nRF54L15 SoC. |
| 26 | + The UART0 function (VCOM0) of the debugger chip must be disabled to allow the pins to be used as FEM control signals and FEM I2C interface. |
| 27 | + The `Board Configurator app`_ , which is part of the `nRF Connect for Desktop`_ can be used for this purpose. |
| 28 | + The pin **P0.04** of the nRF54L15 SoC is connected also to **Button 3** of the development kit. |
| 29 | + Do not press this button while the firmware containing the code supporting the nRF2220 EK shield is running. |
| 30 | + |
| 31 | +.. _ug_radio_fem_nrf2220ek_programming: |
| 32 | + |
| 33 | +Building and programming with nRF2220 EK |
| 34 | +**************************************** |
| 35 | + |
| 36 | +To build for the nRF2220 EK, build for the compatible :ref:`nRF52, nRF53 or nRF54L board target <app_boards_names>` with the CMake ``SHIELD`` option set to ``nrf2220ek``. |
| 37 | +See :ref:`cmake_options` for instructions on how to provide CMake options. |
| 38 | + |
| 39 | +For example, if you build for nRF52840 DK on the command line, you can use the following command: |
| 40 | + |
| 41 | +.. code-block:: console |
| 42 | +
|
| 43 | + west build -b nrf52840dk/nrf52840 -- -DSHIELD=nrf2220ek |
| 44 | +
|
| 45 | +If you use the |nRFVSC|, specify ``-DSHIELD=nrf2220ek`` in the *Extra Cmake arguments* field when `setting up a build configuration <How to work with build configurations_>`_. |
| 46 | + |
| 47 | +Alternatively, add the shield in the project's :file:`CMakeLists.txt` file: |
| 48 | + |
| 49 | +.. code-block:: none |
| 50 | +
|
| 51 | + set(SHIELD nrf2220ek) |
| 52 | +
|
| 53 | +Building for a multicore board |
| 54 | +============================== |
| 55 | + |
| 56 | +When building for a board with an additional network core, like the nRF5340, add the ``-DSHIELD`` parameter to the command line: |
| 57 | + |
| 58 | +.. code-block:: console |
| 59 | +
|
| 60 | + west build -b nrf5340dk/nrf5340/cpuapp -- -DSHIELD=nrf2220ek |
| 61 | +
|
| 62 | +In this case, the sysbuild will pass the ``SHIELD=nrf2220ek`` variable to all images that are built by the command. |
| 63 | +The build system will pick automatically appropriate overlay and configuration files for images for each core. |
| 64 | +The files are different for each of the cores. |
| 65 | +For the application core, the overlay containing forwarding the FEM pins to the network core will be used. |
| 66 | +For the network core, the overlay enabling nRF2220 FEM on the network core will be used. |
| 67 | +In case the application contains additional images for which the ``SHIELD`` variable should not be passed, you must pass manually the ``SHIELD`` variable to each relevant image build separately. |
| 68 | + |
| 69 | +.. code-block:: console |
| 70 | +
|
| 71 | + west build -b nrf5340dk/nrf5340/cpuapp -- -D<app_name_image>_SHIELD=nrf2220ek -Dipc_radio_SHIELD=nrf2220ek |
| 72 | +
|
| 73 | +In this case the ``SHIELD=nrf2220ek`` will be passed to the build of the *app_image_name* image for the application core. |
| 74 | +The build system will pick automatically an overlay file containing forwarding the FEM pins to the network core. |
| 75 | +The ``SHIELD=nrf2220ek`` variable will be passed to the build of the ``ipc_radio`` image for the network core. |
| 76 | +The build system will pick automatically an overlay file enabling nRF2220 FEM on the network core. |
| 77 | + |
| 78 | +In this command, the ``ipc_radio`` image is used as default and builds the network core image with support for the combination of 802.15.4 and Bluetooth. |
| 79 | +The ``ipc_radio`` has been used since the build system migration to sysbuild. |
| 80 | +See :ref:`Migrating to sysbuild <child_parent_to_sysbuild_migration>` page. |
| 81 | +Setting the correct sysbuild option enables support for 802.15.4 and Bluetooth :ref:`ipc_radio`. |
| 82 | + |
| 83 | +``ipc_radio`` represents all applications with support for the combination of both 802.15.4 and Bluetooth. |
| 84 | +You can configure your application using the following sysbuild configurations: |
| 85 | + |
| 86 | +* ``SB_CONFIG_NETCORE_IPC_RADIO=y`` for applications having support for 802.15.4, but not for Bluetooth. |
| 87 | +* ``SB_CONFIG_NETCORE_IPC_RADIO_BT_HCI_IPC=y`` for application having support for Bluetooth, but not for 802.15.4. |
| 88 | +* ``SB_CONFIG_NETCORE_IPC_RADIO=y`` and ``SB_CONFIG_NETCORE_IPC_RADIO_BT_HCI_IPC=y`` for multiprotocol applications having support for both 802.15.4 and Bluetooth. |
| 89 | + |
| 90 | + |
| 91 | +.. note:: |
| 92 | + On nRF53 devices, ``TWIM0`` and ``UARTE0`` are mutually exclusive AHB bus masters on the network core as described in the `Product Specification <nRF5340 Product Specification_>`_, Section 6.4.3.1, Table 22. |
| 93 | + As a result, they cannot be used simultaneously. |
| 94 | + For the I2C part of the nRF2220 interface to be functional, you must disable the ``UARTE0`` node in the network core's devicetree file. |
| 95 | + |
| 96 | + .. code-block:: devicetree |
| 97 | +
|
| 98 | + &uart0 { |
| 99 | + status = "disabled"; |
| 100 | + }; |
0 commit comments