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

What is sure way to power down unwanted nrf51822 subsystems?

Hi

I struggle to understand mechanisms of switching particular subsystem of nrf51822 off and on again in order to consume as little as possible current when MCU is put into sleep. The nrf51 Reference Manual v2.1 in section 11.1.3 states: " The system implements mechanisms to automatically switch on and off the appropriate power sources depending on how many peripherals are active, and how much power is needed at any given time." Well how this mechanism works? Does it mean we have no control over which subsystems are on and which are off?

I have searched Nordic Dev Zone extensively and yes there are snippets of answers here and there but thee is no comprehensive guide on the subject.

When I initialize UART, RTC, RADIO, I2C and my sensors I get base current 1.25mA. This is a constant current that is drawn by whole system. All the sensors take 70uA so the rest must be used by MCU. Now...

If I don't initialize my UART, RTC, RADIO, I2C and my sensors and put MCU to sleep I get base current around 70uA. Which to me means that MCU is under 1uA and the rest is current drawn by my sensors.

So the reason for 1.25mA base current is that some subsystems of MCU are not switched off. How do I switch the off? Shouldn't they switch off automatically according to ref manual?

And yes I do apply pin reset after flashing code to the device to bring it out of debug mode and I disconnect all external devices like TX, RX, line and programmer so system is on its own.

I will appreciate any light shown on the issue of switching off internal blocks in MCU.

Cheers

Adam

Parents
  • According to my experience with UART:

    when I enter system ON mode without

    NRF_UART0->ENABLE = (UART_ENABLE_ENABLE_Disabled << UART_ENABLE_ENABLE_Pos);	// to save HFCLK+1V2 power
    

    current consumption is roughly +1,0mA, because oscillator and voltage reference are forced to run permanently. So this is general advice. Take a look at Block resource requirements in PS.

    Only sd_power_system_off() or NRF_POWER->SYSTEMOFF = 1; switches this kind of peripheral automatically OFF.

Reply
  • According to my experience with UART:

    when I enter system ON mode without

    NRF_UART0->ENABLE = (UART_ENABLE_ENABLE_Disabled << UART_ENABLE_ENABLE_Pos);	// to save HFCLK+1V2 power
    

    current consumption is roughly +1,0mA, because oscillator and voltage reference are forced to run permanently. So this is general advice. Take a look at Block resource requirements in PS.

    Only sd_power_system_off() or NRF_POWER->SYSTEMOFF = 1; switches this kind of peripheral automatically OFF.

Children
No Data
Related