

Hi,
I found that the GPIO level of my demo board is not 3.3V. It was correct after I changed it to 3.3V.
I forgot that I was using nRF52833, I am very sorry.
static void gpio_output_voltage_setup(uint32_t UICR_REGOUT0_VOUT)
{
if ((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) !=
(UICR_REGOUT0_VOUT << UICR_REGOUT0_VOUT_Pos))
{
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
NRF_UICR->REGOUT0 = (NRF_UICR->REGOUT0 & ~((uint32_t)UICR_REGOUT0_VOUT_Msk)) |
(UICR_REGOUT0_VOUT << UICR_REGOUT0_VOUT_Pos);
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
NVIC_SystemReset();
}
In addition, I found that the settings of the external or internal 32.768k crystal oscillator can be modified in mpsl_lib_init().
All problems have been resolved.
Thanks,
Stanley
Hi,
I found that the GPIO level of my demo board is not 3.3V. It was correct after I changed it to 3.3V.
I forgot that I was using nRF52833, I am very sorry.
static void gpio_output_voltage_setup(uint32_t UICR_REGOUT0_VOUT)
{
if ((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) !=
(UICR_REGOUT0_VOUT << UICR_REGOUT0_VOUT_Pos))
{
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
NRF_UICR->REGOUT0 = (NRF_UICR->REGOUT0 & ~((uint32_t)UICR_REGOUT0_VOUT_Msk)) |
(UICR_REGOUT0_VOUT << UICR_REGOUT0_VOUT_Pos);
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
NVIC_SystemReset();
}
In addition, I found that the settings of the external or internal 32.768k crystal oscillator can be modified in mpsl_lib_init().
All problems have been resolved.
Thanks,
Stanley
Hi Stanley,
I am glad to hear that you found a solution to the problem, and thank you very much for updating this thread with the solution!
I hope you have a nice day!
Kind regards,
Håkon