nRF9160DK fail to communicate with nRF7002

Hello

I am evaluating Wi-Fi location using the nRF7000 and nRF9160.

For the initial test, I used the nRF7002 Expansion Board. I soldered wires to it and connected them to the following pins on the nRF9160DK.

nRF7002-EK nRF9160-DK(P3 & P4 & P1)
CLK P0.13
CS P0.10
D0 P0.11
D1 P0.12
IRQ  P0.07
VIO  VDD
VBAT VDD
EN P0.01
GND GND

I take the sample code of the WIFI shell from here: c:\ncs\v2.6.1\nrf\samples\wifi\shell

in the prj.conf I only add 3 parameters:

#TFM
CONFIG_TFM_SECURE_UART=n
CONFIG_TFM_LOG_LEVEL_SILENCE=y

CONFIG_WIFI_NRF700X_BUS_LOG_LEVEL_DBG=y

I added an extra configuration file to the build configuration.

overlay-scan-only.conf 

and add extra CMake argument 

-DSHIELD="nrf7002ek"

Here are the build log warnings. For some reason, I can’t post the entire log because the UI gets stuck:

warning: WIFI_MGMT_EXT (defined at C:/ncs/v2.6.1/nrf\subsys\net\lib\wifi_mgmt_ext/Kconfig:7) was
assigned the value 'y' but got the value 'n'. Check these unsatisfied dependencies: WPA_SUPP (=n).
See http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_WIFI_MGMT_EXT and/or look up
WIFI_MGMT_EXT in the menuconfig/guiconfig interface. The Application Development Primer, Setting
Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful
too.


warning: NET_IF_UNICAST_IPV6_ADDR_COUNT (defined at subsys/net/ip/Kconfig.ipv6:25) was assigned the
value '4' but got the value ''. Check these unsatisfied dependencies: NET_IPV6 (=n). See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT and/or look
up NET_IF_UNICAST_IPV6_ADDR_COUNT in the menuconfig/guiconfig interface. The Application Development
Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual
might be helpful too.


warning: NET_IF_MCAST_IPV6_ADDR_COUNT (defined at subsys/net/ip/Kconfig.ipv6:31) was assigned the
value '5' but got the value ''. Check these unsatisfied dependencies: NET_IPV6 (=n). See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_NET_IF_MCAST_IPV6_ADDR_COUNT and/or look up
NET_IF_MCAST_IPV6_ADDR_COUNT in the menuconfig/guiconfig interface. The Application Development
Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual
might be helpful too.


warning: The choice symbol WPA_SUPP_LOG_LEVEL_INF (defined at
subsys/logging/Kconfig.template.log_config:17) was selected (set =y), but no symbol ended up as the
choice selection. See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_WPA_SUPP_LOG_LEVEL_INF and/or look up
WPA_SUPP_LOG_LEVEL_INF in the menuconfig/guiconfig interface. The Application Development Primer,
Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be
helpful too.


warning: Experimental symbol WIFI_CREDENTIALS is enabled.

The terminal output is:

[00:00:00.421,844] <dbg> wifi_nrf_bus: rpu_gpio_config: GPIO configuration done...

[00:00:00.424,041] <dbg> wifi_nrf_bus: rpu_pwron: Bucken = 0, IOVDD = 0
[00:00:00.424,072] <inf> wifi_nrf_bus: SPIM spi@b000: freq = 8 MHz
--- 4 messages dropped ---
[00:00:00.424,102] <inf> wifi_nrf_bus: SPIM spi@b000: latency = 0
[00:00:00.424,194] <dbg> wifi_nrf_bus: rpu_wrsr2: Written 0x1 to WRSR2
[00:00:00.424,285] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
[00:00:00.424,316] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
[00:00:00.425,476] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
[00:00:00.425,476] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
[00:00:00.426,666] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
[00:00:00.426,666] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
[00:00:00.427,856] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
[00:00:00.427,886] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
[00:00:00.429,077] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
[00:00:00.431,457] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
[00:00:00.432,647] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
[00:00:00.432,647] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
[00:00:00.433,868] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
[00:00:00.433,868] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
[00:00:00.435,058] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
[00:00:00.435,058] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
[00:00:00.436,157] <err> wifi_nrf_bus: RPU wakeup write ACK failed even after 10ms
[00:00:00.436,187] <err> wifi_nrf_bus: Error: RDSR2 failed
[00:00:00.436,218] <err> wifi_nrf: zep_shim_bus_qspi_dev_add: RPU enable failed with error -1
[00:00:00.436,279] <err> wifi_nrf: nrf_wifi_bus_qspi_dev_add: nrf_wifi_osal_bus_qspi_dev_add failed
[00:00:00.436,370] <err> wifi_nrf: nrf_wifi_bal_dev_add: Bus dev_add failed
[00:00:00.436,431] <err> wifi_nrf: nrf_wifi_hal_dev_add: nrf_wifi_bal_dev_add failed
[00:00:00.436,523] <err> wifi_nrf: nrf_wifi_fmac_dev_add: nrf_wifi_hal_dev_add failed
[00:00:00.436,553] <err> wifi_nrf: nrf_wifi_fmac_dev_add_zep: nrf_wifi_fmac_dev_add failed
[00:00:00.436,584] <err> wifi_nrf: nrf_wifi_if_start_zep: nrf_wifi_fmac_dev_add_zep failed
[00:00:00.440,948] <inf> fs_nvs: 2 Sectors of 4096 bytes
[00:00:00.440,948] <inf> fs_nvs: alloc wra: 0, fe8
[00:00:00.440,979] <inf> fs_nvs: data wra: 0, 0
*** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
Starting nrf9160dk_nrf9160 with CPU frequency: 64 MHz
uart:~$

