This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

nRF9160DK and WINC1500 WiFi Module

Hi,

I am trying to get the Atmel WINC1500 module to work with the nRF9160DK.

I have read a similar post,

https://devzone.nordicsemi.com/f/nordic-q-a/76640/spi-issue-using-the-adafruit-winc1500-wifi-on-the-nrf9160dk/317289#317289

and have taken the advice to ensure I use pins that are not assigned to functions on the DK. My overlay file is this

&spi3 {
  compatible = "nordic,nrf-spim";
  status = "okay";
  cs-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
  sck-pin = <0>;
  mosi-pin = <19>;
  miso-pin = <1>;

	winc1500@0 {
		status = "okay";
		compatible = "atmel,winc1500";
		reg = <0x0>;
		label = "winc1500";
		spi-max-frequency = <4000000>;
		irq-gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
		reset-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
		enable-gpios = <&gpio0 12 0>;
	};
};

and my conf file is as follows.

CONFIG_GPIO=y

CONFIG_SPI=y

CONFIG_WIFI_WINC1500=y
CONFIG_WIFI_WINC1500_REGION_EUROPE=y

CONFIG_EARLY_CONSOLE=y

CONFIG_NETWORKING=y
#CONFIG_TEST_RANDOM_GENERATOR=y
CONFIG_NET_TX_STACK_SIZE=2048
CONFIG_NET_RX_STACK_SIZE=2048

CONFIG_NET_PKT_RX_COUNT=10
CONFIG_NET_PKT_TX_COUNT=10
CONFIG_NET_BUF_RX_COUNT=20
CONFIG_NET_BUF_TX_COUNT=20
CONFIG_NET_MAX_CONTEXTS=10

CONFIG_NET_IPV4=y
CONFIG_NET_IPV6=n

CONFIG_NET_TCP=y

CONFIG_NET_LOG=y
CONFIG_INIT_STACKS=y

CONFIG_NET_SHELL=y

CONFIG_NET_STATISTICS=y
CONFIG_NET_STATISTICS_PERIODIC_OUTPUT=n

CONFIG_WIFI=y

CONFIG_WIFI_LOG_LEVEL_ERR=y
CONFIG_NET_L2_WIFI_SHELL=y

 when I try to build the code, the is the code I'm using

https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/net/wifi

I get an error

Watt@Watt-Macbook-Pro WINC1500 % sh build_app.sh
[1/1] cd /Users/Watt/Documents/ZEPHYR_...ncs/v1.6.1/zephyr/cmake/pristine.cmake
-- Application: /Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500
-- Using NCS Toolchain 1.6.0 for building. (/opt/nordic/ncs/v1.6.0-rc2/toolchain/cmake)
-- Zephyr version: 2.6.0-rc1 (/opt/nordic/ncs/v1.6.1/zephyr), build: v2.6.0-rc1-ncs1
-- Found Python3: /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/python3 (found suitable exact version "3.8.2") found components: Interpreter 
-- Found west (found suitable version "0.11.0", minimum required is "0.7.1")
-- Board: nrf9160dk_nrf9160, Revision: 0.7.0
-- Cache files will be written to: /Users/Watt/Library/Caches/zephyr
-- Found dtc: /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/dtc (found suitable version "1.4.7", minimum required is "1.4.6")
-- Found toolchain: gnuarmemb (/opt/nordic/ncs/v1.6.0-rc2/toolchain)
-- Found BOARD.dts: /opt/nordic/ncs/v1.6.1/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160.dts
-- Found devicetree overlay: /Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/nrf9160dk_nrf9160.overlay
-- Generated zephyr.dts: /Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build/zephyr/zephyr.dts
-- Generated devicetree_unfixed.h: /Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build/zephyr/include/generated/devicetree_unfixed.h
-- Generated device_extern.h: /Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build/zephyr/include/generated/device_extern.h
Parsing /opt/nordic/ncs/v1.6.1/zephyr/Kconfig
Loaded configuration '/opt/nordic/ncs/v1.6.1/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160_defconfig'
Merged configuration 'prj.conf'
Configuration saved to '/Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build/zephyr/.config'
Kconfig header saved to '/Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build/zephyr/include/generated/autoconf.h'
-- The C compiler identification is GNU 9.2.1
-- The CXX compiler identification is GNU 9.2.1
-- The ASM compiler identification is GNU
-- Found assembler: /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/arm-none-eabi-gcc
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build
Make Complete

/Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build
[1/294] Preparing syscall dependency handling

[87/294] Building C object zephyr/CMak...fi/winc1500/wifi_winc1500_nm_bsp.c.obj
FAILED: zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c.obj 
ccache /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/arm-none-eabi-gcc -DBUILD_VERSION=v2.6.0-rc1-ncs1 -DKERNEL -DNRF9160_XXAA -DUSE_PARTITION_MANAGER=0 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -I/opt/nordic/ncs/v1.6.1/zephyr/kernel/include -I/opt/nordic/ncs/v1.6.1/zephyr/arch/arm/include -I/opt/nordic/ncs/v1.6.1/zephyr/include -Izephyr/include/generated -I/opt/nordic/ncs/v1.6.1/zephyr/soc/arm/nordic_nrf/nrf91 -I/opt/nordic/ncs/v1.6.1/zephyr/lib/util/fnmatch/. -I/opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/. -I/opt/nordic/ncs/v1.6.1/nrf/include -I/opt/nordic/ncs/v1.6.1/modules/hal/cmsis/CMSIS/Core/Include -I/opt/nordic/ncs/v1.6.1/modules/hal/nordic/nrfx -I/opt/nordic/ncs/v1.6.1/modules/hal/nordic/nrfx/drivers/include -I/opt/nordic/ncs/v1.6.1/modules/hal/nordic/nrfx/mdk -I/opt/nordic/ncs/v1.6.1/zephyr/modules/hal_nordic/nrfx/. -isystem /opt/nordic/ncs/v1.6.1/zephyr/lib/libc/minimal/include -isystem /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/../lib/gcc/arm-none-eabi/9.2.1/include -isystem /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed -isystem /opt/nordic/ncs/v1.6.1/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros /Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -fdiagnostics-color=always -mcpu=cortex-m33 -mthumb -mabi=aapcs -imacros /opt/nordic/ncs/v1.6.1/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-address-of-packed-member -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=/Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500=CMAKE_SOURCE_DIR -fmacro-prefix-map=/opt/nordic/ncs/v1.6.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=/opt/nordic/ncs/v1.6.1=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c.obj -MF zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c.obj.d -o zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c.obj -c /opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c
In file included from /opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c:7:
/opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/wifi_winc1500_nm_bsp_internal.h:15:10: fatal error: bus_wrapper/include/nm_bus_wrapper.h: No such file or directory
   15 | #include <bus_wrapper/include/nm_bus_wrapper.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[88/294] Building C object zephyr/CMak...500/wifi_winc1500_nm_bus_wrapper.c.obj
FAILED: zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500_nm_bus_wrapper.c.obj 
ccache /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/arm-none-eabi-gcc -DBUILD_VERSION=v2.6.0-rc1-ncs1 -DKERNEL -DNRF9160_XXAA -DUSE_PARTITION_MANAGER=0 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -I/opt/nordic/ncs/v1.6.1/zephyr/kernel/include -I/opt/nordic/ncs/v1.6.1/zephyr/arch/arm/include -I/opt/nordic/ncs/v1.6.1/zephyr/include -Izephyr/include/generated -I/opt/nordic/ncs/v1.6.1/zephyr/soc/arm/nordic_nrf/nrf91 -I/opt/nordic/ncs/v1.6.1/zephyr/lib/util/fnmatch/. -I/opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/. -I/opt/nordic/ncs/v1.6.1/nrf/include -I/opt/nordic/ncs/v1.6.1/modules/hal/cmsis/CMSIS/Core/Include -I/opt/nordic/ncs/v1.6.1/modules/hal/nordic/nrfx -I/opt/nordic/ncs/v1.6.1/modules/hal/nordic/nrfx/drivers/include -I/opt/nordic/ncs/v1.6.1/modules/hal/nordic/nrfx/mdk -I/opt/nordic/ncs/v1.6.1/zephyr/modules/hal_nordic/nrfx/. -isystem /opt/nordic/ncs/v1.6.1/zephyr/lib/libc/minimal/include -isystem /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/../lib/gcc/arm-none-eabi/9.2.1/include -isystem /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed -isystem /opt/nordic/ncs/v1.6.1/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros /Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -fdiagnostics-color=always -mcpu=cortex-m33 -mthumb -mabi=aapcs -imacros /opt/nordic/ncs/v1.6.1/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-address-of-packed-member -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=/Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500=CMAKE_SOURCE_DIR -fmacro-prefix-map=/opt/nordic/ncs/v1.6.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=/opt/nordic/ncs/v1.6.1=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500_nm_bus_wrapper.c.obj -MF zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500_nm_bus_wrapper.c.obj.d -o zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500_nm_bus_wrapper.c.obj -c /opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/wifi_winc1500_nm_bus_wrapper.c
In file included from /opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/wifi_winc1500_nm_bus_wrapper.c:19:
/opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/wifi_winc1500_nm_bsp_internal.h:15:10: fatal error: bus_wrapper/include/nm_bus_wrapper.h: No such file or directory
   15 | #include <bus_wrapper/include/nm_bus_wrapper.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[95/294] Building C object zephyr/CMak...vers/wifi/winc1500/wifi_winc1500.c.obj
