Normal Voltage mode, REG1 DC/DC ,nrf52833

Hi All!

Hope you are doing well!

I am using nrf52833, NCS 2.3.0, Want to minimize the current consumption by sleep mode.

For this, I disabled the UART and SPI and the current goes down to 80uA when in the connected state with the central. But as per the specification, it should be 10uA.

So I tried to enable the " Normal Voltage mode, REG1 DC/DC"

using this piece of code 

	  // Check if DC/DC converter is supported on the device
   if (NRF_POWER->DCDCEN) {
        // Enable the DC/DC converter
       NRF_POWER->DCDCEN = 1;
	//	 NRF_POWER->DCDCEN0 = 1;


    
        // Wait for the DC/DC converter to stabilize
       while (!NRF_POWER->DCDCEN || NRF_POWER->MAINREGSTATUS != POWER_MAINREGSTATUS_MAINREGSTATUS_High) {
            k_sleep(K_MSEC(1));

			    printk("DC/DC: %d, Main Reg Status: %d\n",
           NRF_POWER->DCDCEN, NRF_POWER->MAINREGSTATUS);
        }


     
    }

But it stuck here  while (!NRF_POWER->DCDCEN || NRF_POWER->MAINREGSTATUS != POWER_MAINREGSTATUS_MAINREGSTATUS_High)

so when I replaced POWER_MAINREGSTATUS_MAINREGSTATUS_High

with 

POWER_MAINREGSTATUS_MAINREGSTATUS_Normal
Then the code continued to work but still, the current remained at 80uA.
 prj. conf file is
#
# Copyright (c) 2018 Nordic Semiconductor
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#
#CONFIG_GPIO=y
CONFIG_SPI=y
CONFIG_SPI_NRFX=y
# prj.conf



CONFIG_PM_DEVICE=y

CONFIG_PM=y
# Required to disable default behavior of deep sleep on timeout
CONFIG_PM_DEVICE=y


# Enable the UART driver
#CONFIG_UART_ASYNC_API=y                   #y
#CONFIG_NRFX_UARTE0=y                      #y
#CONFIG_SERIAL=y               

CONFIG_GPIO=y

# Make sure printk is printing to the UART console
#CONFIG_CONSOLE=y                             #y 
#CONFIG_UART_CONSOLE=y                        #y              

CONFIG_I2C=y
CONFIG_NEWLIB_LIBC=y
CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
CONFIG_CBPRINTF_FP_SUPPORT=y

CONFIG_HEAP_MEM_POOL_SIZE=2048

CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME="Nordic_UART_Service"
CONFIG_BT_DEVICE_APPEARANCE=833
CONFIG_BT_MAX_CONN=1
CONFIG_BT_MAX_PAIRED=1
CONFIG_BT_HCI_VS_EXT=y

# Enable the NUS service
CONFIG_BT_NUS=y

# Enable bonding
CONFIG_BT_SETTINGS=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
CONFIG_NVS=y
CONFIG_SETTINGS=y

# Enable DK LED and Buttons library
CONFIG_DK_LIBRARY=y

# This example requires more workqueue stack
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048

# Config logger
CONFIG_LOG=n                                  #y
#CONFIG_USE_SEGGER_RTT=y
#CONFIG_LOG_BACKEND_RTT=y                          #y
#CONFIG_LOG_BACKEND_UART=y

CONFIG_ASSERT=n

# i added these 3 lines from child image of coded phy uart pheripheral
CONFIG_BT_EXT_ADV=y
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_PHY_CODED=y

#CONFIG_BT_USER_PHY_UPDATE=y

#CONFIG_BT_LL_SW_SPLIT=y
#CONFIG_BT_CTLR=y
#CONFIG_BT_HCI=y
#CONFIG_BT=y

#CONFIG_BT_CTLR_ADVANCED_FEATURES=y

#CONFIG_BT_CTLR_CONN_RSSI=y





#CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
CONFIG_BT_CTLR_TX_PWR_0=y
#CONFIG_MY_CUSTOM_TX_PWR_LEVEL=8
#CONFIG_BT_USER_DATA_LEN_UPDATE=y
#CONFIG_BT_AUTO_DATA_LEN_UPDATE=y
#CONFIG_BT_L2CAP_TX_MTU=247
#CONFIG_BT_BUF_ACL_TX_SIZE=251
#CONFIG_BT_BUF_ACL_RX_SIZE=251
#CONFIG_BT_CTLR_DATA_LENGTH_MAX=251

