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

GPIOTE current consumption in nrf52840

Hi

This is about missing information about current consumption for the GPIOTE peripheral in the v1.0 product specification for the nrf52840.

See section 6.10.5 it is empty.

I have been working with Nordic chips since the early days of nrf51. In the product sheet for the nrf51 that same current in input mode was 22uA and so avoided it like the plague.

Only now have I realised that the nrf52832 that same mode is now typically 0.1uA  -- brilliant !!

I need you to please confirm that the nrf52840 has similar 0.1uA current consumption.

Look forward to hearing from you


Regards

Mahendra

  • Hi Mahendra,

    As you have seen some power consumption numbers are missing. This is something we are working on, but the GPIOTE numbers has not been prioritized yet. I would expect it to be similar to the nRF52832 as the IP is similar, except errata 89 was fixed on nRF52840. However I cannot give any promises before this is put in the PS. I am sorry for the inconvenience.

  • Hi ,

    Were you able to get to these numbers? If so would highly appreciate getting these numbers.

    Thanks in advance.

    Regards,

    Ananth

  • Unfortunately, we still have not prioritized to measure these numbers. But as already stated I expect these to be comparable to the nRF52832 GPIOTE current consumption numbers.

  • We see an increased power consumption at around 26uA when enabling GPIOTE IN events in our application with a NRF52840_xxAA_REV1 chip.

    We use nRF5_SDK_15.2.0_9412b96 and the following code:

        // reg is NRF_P1, pin is 13
        reg->PIN_CNF[pin] &= ~(GPIO_PIN_CNF_DIR_Msk | GPIO_PIN_CNF_INPUT_Msk);
        reg->PIN_CNF[pin] |=
            (GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
            | (GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos);

        reg->PIN_CNF[pin] &= ~GPIO_PIN_CNF_PULL_Msk;
        reg->PIN_CNF[pin] |= GPIO_PIN_CNF_PULL_Pulldown << GPIO_PIN_CNF_PULL_Pos;

        // slot is 0, portpin is 0x0100 + 13
        nrf_gpiote_te_default(slot);

        nrf_gpiote_event_configure(slot, portpin, NRF_GPIOTE_POLARITY_LOTOHI);

        NRF_GPIOTE->EVENTS_IN[slot] = 0;
        nrf_gpiote_event_enable(slot);
        nrf_gpiote_int_enable(1 << slot);


    With this code our application use around 32uA. After removing the call to nrf_gpiote_event_enable, it uses around 5uA. Looking at the graph, I see that it is the baseline that is increased.

    During the measurement we don't trigger the pin and the interrupt isn't called.

    I've also tried the same thing on port P0.11 with the same result.

    Is this an expected power increase?

  • Hi,

    Please register a new question with your inquiry. Regardless I don't think I would configure the pin with pull down, as I would expect the external unit to control the pin..

Related