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

how to configure VDD or GPIO voltage to 3.3V in nRF52833-DK

In my board nRF52833,output voltage level is by default 3.0V but I want to change it 3.3.

I used UICR Registers via below code but i wasnt change

 

#include <stdio.h>
#include <stdlib.h>
#include <nrf.h>
#include "nrf_gpio.h"
#include "nrf_timer.h"


void gpio_output_voltage_setup(void);


void main(void) {
  

  SystemInit();
  gpio_output_voltage_setup();

  while (1) {
    __WFI(); //wait for interrupt
  } 


}

void gpio_output_voltage_setup(void)
{
    // Configure UICR_REGOUT0 register only if it is set to default value.
    if ((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) != (UICR_REGOUT0_VOUT_3V3 << 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_3V3 << UICR_REGOUT0_VOUT_Pos);

        NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren;
        while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

        // System reset is needed to update UICR registers.
        NVIC_SystemReset();
        NRF_UICR->REGOUT0
    }
}

Related