FAILED: zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500.c.obj 
ccache /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/arm-none-eabi-gcc -DBUILD_VERSION=v2.6.0-rc1-ncs1 -DKERNEL -DNRF9160_XXAA -DUSE_PARTITION_MANAGER=0 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -I/opt/nordic/ncs/v1.6.1/zephyr/kernel/include -I/opt/nordic/ncs/v1.6.1/zephyr/arch/arm/include -I/opt/nordic/ncs/v1.6.1/zephyr/include -Izephyr/include/generated -I/opt/nordic/ncs/v1.6.1/zephyr/soc/arm/nordic_nrf/nrf91 -I/opt/nordic/ncs/v1.6.1/zephyr/lib/util/fnmatch/. -I/opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/. -I/opt/nordic/ncs/v1.6.1/nrf/include -I/opt/nordic/ncs/v1.6.1/modules/hal/cmsis/CMSIS/Core/Include -I/opt/nordic/ncs/v1.6.1/modules/hal/nordic/nrfx -I/opt/nordic/ncs/v1.6.1/modules/hal/nordic/nrfx/drivers/include -I/opt/nordic/ncs/v1.6.1/modules/hal/nordic/nrfx/mdk -I/opt/nordic/ncs/v1.6.1/zephyr/modules/hal_nordic/nrfx/. -isystem /opt/nordic/ncs/v1.6.1/zephyr/lib/libc/minimal/include -isystem /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/../lib/gcc/arm-none-eabi/9.2.1/include -isystem /opt/nordic/ncs/v1.6.0-rc2/toolchain/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed -isystem /opt/nordic/ncs/v1.6.1/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros /Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -fdiagnostics-color=always -mcpu=cortex-m33 -mthumb -mabi=aapcs -imacros /opt/nordic/ncs/v1.6.1/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-address-of-packed-member -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=/Users/Watt/Documents/ZEPHYR_Code/nRF9160DK/New_Code/WINC1500=CMAKE_SOURCE_DIR -fmacro-prefix-map=/opt/nordic/ncs/v1.6.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=/opt/nordic/ncs/v1.6.1=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500.c.obj -MF zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500.c.obj.d -o zephyr/CMakeFiles/zephyr.dir/drivers/wifi/winc1500/wifi_winc1500.c.obj -c /opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/wifi_winc1500.c
/opt/nordic/ncs/v1.6.1/zephyr/drivers/wifi/winc1500/wifi_winc1500.c:37:10: fatal error: driver/include/m2m_wifi.h: No such file or directory
   37 | #include <driver/include/m2m_wifi.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[96/294] Building C object zephyr/arch...ore__aarch32__cortex_m.dir/fault.c.obj
ninja: build stopped: subcommand failed.
Parsing hex file.
ERROR: The file specified could not be found.

This error can be avoided if I comment out the line

CONFIG_WIFI=y

This allows the code to build and run but of couse I then get an error saying there is no network.

