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

Sleep specific numbers for nRF52833

Hi Team,
We wanted to verify Sleep current numbers for nRF52833 SoC based custom development kit.
Is there any readily available firmware to verify these numbers?
Thanks,
venkatesh
Parents
  • We don't have FW for all of the mentioned numbers.

    the ble_app_pwr_profiler example starts out in system OFF mode (IOFF_RAMOFF_RESET) and after pushing button 1 the sleep current between the BLE events will equal the ION_RAMON_RTC.

    Other than that the system ON idle current can be easily checked by just entering a __WFE() loop in main, without initializing anything. You can start with the peripheral/blinky example in the SDK

    int main(void){
      for(;;){
        __WFE();
      }
    }

    Any specific numbers you are interested in?

  • Hi Stian,

    Thanks for the information but we would like to know 

    ION_RAMON_EVENT 

    ION_RAMON_GPIOTE 
    ION_RAMON_GPIOTEPORT 
    What is the significance of wake on any event?
    What is the symbol for system ON idle current in above attached screenshot?
    Thanks,
    venkatesh
  • ION_RAMON_EVENT is the same as System ON idle. In system on idle the the WFE (Wait For Event) has been called, so the CPU is in IDLE mode, and waking on any event (interrupt).

    This will give you the ION_RAMON_EVENT current:

    int main(void){
      for(;;){
        __WFE();
      }
    }

    ION_RAMON_GPIOTE  (waking on the GPIOTE IN event):

    #define PIN 13
    int main(void){
      NRF_GPIO->PIN_CNF[PIN] = 0xC; //input, pullup
      NRF_GPIOTE->CONFIG[0] = 1 | (PIN << 8); // configure IN event
      for(;;){
        __WFE();
      }
    }

    ION_RAMON_GPIO (waking on GPIO PORT event)

    #define PIN 13
    int main(void){
      NRF_GPIO->PIN_CNF[PIN] = 0x3000C; //input, pullup, sense low
      for(;;){
        __WFE();
      }
    }

Reply
  • ION_RAMON_EVENT is the same as System ON idle. In system on idle the the WFE (Wait For Event) has been called, so the CPU is in IDLE mode, and waking on any event (interrupt).

    This will give you the ION_RAMON_EVENT current:

    int main(void){
      for(;;){
        __WFE();
      }
    }

    ION_RAMON_GPIOTE  (waking on the GPIOTE IN event):

    #define PIN 13
    int main(void){
      NRF_GPIO->PIN_CNF[PIN] = 0xC; //input, pullup
      NRF_GPIOTE->CONFIG[0] = 1 | (PIN << 8); // configure IN event
      for(;;){
        __WFE();
      }
    }

    ION_RAMON_GPIO (waking on GPIO PORT event)

    #define PIN 13
    int main(void){
      NRF_GPIO->PIN_CNF[PIN] = 0x3000C; //input, pullup, sense low
      for(;;){
        __WFE();
      }
    }

Children
Related