Hi,
I have been using nrf52840 chip for a while and now the new revision of the chip has APPROTECT feature that locks the writing until nrfjprog --recover is run and the whole chip is erased. This is my chip revision
I am using S340 (ANT_s340_nrf52840_6.1.1.hex)
I followed the instruction to disable APPROTECT using this code and called it in main function
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void approtect_hw_disable(void)
{
if ((NRF_UICR->APPROTECT & UICR_APPROTECT_PALL_Msk)
== (UICR_APPROTECT_PALL_Msk))
{
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy) {}
NRF_UICR->APPROTECT = (UICR_APPROTECT_PALL_HwDisabled << UICR_APPROTECT_PALL_Pos);
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) {}
NVIC_SystemReset();
}
}
The chip is unlock but if I do a reset or power cycle, the chip will be locked again.
I want to ask if there is a way to permanently disable APPROTECT feature,, which mean it will work as old revision chips.
Edit:
Problem solved! I must use the latest MDK (8.44.1) and recompile everything. I hope this will help others who looking for a solution!
Thank you so much!