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

maximum GPIO interrupts nRF52

Hi,

We would like to use NRF52832 chipset for our project, and we need to configure 11 pins as GPIO interupt , Is this possible ? How many pins we can have as interrupt at a time ?

Thanks a lot in advance ,

Parents
  • Hi,

    This is possible using the PORT event. Using the PORT event / DETECT signal you can actually configure all gpio pins as interrupts. There are some drawbacks using the PORT event because it is shared between all gpio pins configured for it. As it is too complicated to explain it all here I recommend that you read the GPIO and GPIOTE chapters in the Product Specification.

    Alternative to using PORT event is to use IN event. This can only be configured for 8 pins as there are only 8 channels in the GPIOTE peripheral. IN event is also more current demanding than PORT event as it requires certain resources like the HFCLK. PORT event use almost no power and can be used when device is in system OFF sleep mode (deep sleep).

    With the SDK driver you should configure for so called "low accuracy" for using PORT event (for example GPIOTE_CONFIG_IN_SENSE_TOGGLE(false), where false means low accuracy). See also this post for more information about the PORT event and SDK driver (on nRF51, but still valid for nRF52).

  • If you configure a pin as low_accuracy it will wake up the CPU on level change, so all pins can be configured as a wake up source. In the driver you have to change the GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS to the number of wake up pins (the examples in SDK use 4 buttons on DK as wakeup).

Reply Children
No Data
Related