uart:~$ *** Booting Zephyr OS build v2.6.0-rc1-ncs1  ***


[00:00:00.382,232] <err> net_if: There is no network interface to work with!
uart:~$ wifi scan
[00:00:06.206,115] <err> os: ***** USAGE FAULT *****
[00:00:06.206,115] <err> os:   Unaligned memory access
[00:00:06.206,115] <err> os: r0/a1:  0xaaaaaaaa  r1/a2:  0x00000000  r2/a3:  0x00000000
[00:00:06.206,146] <err> os: r3/a4:  0x20004c48 r12/ip:  0x00000000 r14/lr:  0x0000536d
[00:00:06.206,146] <err> os:  xpsr:  0x61000000
[00:00:06.206,146] <err> os: Faulting instruction address (r15/pc): 0x0000525c
[00:00:06.206,146] <err> os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0
[00:00:06.206,176] <err> os: Current thread: 0x200005d8 (shell_uart)
*** Booting Zephyr OS build v2.6.0-rc1-ncs1  ***system


[00:00:00.251,525] <err> net_if: There is no network interface to work with!
uart:~$ 

Would appreciate your thoughts

Rod

Parents
  • Hi Rod,

    The message is just warning. It is caused by this Kconfig.

    config WINC1500_DRV_USE_OLD_SPI_SW
    	bool "Use old SPI access method in the vendor HAL"
    	help
    	  This option, when enabled, causes USE_OLD_SPI_SW
    	  setting to be passed to vendor HAL.
    

    You can't generate zephyr.hex if there is any compile time error.

    Can you use logic analyze to observe SPI communication?

  • HI Rod,

    We can learn SPI master is sending correct signal from your capture while not connecting WINC1500.

    SPIM is trying to reset module.

    #define CMD_RESET				0xcf
    
    	case CMD_RESET:							/* reset */
    		bc[1] = 0xff;
    		bc[2] = 0xff;
    		bc[3] = 0xff;
    		len = 5;
    		break;

    However you can't get anything when WINC1500 connected.

    It seems that bus has been pulled down by WINC1500.

    I would suggest that you check the power sequence of WINC1500.

  • Hi Pirun,

    I have connected the reset signal and can see that its high. I am basing my overlay file on this example.

    https://github.com/zephyrproject-rtos/zephyr/blob/main/samples/net/wifi/boards/reel_board.overlay

    my overlay file is this

    &spi3 {
      compatible = "nordic,nrf-spim";
      status = "ok";
      cs-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
      sck-pin = <0>;
      mosi-pin = <19>;
      miso-pin = <1>;
    
    	winc1500@0 {
    		status = "ok";
    		compatible = "atmel,winc1500";
    		reg = <0x0>;
    		label = "winc1500";
    		spi-max-frequency = <4000000>;
    		irq-gpios = <&gpio0 16 1>;
    		reset-gpios = <&gpio0 13 1>;
    		enable-gpios = <&gpio0 12 0>;
    
    //		irq-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
    //		reset-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
    //		enable-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
    	};
    };
    
    

    Im assuming that the power up sequence is handled by the driver, I just need to connect the right signals, which I believe I have.

    Rod

Reply
  • Hi Pirun,

    I have connected the reset signal and can see that its high. I am basing my overlay file on this example.

    https://github.com/zephyrproject-rtos/zephyr/blob/main/samples/net/wifi/boards/reel_board.overlay

    my overlay file is this

    &spi3 {
      compatible = "nordic,nrf-spim";
      status = "ok";
      cs-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
      sck-pin = <0>;
      mosi-pin = <19>;
      miso-pin = <1>;
    
    	winc1500@0 {
    		status = "ok";
    		compatible = "atmel,winc1500";
    		reg = <0x0>;
    		label = "winc1500";
    		spi-max-frequency = <4000000>;
    		irq-gpios = <&gpio0 16 1>;
    		reset-gpios = <&gpio0 13 1>;
    		enable-gpios = <&gpio0 12 0>;
    
    //		irq-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
    //		reset-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
    //		enable-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
    	};
    };
    
    

    Im assuming that the power up sequence is handled by the driver, I just need to connect the right signals, which I believe I have.

    Rod

Children
Related