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

Leakage current on GPIOs for switches/buttons?

We have a product that uses nrf51422_CE_AA, Revision 3, 256KB ROM, 16KB RAM, PCA10028, SDK 8.0.0, S110. We have sold over 8000 devices of our first product. Currently we are working on our second product with same NRF IC. We have a requirement where we have to connect 9 buttons and a potentiometer/encoder. I have read from the blogpost on "minimize current consumption" that there will be a leakage current on GPIOs and GPIOTEs. We have higher consumption in our first product, even though the peripherals (8 sensors/actuators) are disabled but physically connected to GPIO.

Will connecting 9 buttons to 9 GPIOs be a power efficient solution or connecting them via shift register? Could you please elaborate on leakage currents on GPIOs and GPIOTEs?

  • Have you established whether the current consumption is caused purely by the external components or whether the nRF51 has additional current demand when you have the external devices.

    Did you measure the current on a GPIO pin with a button etc connected?

  • @rogerclark: I'm investigating the power consumption on the first product. My question is about second product that simply will have 9 buttons. I have read from the above mentioned nordic blog post that GPIOs and GPIOTEs could be reason of excessive current consumption. I wanted a clarification about that statement in the post.

  • The excessive current consumption in the blog post, mainly related to the processor being woken up be noise on a GPIO as an input of a GPIOTE event, not from direct leakage of current.

    I think the reason the blog suggested that you disconnect all GPIO if you had problems with current, because you could have a situation where you have a switch on a GPIO connected to GND and have an internal pullup enabled on that pin, hence wasting a lot of current through the internal pullup.

    IFIK, assuming you are not doing something like that, the current taken by a GPIO should not be a problem.

    But I think you should wait for an official Nordic semi response to this.

  • What Roger says in the comment is correct. If you configure the GPIO as input, and just connect a button to it you will not have any leakage currents. However if you are using pullups on the buttons, it will flow current whenever you push the button (to GND) equal to VCC/13k.

Related