After this, I tested the same setup with the nRF7002-DK. I bridged the solder points from SB20 to SB25 and connected the nRF91 to the nRF7002 like this:

Board nRF9160-DK(P3 & P4) nRF7002-DK (P24)
SPI CLK P0.13 P0.17
SPI CS P0.10 P0.18
SPI MOSI P0.11 P0.13
SPI MISO P0.12 P0.14
HOST-IRQ  P0.07 P0.23
IOVDD-CTR  P0.00 P0.31
BUCKEN P0.01 P0.12
GND GND GND

I’m experiencing the same error. I even bought the nRF7002-EK, but the result is the same. I used a logic analyzer to check the CLK, CS, MOSI, and MISO lines. I see that the nRF91 sends data over MOSI, but there’s no response on MISO. Can you help me figure out if this is a hardware or software issue?

#
# Copyright (c) 2022 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#
CONFIG_WIFI=y
CONFIG_WIFI_NRF700X=y

# WPA supplicant
CONFIG_WPA_SUPP=y
CONFIG_NET_L2_WIFI_SHELL=y

# System settings
CONFIG_NEWLIB_LIBC=y
CONFIG_NEWLIB_LIBC_NANO=n

# Networking
CONFIG_NETWORKING=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_LOG=y
CONFIG_NET_IPV6=y
CONFIG_NET_IPV4=y
CONFIG_NET_UDP=y
CONFIG_NET_TCP=y
CONFIG_NET_DHCPV4=y
CONFIG_DNS_RESOLVER=y

CONFIG_NET_STATISTICS=y
CONFIG_NET_STATISTICS_WIFI=y
CONFIG_NET_STATISTICS_USER_API=y

CONFIG_NET_PKT_RX_COUNT=8
CONFIG_NET_PKT_TX_COUNT=8

# Below section is the primary contributor to SRAM and is currently
# tuned for performance, but this will be revisited in the future.
CONFIG_NET_BUF_RX_COUNT=16
CONFIG_NET_BUF_TX_COUNT=16
CONFIG_NET_BUF_DATA_SIZE=128
CONFIG_NRF700X_RX_NUM_BUFS=16
CONFIG_NRF700X_MAX_TX_AGGREGATION=4
# nRF700x is main consumer: (16 + 8) * 1600 = ~40KB + ~40KB control path (experimental)
CONFIG_HEAP_MEM_POOL_SIZE=80000
CONFIG_NET_TC_TX_COUNT=1

CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT=4
CONFIG_NET_IF_MCAST_IPV6_ADDR_COUNT=5
CONFIG_NET_MAX_CONTEXTS=5
CONFIG_NET_CONTEXT_SYNC_RECV=y

CONFIG_INIT_STACKS=y

CONFIG_NET_L2_ETHERNET=y
CONFIG_NET_SHELL=y

# Memories
CONFIG_MAIN_STACK_SIZE=4200
CONFIG_SHELL_STACK_SIZE=4400

CONFIG_NET_TX_STACK_SIZE=4096
CONFIG_NET_RX_STACK_SIZE=4096

# Debugging
CONFIG_STACK_SENTINEL=y
CONFIG_DEBUG_COREDUMP=y
CONFIG_DEBUG_COREDUMP_BACKEND_LOGGING=y
CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MIN=y
CONFIG_SHELL_CMDS_RESIZE=n
#CONFIG_DEBUG=y
CONFIG_WPA_SUPP_LOG_LEVEL_INF=y

# Kernel options
CONFIG_ENTROPY_GENERATOR=y

# Logging
CONFIG_LOG=y
CONFIG_PRINTK=y
CONFIG_SHELL=y
CONFIG_SHELL_GETOPT=y
CONFIG_DEVICE_SHELL=y
CONFIG_POSIX_CLOCK=y
CONFIG_DATE_SHELL=y
CONFIG_NET_CONFIG_AUTO_INIT=n

CONFIG_WIFI_MGMT_EXT=y
CONFIG_WIFI_CREDENTIALS=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
CONFIG_NVS=y
CONFIG_SETTINGS=y
CONFIG_SETTINGS_NVS=y

# printing of scan results puts pressure on queues in new locking
# design in net_mgmt. So, use a higher timeout for a crowded
# environment.
CONFIG_NET_MGMT_EVENT_QUEUE_TIMEOUT=5000

#TFM
CONFIG_TFM_SECURE_UART=n
CONFIG_TFM_LOG_LEVEL_SILENCE=y

CONFIG_WIFI_NRF700X_BUS_LOG_LEVEL_DBG=y

SDK v2.6.1

PCA100900 - 1.1.0
PCA63556 - 1.0.0
PCA10143 - 1.0.2

Related