3 years, 10 months ago.

Power Management for NRF52, using certain registers on nrf52832?

There are certain registers that can be enabled/disabled in nrf52832 to manage the power modes. Also I want to be able to enable the on board DC-DC regulator and for this I need to be able to enable another register as mentioned below. Is there a BLE API that is available in mbed os5 to enable/disable components/features for the nrf52832 SOC.

  • 18.9.11 DCDCEN
  • Address offset: 0x578
  • DC/DC enable register
  • Bit number 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
  • Id A Reset 0x00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • Id RW Field Value Id Value Description
  • A RW DCDCEN Enable or disable DC/DC converter
  • Disabled 0 Disable
  • Enabled 1 Enable

After going thru' the documentation in the Nordic site, it looks like I need to call one of the SOC API's.

sd_power_dcdc_mode_set defined in softdevice header files, nrf_soc.h. How can I call this API from my custom mbed application?

Thanks, Ajay

Question relating to:

The nRF52 Development Kit is a single-board development kit for Bluetooth Smart, ANT and 2.4GHz proprietary applications using the nRF52 Series SoC. This kit supports both development for nRF52832 SoCs.

2 Answers

3 years, 10 months ago.

Hello Ajay,

You can call sd_power_dcdc_mode_set once the softdevice is enabled (in the BLE init callback). You just have to include the nrf_soc.h header.

I advise you to use the softdevice primitive rather than the raw register; the softdevice takes care of enabling the DC-DC regulator when it needs to (radio operations) and turn it off the rest of the time otherwise, the power consumption might be worse if the DC-DC regulator is enabled all the time.

Edit: If the DC/DC is enabled, the hardware will take care of turning it on when the radio is enabled and turning it of when the radio gets disabled.

Accepted Answer
3 years, 10 months ago.

Hi Vincent,

On the Nordic web site forum it was mentioned that by default the internal LDO is enabled. But under higher current draws the DC2DC is employed. But in order for the DC2DC to be enabled, it mentions that the above API sd_power_dcdc_mode_set needs to be called. When you mention "use the softdevice primitive rather than the raw register" did you mean I should be using the "sd_power_dcdc_mode_set" api call?

Thanks, Yogesh

Yes, if you use the softdevice in you application use sd_power_dcdc_mode_set to enable the DC-DC. If you don't use the softdevice enable the DC-DC with the peripheral register DCDCEN.

posted by Vincent (pan-) Coubard 25 Nov 2016