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

RF interrupt on register retention

Hi, I use nRF24LE1 configured for power down on register retention mode with RFRx active.

When the CPU is on power down i don't have any interrupt from RFIRQ.

Init configuration

IEN1 = 0x22; // interrupt from RTC and RFIRQ

WUCON = 0x0f; // wakeup from RTC and RFIRQ

  void main (void)
  
  {

    Init();

    for(;;)

   {

     PWRDWN = 0x07;

     Delay(10);

     PWRDWN = 0x04;

 }

}

  TICK_ISR()
  {
 

  }

Thank you

Parents
  • Hi,

    The only mode that can wakeup from RFIRQ is standby-mode (PWRDWN=7), as stated in the nRF24LE1 PS chapter 11.2.

    You are entering a lower sleep mode, register retention, where the only clock source running is the 32 kHz source.

    The reason why you need this sequence when in register retention (timer on):

    PWRDWN = 7;
    PWRDWN = 4;
    

    is because the RTC peripheral wakes you up on a "pre start time" as it's named in the datasheet. This means that it wakes up the CPU core a given amount of 32 kHz cycles before the interrupt occurs so that you are able to start up your processes and the 16MHz external crystal for radio-usage.

    Cheers, Håkon

Reply
  • Hi,

    The only mode that can wakeup from RFIRQ is standby-mode (PWRDWN=7), as stated in the nRF24LE1 PS chapter 11.2.

    You are entering a lower sleep mode, register retention, where the only clock source running is the 32 kHz source.

    The reason why you need this sequence when in register retention (timer on):

    PWRDWN = 7;
    PWRDWN = 4;
    

    is because the RTC peripheral wakes you up on a "pre start time" as it's named in the datasheet. This means that it wakes up the CPU core a given amount of 32 kHz cycles before the interrupt occurs so that you are able to start up your processes and the 16MHz external crystal for radio-usage.

    Cheers, Håkon

Children
No Data
Related