Skip to content

Commit

Permalink
Improve TX power docs
Browse files Browse the repository at this point in the history
Add a separate section in the porting guide with doxygen docs and link
to NCS doc about TX power calcualtion.

Signed-off-by: Chaitanya Tata <[email protected]>
  • Loading branch information
krish2718 committed Dec 5, 2024
1 parent fdc6a74 commit c13291a
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 10 deletions.
1 change: 1 addition & 0 deletions nrf70_bm_lib/docs/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -865,6 +865,7 @@ WARN_LOGFILE =
# Note: If this tag is empty the current directory is searched.

INPUT = ../include/nrf70_bm_lib.h \
../include/nrf70_tx_pwr_ceil_dk.h \
../../../nrfxlib/nrf_wifi/fw_if/umac_if/inc \
../../../nrfxlib/nrf_wifi/fw_if/umac_if/inc/radio_test \
../../../nrfxlib/nrf_wifi/fw_if/umac_if/inc/default
Expand Down
32 changes: 32 additions & 0 deletions nrf70_bm_lib/docs/source/nrf70_bm_porting_guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,38 @@ For more information, visit the `nRF Connect SDK nrfxlib repository <https://git
The git submodule pulls in the entire repo, but only `nrf_wifi` directory is required for the BM driver.
Transmit (TX) power configuration
*********************************

The maximum transmit output power achieved on an nRF70 Series device-based product depends on the frequency band and operating channel.
This varies across different Printed Circuit Board (PCB) designs.

Multiple calibrations and checks are implemented to ensure consistent TX output power across channels and devices.
However, as the resulting TX output power depends on PCB design; Error Vector Magnitude (EVM) and spectral mask failures may occur, unless the TX output power ceilings are properly applied.
The application developer can specify the TX power ceiling at which the EVM and spectral mask compliance is met for a given PCB design.

The build-time parameters for the TX power ceilings are made available to nRF Wi-Fi driver through the respective `C` header file.
The reference header files are located in the `nrf70_bm_lib/include` directory.

The following files are used to configure the TX power ceilings for the official Nordic development and evaluation boards:

- `nrf70_tx_pwr_ceil_dk.h`: Contains the TX power configuration for the nRF7002 Development Kit (DK).

- `nrf70_tx_pwr_ceil_ek.h`: Contains the TX power configuration for the nRF7002 Evaluation Kit (EK).

For a new nRF70-based PCB design, the developer may create a new header file with the same structure as the reference files and replace the values with the appropriate values for the designed PCB.
The appropriate TX power ceiling values may be derived by running the radio test sample on the board and using a spectrum/vector signal analyzer to measure the output power, spectral mask, EVM and other parameters and then adjusting the TX power ceiling values to meet the requirements.
The values are represented in 0.25 dB increments.

For more information on TX power calculation, refer to the section `nRF70 TX power calculation <https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/drivers/wifi/nrf70_native.html#tx_power_calculation>`_.


Reference header file structure
-------------------------------

.. doxygenfile:: nrf70_tx_pwr_ceil_dk.h


nRF70 OS agnostic layers API documentation
==========================================

Expand Down
25 changes: 19 additions & 6 deletions nrf70_bm_lib/include/nrf70_tx_pwr_ceil_dk.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,37 @@

/** @file
* @brief nRF7002 DK TX power ceiling configuration.
*/

/*
*
* The configuration applies to the nRF7002 DK board targets, as well as
* to board targets for nRF7001 and nRF7000 IC variants emulated on the
* nRF7002 DK.
*/

/* The following macros are normally auto-generated from DeviceTree
*
* The following macros are normally auto-generated from DeviceTree
* when building the nRF70 driver in a Zephyr environment. They are
* copied here as standard preprocessor directives for ease of porting.
*
* The values are represented in 0.25 dB increments.The values for the
* other MCS rates are interpolated from the values for MCS0 and MCS7.
*
*
* @addtogroup nrf70_bm_txpower nRF70 Bare Metal library
*/

/** Maximum power for 2.4 GHz DSSS. */
#define MAX_PWR_2G_DSSS 0x54
/** Maximum power for 2.4 GHz MCS0. */
#define MAX_PWR_2G_MCS0 0x40
/** Maximum power for 2.4 GHz MCS7. */
#define MAX_PWR_2G_MCS7 0x40
/** Maximum power for 5 GHz low band (5150-5330 MHz) MCS0. */
#define MAX_PWR_5G_LOW_MCS0 0x24
/** Maximum power for 5 GHz low band (5150-5330 MHz) MCS7. */
#define MAX_PWR_5G_LOW_MCS7 0x24
/** Maximum power for 5 GHz mid band (5330-5670 MHz) MCS0. */
#define MAX_PWR_5G_MID_MCS0 0x2C
/** Maximum power for 5 GHz mid band (5330-5670 MHz) MCS7. */
#define MAX_PWR_5G_MID_MCS7 0x2C
/** Maximum power for 5 GHz high band (5670-5895 MHz) MCS0. */
#define MAX_PWR_5G_HIGH_MCS0 0x34
/** Maximum power for 5 GHz high band (5670-5895 MHz) MCS7. */
#define MAX_PWR_5G_HIGH_MCS7 0x34
9 changes: 5 additions & 4 deletions nrf70_bm_lib/include/nrf70_tx_pwr_ceil_ek.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,16 @@
* @brief nRF7002 EK TX power ceiling configuration.
*/

/*
/**
* The configuration applies to the nRF7002 EK shield targets, as well as
* to shield targets for nRF7001 and nRF7000 IC variants emulated on the
* nRF7002 EK.
*/

/* The following macros are normally auto-generated from DeviceTree
*
* The following macros are normally auto-generated from DeviceTree
* when building the nRF70 driver in a Zephyr environment. They are
* copied here as standard preprocessor directives for ease of porting.
*
* The values are represented in 0.25 dB increments.
*/
#define MAX_PWR_2G_DSSS 0x54
#define MAX_PWR_2G_MCS0 0x40
Expand Down

0 comments on commit c13291a

Please sign in to comment.