[nRF7002EK] Unable to read mac address

Hello,

Development Environment :
SDK version: nRF Connect SDK v2.7.0
Toolchain version: nRF Connect SDK Toolchain v2.7.0
Development environment: Ubuntu 22.04
Development tool: Visual Studio Code
Development board: nrf7002dk_nrf5340_cpuapp
Example refference path: ~/ncs/v2.7.0/nrf/samples/wifi/sta

We are using nRF7002EK for evaluation purpose. Earlier we were able to connect to the wifi router using this module. But, now when we flash the mentioned sample code. We are not able to read the mac address over QSPI interface. we are getting 0s for all mac address.

When we tried to check if OTP memory is working or not we got the following response.

 

from here we got to know that this is an irreversible state. 

So, is there a way we can replace only the OTP memory on the nRF7002EK, as it will be a suitable alternative for us rather than replacing the whole module. If yes, can you please suggest a part no for an OTP memory.

Thank you.

  • Hello,

    So the issue is with the OTP memory which is present on nRF7002 module.

    So if we replace the nRF7002 module present on nRF7002EK will it resolve the issue ?

    Thanks.

  • Sagar.K said:

    So the issue is with the OTP memory which is present on nRF7002 module.

    So if we replace the nRF7002 module present on nRF7002EK will it resolve the issue ?

    Yes, that is correct. Though if you take an nRF7 from a reel to replace the one on the EK, then you would also have to write to the OTP of that and set a few values that comes pre-set on EKs and DKs. Could you try running this first? 

    wifi_radio_ficr_prog otp_get_status
    Regards,
    Elfving

  • Getting below Reading for QSPI interface :

    [00:00:00.337,829] <dbg> wifi_nrf_bus: qspi_wait_while_rpu_awake: RDSR1 = 0x6
    [00:00:00.339,691] <inf> wifi_nrf: nrf_wifi_fmac_otp_mac_addr_get: MAC addr not programmed in OTP
    [00:00:00.339,752] <err> wifi_nrf: nrf_wifi_get_mac_addr: Invalid MAC address: 00:00:00:00:00:00
    [00:00:00.339,752] <err> wifi_nrf: nrf_wifi_if_start_zep: Failed to get MAC address
    [00:00:00.339,843] <dbg> wifi_nrf_bus: qspi_deinit: TODO : qspi_deinit

    uart:~$ wifi_radio_ficr_prog otp_read_params
    OTP Region is unprogrammed - program to enable R/W
    
    PRODTEST.FT.PROGVERSION = 0xff0300ff
    
    PRODTEST.TRIM0 = 0xffffffff
    PRODTEST.TRIM1 = 0x0009d40b
    PRODTEST.TRIM2 = 0x0009d80b
    PRODTEST.TRIM3 = 0xffffffff
    PRODTEST.TRIM4 = 0xffffffff
    PRODTEST.TRIM5 = 0xffffffff
    PRODTEST.TRIM6 = 0xffffffff
    PRODTEST.TRIM7 = 0xffffffff
    PRODTEST.TRIM8 = 0xffffffff
    PRODTEST.TRIM9 = 0xffffffff
    PRODTEST.TRIM10 = 0xffffffff
    PRODTEST.TRIM11 = 0xffffffff
    PRODTEST.TRIM12 = 0xffffffff
    PRODTEST.TRIM13 = 0xffffffff
    PRODTEST.TRIM14 = 0xffffffff
    
    INFO.PART = 0x00007002
    INFO.VARIANT = 0x00423030
    
    INFO.UUID0 = 0x433ffe78
    INFO.UUID1 = 0x11edcb69
    INFO.UUID2 = 0x2eb304cc
    INFO.UUID3 = 0x258a4998
    
    REGION.PROTECT0 = 0xffffffff
    REGION.PROTECT1 = 0xffffffff
    REGION.PROTECT2 = 0xffffffff
    REGION.PROTECT3 = 0xffffffff
    
    
    uart:~$ wifi_radio_ficr_prog otp_get_status
    Checking OTP PROTECT Region......
    OTP Region is unprogrammed - program to enable R/W
    
    QSPI Keys are not programmed in OTP
    MAC0 Address is programmed in OTP
    MAC1 Address is programmed in OTP
    CALIB_XO is programmed in OTP


    Getting below Reading for SPI interface :

    uart:~$ wifi_radio_ficr_prog otp_get_status
    Checking OTP PROTECT Region......
    OTP Region is open for R/W
    
    QSPI Keys are not programmed in OTP
    MAC0 Address is programmed in OTP
    MAC1 Address is programmed in OTP
    CALIB_XO is programmed in OTP
    
    uart:~$ wifi_radio_ficr_prog otp_read_params
    OTP Region is open for R/W
    
    PRODTEST.FT.PROGVERSION = 0xff0300ff
    
    PRODTEST.TRIM0 = 0x0009040f
    PRODTEST.TRIM1 = 0x0009d40b
    PRODTEST.TRIM2 = 0x0009d80b
    PRODTEST.TRIM3 = 0x000f040c
    PRODTEST.TRIM4 = 0x000fd408
    PRODTEST.TRIM5 = 0x000fd808
    PRODTEST.TRIM6 = 0xffffffff
    PRODTEST.TRIM7 = 0xffffffff
    PRODTEST.TRIM8 = 0xffffffff
    PRODTEST.TRIM9 = 0xffffffff
    PRODTEST.TRIM10 = 0xffffffff
    PRODTEST.TRIM11 = 0xffffffff
    PRODTEST.TRIM12 = 0xffffffff
    PRODTEST.TRIM13 = 0xffffffff
    PRODTEST.TRIM14 = 0xffffffff
    
    INFO.PART = 0x00007002
    INFO.VARIANT = 0x00423030
    
    INFO.UUID0 = 0x433ffe78
    INFO.UUID1 = 0x11edcb69
    INFO.UUID2 = 0x2eb304cc
    INFO.UUID3 = 0x258a4998
    
    REGION.PROTECT0 = 0x50fa50fa
    REGION.PROTECT1 = 0x50fa50fa
    REGION.PROTECT2 = 0x50fa50fa
    REGION.PROTECT3 = 0x50fa50fa
    
    MAC0.ADDRESS0 = 0x0036cef4
    MAC0.ADDRESS1 = 0x00004950
    MAC0.ADDRESS = f4:ce:36:00:50:49
    
    MAC1.ADDRESS0 = 0x0036cef4
    MAC1.ADDRESS1 = 0x00004a50
    MAC1.ADDRESS = f4:ce:36:00:50:4a
    
    CALIB.XO = 0x29
    REGION_DEFAULTS = 0xfffffff1

    Not sure why we are seeing this behaviour ? any insights.

  • REGION.PROTECT0 = 0x50fa50fa is what I was expecting.

    Looks to me like you are targeting the two different nRF7s when using the QSPI interface vs when using the SPI one. How are you enabling SPI and QSPI here? And what do you get the same results when using the EK shield in the build?

    Regards,

    ELfving

  • I tried connecting the nrf7002ek as mentioned in this article here. But still facing the above issue of qspi interface. 

    How are you enabling SPI and QSPI here?

    I am changing the SPI config to QSPI config in nrf7002ek shield configuration.

    what do you get the same results when using the EK shield in the build?

    No. for ek shield it is working fine.

    Thank you.

Related