nRF7002 Init hang

I have a custom board that consists of a nRF52840 and a nRF7002 WiFi companion chip, connected via SPI. (not QSPI)

I wrote a tiny test program that configures the nRF7002 connection and pins, but does not interact with it in the event loop. I had a few errors related to SPI initialization because of wrong pin mappings, but fixed all of those.

However, now the only log output I receive is this:

[00:00:00.003,662] <inf> wifi_nrf_bus: SPIM spi@40004000: freq = 8 MHz
[00:00:00.003,692] <inf> wifi_nrf_bus: SPIM spi@40004000: latency = 0

It appears to never reach the event loop and hang at this point. What is a good next step to debug this and/or what other information can I provide?

I am fairly new to the Nordic ecosystem and am stuck here.

Thanks!

Parents
  • Hi,

    Have you commisioned the board? Ie. mainly written to the OTP?

    To make sure things are connected correctly, you could also try the bustest at /tests/boards/nrf/nrf70/bustest in the SDK.

    Regards,

    Elfving

  • Thank you and sorry for the delay, I just returned from a business trip. The board is not commissioned yet, but I know that this will need to happen before I can fully use it.

    I was able to find an issue with reverse IOVDD and BUCKEN polarity. I am now making it much further in the nRF7002 init:

    ```
    [00:00:00.001,434] <dbg> wifi_nrf_bus: rpu_gpio_config: GPIO configuration done...
    [00:00:00.003,662] <dbg> wifi_nrf_bus: rpu_pwron: Bucken = 1, IOVDD = 1
    [00:00:00.003,723] <inf> wifi_nrf_bus: SPIM spi@40004000: freq = 8 MHz
    [00:00:00.003,753] <inf> wifi_nrf_bus: SPIM spi@40004000: latency = 0
    [00:00:00.003,814] <dbg> wifi_nrf_bus: rpu_wrsr2: Written 0x1 to WRSR2
    [00:00:00.003,936] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
    [00:00:00.003,936] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
    [00:00:00.005,157] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
    [00:00:00.005,157] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
    [00:00:00.006,378] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0
    [00:00:00.006,378] <dbg> wifi_nrf_bus: spim_wait_while_rpu_wake_write: RDSR2 = 0x0
    [00:00:00.007,659] <dbg> wifi_nrf_bus: spim_read_reg: err: 0 -> 0 0 0 0 0 0

    ```

    It is reaching my event loop after this. Interestingly, trying to read RDSR instead of RDSR2, I am seeing good results:

    ```
    [00:00:52.795,867] <inf> n70probe: RDSR=0x42
    [00:00:52.895,996] <inf> n70probe: RDSR=0x42
    [00:00:52.996,124] <inf> n70probe: RDSR=0x42
    [00:00:53.096,252] <inf> n70probe: RDSR=0x42

    ```

  • Good that things are improving, though let me know when you've tried commisioned the board. If that doesn't help, it would also be great if you could try and see if you are able to reproduce this on a DK.

    Regards,

    Elfving

Reply Children
No Data
Related