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

nRF52 wakeup time

Hi,

what is the typical or max wake up time of the nRF52 from the RTC or GPIOTE irq (when configured as sense for low level input)?

In my setup, I see a wakeup time of ~13usec from the moment that the nRF52 current consumption is increasing, till the time the RTC irq handler is running.

RTC is running from an external crystal.

Normally I would expect the following wakeup delays till the start of RTC irq handler:

tSTART_HFINT Startup time: 3us

tIDLE2CPU Time from IDLE to CPU execute: 3us

What is the reason that I see 13us and not 6us till the RTC handler starts to execute code?

The wakup time from an external GPIO sense low event that I measure is ~16us.

Regards

Thanassis

Parents
  • Hi

    What about writing directly to NRF_GPIO, have you tried that yet to see if avoiding unnecessary headers reduces the delay. It seems here that the IRQ handler isn't able to set before the PPI event is completed, so I think this is as low of a delay you are going to get using PPI. Try and see if writing directly will cut the delay any more, and I will take a closer look if that doesn't work either.

    Best regards,

    Simon

  • Hi,

    I have already changed to directly writing NRF_GPIO on the last test, but no significant change was observed (less than 1us).

    The delay is from the nRF52832 wakeup time, and exist on both wakeups RTC and GPIOTE. When I disable the WFI command and the processor is not going for sleep, then the GPIOTE irq handler kicks after ~1us from the external event. So the GPIOTE irq & NRF_GPIO pin write is running very fast!

    In the previous test, the PPI sets the GPIOTE pin automatically, but the GPIOTE task clear is done from the code inside of GPIOTE irq.

    If you would like I can attach the Keil project used for this test.

    Best Regards

    Thanassis

Reply
  • Hi,

    I have already changed to directly writing NRF_GPIO on the last test, but no significant change was observed (less than 1us).

    The delay is from the nRF52832 wakeup time, and exist on both wakeups RTC and GPIOTE. When I disable the WFI command and the processor is not going for sleep, then the GPIOTE irq handler kicks after ~1us from the external event. So the GPIOTE irq & NRF_GPIO pin write is running very fast!

    In the previous test, the PPI sets the GPIOTE pin automatically, but the GPIOTE task clear is done from the code inside of GPIOTE irq.

    If you would like I can attach the Keil project used for this test.

    Best Regards

    Thanassis

Children
No Data
Related