boards: shields: Add nRF70 series EKs (Evaluation kits)
These shields in the Arduino form factor can be mounted on supported boards and can provide Wi-Fi6 capability. Base shield is nRF7002, with variants as nRF7001 (2.4GHz only) and nRF7000 (dual band scan only). Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
This commit is contained in:
parent
638ce2fbfd
commit
051c63f6a9
14 changed files with 291 additions and 0 deletions
11
boards/shields/nrf7002ek/Kconfig.shield
Normal file
11
boards/shields/nrf7002ek/Kconfig.shield
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config SHIELD_NRF7002EK
|
||||
def_bool $(shields_list_contains,nrf7002ek)
|
||||
|
||||
config SHIELD_NRF7002EK_NRF7001
|
||||
def_bool $(shields_list_contains,nrf7002ek_nrf7001)
|
||||
|
||||
config SHIELD_NRF7002EK_NRF7000
|
||||
def_bool $(shields_list_contains,nrf7002ek_nrf7000)
|
|
@ -0,0 +1,15 @@
|
|||
/* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/* This node by default forwards the UART1 pins to CPUNET, but as UART1 uses
|
||||
* same pins as bucken and iovdd-ctrl, we need these pins to be controlled by
|
||||
* the CPUAPP. Since a child node of gpio_fwd cannot be disabled, hence
|
||||
* the entire node is disabled. If the application needs to forward other pins
|
||||
* to the CPUNET, it should create a separate instance of nrf-gpio-forwarder
|
||||
* and use it instead.
|
||||
*/
|
||||
&gpio_fwd {
|
||||
status = "disabled";
|
||||
};
|
|
@ -0,0 +1,6 @@
|
|||
/* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <nrf9151dk_leds_on_io_expander.dtsi>
|
|
@ -0,0 +1,6 @@
|
|||
/* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <nrf9151dk_leds_on_io_expander.dtsi>
|
40
boards/shields/nrf7002ek/boards/nrf9160dk_nrf9160_ns.overlay
Normal file
40
boards/shields/nrf7002ek/boards/nrf9160dk_nrf9160_ns.overlay
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/* Disabled because of conflicts on P0.00 and P0.01 - Arduino pins D0 and D1
|
||||
* (iovdd-ctrl-gpios and bucken-gpios in nrf7002ek, respectively).
|
||||
*/
|
||||
&uart1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* Typically we use GPIO extender to resolve these conflicts but the
|
||||
* GPIO pin used by extender itself conflicts with Wi-Fi (0.6), so,
|
||||
* disable LEDs and Button0/1.
|
||||
*/
|
||||
&led0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&led1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&led2 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&led3 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&button0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&button1 {
|
||||
status = "disabled";
|
||||
};
|
|
@ -0,0 +1,6 @@
|
|||
/* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <nrf9161dk_leds_on_io_expander.dtsi>
|
|
@ -0,0 +1,6 @@
|
|||
/* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <nrf9161dk_leds_on_io_expander.dtsi>
|
74
boards/shields/nrf7002ek/doc/index.rst
Normal file
74
boards/shields/nrf7002ek/doc/index.rst
Normal file
|
@ -0,0 +1,74 @@
|
|||
.. _nrf7002ek:
|
||||
|
||||
nRF7002 EK
|
||||
##########
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The nRF7002 EK is a versatile evaluation kit in the form of an Arduino shield that can be used in
|
||||
Nordic and non-Nordic host boards.
|
||||
|
||||
The nRF7002 EK unlocks low-power Wi-Fi 6 capabilities for your host device. It support dual-band Wi-Fi
|
||||
2.4GHz and 5GHz, and is based on the nRF7002 SoC.
|
||||
Seamlessly connect to Wi-Fi networks and leverage Wi-Fi-based locationing, enabling advanced
|
||||
features such as SSID sniffing of local Wi-Fi hubs
|
||||
|
||||
.. figure:: nrf7002ek.png
|
||||
:alt: nRF7002 EK
|
||||
:align: center
|
||||
|
||||
nRF7002 EK
|
||||
|
||||
Requirements
|
||||
************
|
||||
|
||||
The nRF7002 EK board is designed to fit straight into an Arduino connector and uses SPI as the
|
||||
communication interface. Any host board that supports the Arduino connector can be used with
|
||||
the nRF7002 EK.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
the nRF70 driver requires firmware binary blobs for Wi-Fi operation. Run the command
|
||||
below to retrieve those files.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
west update
|
||||
west blobs fetch hal_nordic
|
||||
|
||||
Usage
|
||||
*****
|
||||
|
||||
The shield can be used in any application by setting ``--shield nrf7002ek`` when invoking ``west build``.
|
||||
|
||||
SR Co-existence
|
||||
###############
|
||||
|
||||
The nRF7002 EK supports SR co-existence provided the host board supports it. The SR co-existence
|
||||
pins are connected to the host board's GPIO pins.
|
||||
|
||||
Two Kconfig options are available to enable SR co-existence:
|
||||
|
||||
- :kconfig:option:`CONFIG_NRF70_SR_COEX`: Enables SR co-existence.
|
||||
- :kconfig:option:`CONFIG_NRF70_SR_COEX_RF_SWITCH`: Control SR side RF switch.
|
||||
|
||||
Shield Variants
|
||||
###############
|
||||
|
||||
The nRF7002 EK is available in three variants:
|
||||
|
||||
- ``nrf7002ek``: The default variant.
|
||||
- ``nrf7002ek_nrf7001``: Variant for the nRF7001 SoC or nRF7002 SoC emulating nRF7001
|
||||
that supports only 2.4GHz Wi-Fi.
|
||||
- ``nrf7002ek_nrf7000``: Variant for the nRF7000 SoC or nRF7002 SoC emulating nRF7000
|
||||
that supports only 2.4GHz Wi-Fi.
|
||||
|
||||
|
||||
References
|
||||
**********
|
||||
|
||||
- `nRF7002 EK product page <https://www.nordicsemi.com/Products/Development-hardware/nRF7002-EK>`_
|
||||
- `nRF7002 product specification <https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf70%2Fstruct%2Fnrf7002.html&cp=3_0>`_
|
||||
- `nRF7002 EK Co-existence <https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf7002%2Fchapters%2Ffunctional%2Fdoc%2Fcoexistence.html&cp=3_0_0_7>`_
|
BIN
boards/shields/nrf7002ek/doc/nrf7002ek.png
Normal file
BIN
boards/shields/nrf7002ek/doc/nrf7002ek.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
27
boards/shields/nrf7002ek/nrf7002ek.overlay
Normal file
27
boards/shields/nrf7002ek/nrf7002ek.overlay
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#include <freq.h>
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,wifi = &wlan0;
|
||||
};
|
||||
};
|
||||
|
||||
&arduino_spi {
|
||||
status = "okay";
|
||||
|
||||
nrf70: nrf7002-spi@0 {
|
||||
compatible = "nordic,nrf7002-spi";
|
||||
status = "okay";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <DT_FREQ_M(8)>;
|
||||
|
||||
/* Include common nRF70 overlays */
|
||||
#include "nrf7002ek_common.dtsi"
|
||||
#include "nrf7002ek_common_5g.dtsi"
|
||||
};
|
||||
};
|
35
boards/shields/nrf7002ek/nrf7002ek_common.dtsi
Normal file
35
boards/shields/nrf7002ek/nrf7002ek_common.dtsi
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/* Common assignments for any nRF70 shield */
|
||||
|
||||
/* D0 */
|
||||
iovdd-ctrl-gpios = <&arduino_header 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
|
||||
/* D1 */
|
||||
bucken-gpios = <&arduino_header 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
|
||||
/* D7 */
|
||||
host-irq-gpios = <&arduino_header 13 GPIO_ACTIVE_HIGH>;
|
||||
/* Short-range (SR) co-existence */
|
||||
/* D2 */
|
||||
status0-gpios = <&arduino_header 8 GPIO_ACTIVE_HIGH>;
|
||||
/* D3 */
|
||||
req-gpios = <&arduino_header 9 GPIO_ACTIVE_HIGH>;
|
||||
/* D4 */
|
||||
grant-gpios = <&arduino_header 10 (GPIO_PULL_DOWN | GPIO_ACTIVE_LOW)>;
|
||||
/* D6 */
|
||||
swctrl1-gpios = <&arduino_header 12 GPIO_ACTIVE_HIGH>;
|
||||
/* D8 */
|
||||
srrf-switch-gpios = <&arduino_header 14 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
/* Maximum TX power limits for 2.4 GHz */
|
||||
wifi-max-tx-pwr-2g-dsss = <21>;
|
||||
wifi-max-tx-pwr-2g-mcs0 = <16>;
|
||||
wifi-max-tx-pwr-2g-mcs7 = <16>;
|
||||
|
||||
/* List of interfaces */
|
||||
wlan0: wlan0 {
|
||||
compatible = "nordic,wlan";
|
||||
};
|
12
boards/shields/nrf7002ek/nrf7002ek_common_5g.dtsi
Normal file
12
boards/shields/nrf7002ek/nrf7002ek_common_5g.dtsi
Normal file
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
wifi-max-tx-pwr-5g-low-mcs0 = <13>;
|
||||
wifi-max-tx-pwr-5g-low-mcs7 = <13>;
|
||||
wifi-max-tx-pwr-5g-mid-mcs0 = <13>;
|
||||
wifi-max-tx-pwr-5g-mid-mcs7 = <13>;
|
||||
wifi-max-tx-pwr-5g-high-mcs0 = <12>;
|
||||
wifi-max-tx-pwr-5g-high-mcs7 = <12>;
|
27
boards/shields/nrf7002ek/nrf7002ek_nrf7000.overlay
Normal file
27
boards/shields/nrf7002ek/nrf7002ek_nrf7000.overlay
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#include <freq.h>
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,wifi = &wlan0;
|
||||
};
|
||||
};
|
||||
|
||||
&arduino_spi {
|
||||
status = "okay";
|
||||
|
||||
nrf70: nrf7002-spi@0 {
|
||||
compatible = "nordic,nrf7000-spi";
|
||||
status = "okay";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <DT_FREQ_M(8)>;
|
||||
|
||||
/* Include common nRF70 overlays */
|
||||
#include "nrf7002ek_common.dtsi"
|
||||
#include "nrf7002ek_common_5g.dtsi"
|
||||
};
|
||||
};
|
26
boards/shields/nrf7002ek/nrf7002ek_nrf7001.overlay
Normal file
26
boards/shields/nrf7002ek/nrf7002ek_nrf7001.overlay
Normal file
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#include <freq.h>
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,wifi = &wlan0;
|
||||
};
|
||||
};
|
||||
|
||||
&arduino_spi {
|
||||
status = "okay";
|
||||
|
||||
nrf70: nrf7001-spi@0 {
|
||||
compatible = "nordic,nrf7001-spi";
|
||||
status = "okay";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <DT_FREQ_M(8)>;
|
||||
|
||||
/* Include common nRF70 overlays */
|
||||
#include "nrf7002ek_common.dtsi"
|
||||
};
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue