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

Problem with NRF24LE1, it is consuming 1.2mA current in register retention mode

Hello,

I have been trying to push down the current consumption by nRF24LE1 module that I am working with. I enabled register retention mode with the following code:

https://www.nordicsemi.com/eng/Nordic-FAQ/All/How-to-setup-register-retention-mode-on-the-nRF24LE1

But in this mode it is consuming 1.2mA where are it is supposed to consume 2 or 3 uA (micro amperes). Also what I observed is if I do not configured the pin wake up mode by commenting out the following line of code then it consumes 0.002mA which is what I want but if I disable this line it does not resume back from the register retention power saving mode. So why is this line of code of pin wake making the module consume 1.2mA of current. As per the data sheet in register retention mode it should consume only between 2-87uA. Someone one please tell me what is wrong with this code in the link above and why register retention mode is consuming so much current.

// Wake up on pin P2.1 active-high
WUOPC0 = 0x02; 

Parents Reply Children
  • Hi Sriranjan

    Nordic support is staffed during standard office hours in Europe, not during weekends. To allow room for time zone differences we aim to provide a reply within 24 hours, not counting Saturday and Sunday. 

    As discussed in the other case, WUOPC0 = 0x02 corresponds to wakeup on pin on P0.1 if you use the 24-pin LE1. If the pin is high when you try to enter sleep it will wake up again immediately, which could explain why the current consumption is higher before you disable the wake up on pin functionality. 

    Could you double check this?

    Best regards
    Torbjørn

  • Sorry I am using 32 pin LE1. I will confirm this and post you the code here.

  • Here is my code.

    #include <Nordic\reg24le1.h>
    #include"hal_clk.h"
    
    void wakeup_irq() interrupt INTERRUPT_WUOPIRQ
    {
    // Turn on LED
    //P22 = 1;
    }
    
    void main(void)
    {
    		hal_clk_set_freq(HAL_CLK_125KHZ);
    	// Wake up on pin P2.1 active-high
    WUOPC0 = 0x02;
    
    P0 = 0x00;
    P1 = 0x00;
    P2 = 0x00;
    P3 = 0x00;
    
    P0DIR = 0x02;
    P1DIR = 0x00;
    P2DIR = 0x00;
    P3DIR = 0x00;
    
    IEN1 = 0x08;
    EA = 1;
    
    while(1)
    {
    		
    // Push button to go to power down mode, release button to wakeup
    while(P01==1)
    {
    
    }
    // Register retention mode
    PWRDWN = 0x04;
    // Clear power down
    PWRDWN = 0x00;
    
    }
    }

    In this code as long as P0.1 is tied to ground, the module is in register retention mode consuming about 0.002mA of current. Now the moment I release P0.1 pin from ground it goes into high power mode.

    Now what I need is that the nrf24le1 should be in low power mode to start with and when ever there is high voltage at the P0.1 pin then it should exit power saving and resume to normal mode. I tried changing the code several ways but not able to achieve the functionality.

  • Hi

    Sorry for the slow response, somehow this case dropped out of my list....

    Did you ever figure this out, or are you still struggling with the current consumption of the nRF24LE1 device?

    Best regards
    Torbjørn

Related