This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How to Write values to UICR register ?

I am using nrf52832_xxaa with SDK v11.0. I have a requirement to write into UICR register APPROTECT to set its value to 0x00. Is it possible?If yes, please provide a sample code.

Parents
  • Yes, it's possible. Try this code:

    NRF_NVMC->CONFIG = (NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos);
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy) {}
    NRF_UICR->APPROTECT = 0xFFFFFF00;
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy) {}
    NRF_NVMC->CONFIG = (NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos);
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
    

    Or with nrfjprog:

    nrfjprog --memwr 0x10001208 --val 0xffffff00
    
Reply
  • Yes, it's possible. Try this code:

    NRF_NVMC->CONFIG = (NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos);
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy) {}
    NRF_UICR->APPROTECT = 0xFFFFFF00;
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy) {}
    NRF_NVMC->CONFIG = (NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos);
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
    

    Or with nrfjprog:

    nrfjprog --memwr 0x10001208 --val 0xffffff00
    
Children
Related