Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How to perform a factory reset of nrf52840?

Hi everyone,

This might seem like a silly post, but this happened.

I build and ran the example QSPI code given in the sdk. 

But after that if i try to run my own code of freertos along with BLE. It just doesn't run and it freezes.

I think i erased some important part of the memory, Can anyone suggest me how to proceed for this kind of problem?

If i press the reset button on the nrfPDK ,it runs the previous code that was uploaded and not the current one.

This is very weird problem i had ever faced.

I  didn't make any changes to the sdk example, I ran that code as it is.

Thanks

Rajat.

Parents
  • Hi Rajat,

     I would recommend that you start with a BLE example application then add the QSPI functionality, by enabling it in "sdk_config.h" as well as including the right files.

    You could for example use the "ble_app_uart" example as reference then add code from the "qspi" example application.

     

    Here is how you can debug to find out why your application stops.

    If you are going to have BLE capabilities in your application you have to flash with the Softdevice (since it's the BLE stack).

     

  • Hi martin 

    Thanks for the answer 

    But i am following the same process which you just described above . 

    The error I am getting is NRF_TIMEOUT_ERROR which originates from qspi_init() function. 

    Example code is running fine but when I integrate this with the BLE uart app code, it throws this error. 

    What can be the solution to this ?

    Thanks for.your time .

  • Hi Rajat,

    Please check the documentation.

     

    This function configures the peripheral and its interrupts and activates it. During the activation process, the internal clocks are started and the QSPI peripheral tries to read the status byte to read the busy bit. Reading the status byte is done in a simple poll and wait mechanism. If the busy bit is 1, this indicates issues with the external memory device. As a result, nrfx_qspi_initreturns NRFX_ERROR_TIMEOUT.

    In case of issues:

    • Check the connection.
    • Make sure that the memory device does not perform other operations like erasing or writing.
    • Check if there is a short circuit.
Reply
  • Hi Rajat,

    Please check the documentation.

     

    This function configures the peripheral and its interrupts and activates it. During the activation process, the internal clocks are started and the QSPI peripheral tries to read the status byte to read the busy bit. Reading the status byte is done in a simple poll and wait mechanism. If the busy bit is 1, this indicates issues with the external memory device. As a result, nrfx_qspi_initreturns NRFX_ERROR_TIMEOUT.

    In case of issues:

    • Check the connection.
    • Make sure that the memory device does not perform other operations like erasing or writing.
    • Check if there is a short circuit.
Children
Related