Problems using nRF7002 with non-nRF MCU

Hello All,
I am trying nRF7002 shield on my non-nRF MCU and i am running the wifi sample app on zephyr (latest version as of today Aug 20)
I get this error most of the time when issuing "wifi" shell commands. however commands are successful 50% of the time.
Has anyone seen this before? should i enable or disable any kconfig for this?

Regards,

djgj

Parents
  • Hi Djgj

    Could you give a bit more information regarding your system? As we can't test for all devices, the test level will be lower on non Nordic hosts. Due to this, there might be compatibility issues with helper libraries, such as the download library.

    Regards

    Runar

  • Hi Runar,

    We are using RT500 MCU (NXP) as our host MCU. I connected our host MCU with nRF7002 EK via SPI connection. 

    I am running the basic WiFi shell application on zephyr:

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

    All other configs are same as used with nRF5340 except the SPI interface part.

    While debugging i also noticed this comment which can be related to my issue.
    https://github.com/nrfconnect/sdk-nrfxlib/blame/main/nrf_wifi/hw_if/hal/src/hal_interrupt.c#L437

    Do you know what this is about and how to mitigate this?

    kindly let me know if you need more details.

    Regards,

    djgj

  • Hi,

    I have forwarded this internally and will get back to you early next week.

    Best regards,
    Marte

  • Hi,

    The team has suggested some things you can do to debug the issue.

    1. Measure the SPI clock while running the SPI at 2MHz or 1MHz to validate the frequency.
    2. Measure the BUCKEN, IOVDD, and VBAT supplied to the nRF70.
    3. Probe IOVDD and BUCKEN with an oscilloscope during boot to check the power sequencing.

    The power-up sequencing requirements are as follows:

    • Supply VBAT/BUCKVBAT/BUCKVBATS/AFEVBAT
    • Wait ≥ 6 ms
    • Assert BUCKEN
    • Wait ≥ 1 ms
    • Supply IOVDD

    You can read more about this in supply sequencing requirements.

    Please share the results of these tests.

    It would also be helpful if you could share the hardware schematics of your host interface.

    Best regards,
    Marte

  • Hello Marte, 
                  I have attached the salea logic analyser logs in this reply.
    I have compared the init sequence of nRF7002 with nRF53 and RT595 devkits.

    nRF7002 with RT595 EVK

    nRF7002 with nRF5340 DK

    * I do see some difference in the way init sequence is happening on RT500 compared to nRF53.
    Do you think this can cause issue within that power cycle with nRF7002?

    * Also once nRF7002 goes into error state what is the recommended to bring it back to proper state?
    I noticed that once i use nRF7002 with nRF53 devkit and then switch to RT500 normally i don't see invalid addresses for sometime. But once the nRF7002 starts giving invalid address errors (for some reason like improper connections or init sequences) it continues on. I think there can be a link somewhere here.

    I will verify the SPI frequency and voltage values on BUCKEN, IOVDD, and VBAT and confirm on it soon.

    Additional Info/Question:

    * I also added some log messages in the spi_if.c file to compare and see for any SPI errors between nRF53 and RT500.
    https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/wifi/nrfwifi/src/qspi/src/spi_if.c#L29-L77

    But however i don't see any of the bytes probed on nRF7002 SPI lines (via logic analyser) with those printed on spi_if driver logs

    The data compared here is from nRF7002 driver itself which does some checking/sending a message every 10 seconds after just initialization (no other wifi commands issued and I did not add anything code for this here except those log messages on spim_xfer_rx/tx functions)

    Technically it is just writing and reading to same nRF7002 registers every 10 seconds. But the bytes seen in SPI lines are different every time. This behavior is seen on both RT500 and nRF5340 setup too.  I would like know how to debug these message bytes so that i can know what kind of SPI error could be happening?

    Regarding Host setup:

    We are using NXP MIMXRT595-EVK as our Host MCU board and nRF7002 EK.
    We are using devkits to verify this Wi-Fi interfacing path with nRF7002EK.
    I was not able to use the full Arduino shield interface on RT595 EVK board since
    their "arduino_spi" interface was not available out of the box for using on RT500

    Instead, I connected nRF7002 EK pins partially to "Arduino" and "HS_SPI_1" pins on the RT595 EVK board.
    (reference chapter 9 https://www.farnell.com/datasheets/3209290.pdf)
    NRF7002 EK
    RT5959 EVK
    V5V
    J29 - pin 5
    GND
    J29 - pin 6
    VIO
    J29 - pin 4
    HOST_IRQ
    J27 - pin 8
    BUCK_EN
    J27 - pin 2
    IOVDD_EN
    J27 - pin 1
    SS
    HS_SPI_1 - JP26 - pin 1 
    MOSI
    HS_SPI_1 - JP26 - pin 2
    MISO
    HS_SPI_1 - JP26 - pin 3
    CLK
    HS_SPI_1 - JP26 - pin 4
    And on the software side we are using latest zephyr containing Nordic updates on nRF7002.
    App: https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/net/wifi
    I made a small change on nrf7002ek.overlay to be able to use setup without too much custom changes.

    Thanks,

    djgj 

  • Hi,

    Thank you for providing additional debug information. I forwarded it internally and am waiting for a reply. If I have not heard anything by tomorrow, I will ask them for an update and get back to you.

    Best regards,
    Marte

  • Hi,

    I have not received a response yet but have asked for an update. I expect to hear something early next week.

    Best regards,
    Marte

Reply Children
Related