How do I build with the combination of nrf52840 and nrf7002? I get an error.

I tried to build a custom board with a combination of nRF52840 and nRF7002, but I get a build error.

I tried to generate an overlay file based on nRF52840DK and build it, but I still get an error.

Here's the overlay file.

// To get started, press Ctrl+Space to bring up the completion menu and view the available nodes.

// You can also use the buttons in the sidebar to perform actions on nodes.
// Actions currently available include:

// * Enabling / disabling the node
// * Adding the bus to a bus
// * Removing the node
// * Connecting ADC channels

// For more help, browse the DeviceTree documentation at https://docs.zephyrproject.org/latest/guides/dts/index.html
// You can also visit the nRF DeviceTree extension documentation at https://nrfconnect.github.io/vscode-nrf-connect/devicetree/nrfdevicetree.html

&usbd {
    cdc-acm-uart {
        compatible = "zephyr,cdc-acm-uart";
    };
};

&spi1 {
    status = "disabled";
};

&i2c1 {
    status = "okay";
};

&spi2 {
    status = "okay";
    cs-gpios = <&gpio1 1 (GPIO_ACTIVE_LOW)>;
};

&spi3 {
    status = "disabled";
};

&spi2_default {
    group1 {
        psels = <NRF_PSEL(SPIM_SCK, 1, 2)>, <NRF_PSEL(SPIM_MOSI, 1, 3)>, <NRF_PSEL(SPIM_MISO, 1, 4)>;
    };
};

&qspi {
	nrf700x: nrf7002@1 {
		status = "okay";
		compatible = "nordic,nrf700x-qspi";
		reg = <1>;
		sck-frequency = <24000000>;
		quad-mode;
		/* Wi-Fi Pins used */
		iovdd-ctrl-gpios = <&gpio0 4 0>;
		bucken-gpios = <&gpio0 9 0>;
		host-irq-gpios = <&gpio0 10 0>;
	};
};

/ {
    nrf_radio_coex: nrf7002-coex {
        status = "okay";
        compatible = "nordic,nrf700x-coex";
        req-gpios = <&gpio0 0 0>;
        status0-gpios = <&gpio0 1 0>;
        grant-gpios = <&gpio0 2 (GPIO_ACTIVE_LOW | GPIO_PULL_DOWN)>;
        swctrl1-gpios = <&gpio0 3 0>;
    };
};

The SDK uses the latest version 2.5.2.

I get the following error message.

-----

In file included from C:/ncs/v2.5.2/nrf/drivers/wifi/nrf700x/zephyr/src/qspi/src/rpu_hw_if.c:22:
C:/ncs/v2.5.2/nrf/drivers/wifi/nrf700x/zephyr/src/qspi/inc/qspi_if.h:43:9: error: unknown type name 'nrf_qspi_encryption_t'
43 | nrf_qspi_encryption_t p_cfg;
| ^~~~~~~~~~~~~~~~~~~~~
[400/460] Building C object modules/nrf/drivers/wifi/nrf700x/CMakeFiles/..__nrf__drivers__wifi__nrf700x.dir/zephyr/src/qspi/src/ficr_prog.c.obj
ninja: build stopped: subcommand failed.

-----

I can build the same source code when I change MCU to nrf5340, so I think I am missing something in nrf52840, what am I missing?

Parents
  • I looked into this error in detail. There is an error on line 43 of qspi_if.h, which states that the nrf_qspi_encryption_t structure does not exist.

    The nrf_qspi_encryption_t structure is declared in nrf_qspi.h. If NRF_QSPI_HAS_XIP_ENC or NRF_QSPI_HAS_DMA_ENC is 1, the declaration is valid. NRF_QSPI_HAS_XIP_ENC and NRF_QSPI_HAS_DMA_ENC are declared in nrf5340_application_bitfields.h. I did a GREP search and found no other files that declare them.

    In other words, unless nRF5340 is selected as the MCU, the combination with nRF7002 will cause build errors. There are several threads on DevZone about the combination of nRF52840 and nRF7002, how are they building?

Reply
  • I looked into this error in detail. There is an error on line 43 of qspi_if.h, which states that the nrf_qspi_encryption_t structure does not exist.

    The nrf_qspi_encryption_t structure is declared in nrf_qspi.h. If NRF_QSPI_HAS_XIP_ENC or NRF_QSPI_HAS_DMA_ENC is 1, the declaration is valid. NRF_QSPI_HAS_XIP_ENC and NRF_QSPI_HAS_DMA_ENC are declared in nrf5340_application_bitfields.h. I did a GREP search and found no other files that declare them.

    In other words, unless nRF5340 is selected as the MCU, the combination with nRF7002 will cause build errors. There are several threads on DevZone about the combination of nRF52840 and nRF7002, how are they building?

Children
Related