#CONFIG_BT_CTLR_TX_PWR_MINUS_20=y
#CONFIG_BT_CTLR_TX_PWR_MINUS_4=y

#CONFIG_BT_CTLR_TX_PWR_ANTENNA=20

#CONFIG_MPSL=y
#CONFIG_MPSL_FEM=y
#CONFIG_MPSL_FEM_NRF21540_GPIO_SPI=y
#CONFIG_MPSL_FEM_NRF21540_RX_GAIN_DB=0
#CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB=20
Can you please guide me to where I am making the mistake of enabling it?
Thanks & Regards,
Parents
  • Okey thanks. You might see a few µA of inference noise when powering over the USB cable. But if you have cut SB40 the current measurement should be fine. 

    "

    The system contains two main supply regulator stages, REG0 and REG1.

    REG1 regulator stage has the regulator type options of Low-droput regulator (LDO) and Buck regulator (DC/DC). REG0 regulator stage has only the option of Low-dropout regulator (LDO).

    In Normal Voltage mode, only the REG1 regulator stage is used, and the REG0 stage is automatically disabled. In High Voltage mode, both regulator stages (REG0 and REG1) are used. The output voltage of REG0 can be configured in register REGOUT0. This output voltage is connected to VDD and is the input voltage to REG1.

    Note: In High Voltage mode, the configured output voltage for REG0 (REGOUT0) must not be greater than REG0 input voltage minus the voltage drop in REG0 (VDDH - VVDDH-VDD).

    By default, the LDO regulators are enabled and the DC/DC regulator is disabled. Register DCDCEN is used to enable the DC/DC regulator for REG1 stage.

    When the DC/DC converter is enabled, the corresponding LDO regulator is disabled. External LC filter must be connected for the DC/DC regulator if it is being used. The advantage of using a DC/DC regulator is that the overall power consumption is normally reduced as the efficiency of such a regulator is higher than that of a LDO. The efficiency gained by using a DC/DC regulator is best seen when the regulator voltage drop (difference between input and output voltage) is high. The efficiency of internal regulators vary with the supply voltage and the current drawn from the regulators."

    I would also have a look the Zephyr's PM example https://github.com/nrfconnect/sdk-zephyr/tree/main/samples/subsys/pm/device_pm 



    Regards

    Runar

Reply
  • Okey thanks. You might see a few µA of inference noise when powering over the USB cable. But if you have cut SB40 the current measurement should be fine. 

    "

    The system contains two main supply regulator stages, REG0 and REG1.

    REG1 regulator stage has the regulator type options of Low-droput regulator (LDO) and Buck regulator (DC/DC). REG0 regulator stage has only the option of Low-dropout regulator (LDO).

    In Normal Voltage mode, only the REG1 regulator stage is used, and the REG0 stage is automatically disabled. In High Voltage mode, both regulator stages (REG0 and REG1) are used. The output voltage of REG0 can be configured in register REGOUT0. This output voltage is connected to VDD and is the input voltage to REG1.

    Note: In High Voltage mode, the configured output voltage for REG0 (REGOUT0) must not be greater than REG0 input voltage minus the voltage drop in REG0 (VDDH - VVDDH-VDD).

    By default, the LDO regulators are enabled and the DC/DC regulator is disabled. Register DCDCEN is used to enable the DC/DC regulator for REG1 stage.

    When the DC/DC converter is enabled, the corresponding LDO regulator is disabled. External LC filter must be connected for the DC/DC regulator if it is being used. The advantage of using a DC/DC regulator is that the overall power consumption is normally reduced as the efficiency of such a regulator is higher than that of a LDO. The efficiency gained by using a DC/DC regulator is best seen when the regulator voltage drop (difference between input and output voltage) is high. The efficiency of internal regulators vary with the supply voltage and the current drawn from the regulators."

    I would also have a look the Zephyr's PM example https://github.com/nrfconnect/sdk-zephyr/tree/main/samples/subsys/pm/device_pm 



    Regards

    Runar

Children
Related