I'm evaluating nF51822 for my application which needs to wake up from either a button press or an interrupt pin singal from an accelerometer. Normally this can be done with enabling GPIO interrupt while putting the CPU to sleep, but from nRF51 manual it seems the GPIO "pin sensing" feature won't generate an interrupt like traditional MCUs (correct?); GPIOTE is needed to generate such an event as done in app_button.c
And a discussion here says a hardware issue that can cause ~1mA in sleep mode if GPIOTE is enabled. devzone.nordicsemi.com/.../power-use-with-gpiote-is-too-high
This worries me... I can't affort such a sleeping current. Could someone kindly show me a way around this issue? BTW, SoftDevice is needed.
@Nordic: if I still want to use nRF51 for a project that plans to go MP in the next 6 month, can I expect the issue will be fixed by then?
It's only the CONFIG channels in GPIOTE that will cause high current consumption, and the chip can always be woken up by using the PORT event instead of the CONFIG channels. This means that it's perfectly…
I thought for a while... maybe an external solution is possible? But can the chip be waken up from an external source without involving GPIOTE?
For example, how about (mis)using the CTS/RTS pins to fake a successful TX/RX and use one of the EVENTS generated? Leaving the UART running still needs ~0.2mA, though.
It's only the CONFIG channels in GPIOTE that will cause high current consumption, and the chip can always be woken up by using the PORT event instead of the CONFIG channels. This means that it's perfectly possible to achieve low sleep current and wake on a GPIOTE.
The port event is what is behind app_button, but Håkon have also made a quick example here that shows how it can be used. The summary is just to set the SENSE field in PIN_CNF as wanted for the appropriate pin.
Great news! Thanks for the clarification.
I'm sure there are many potential users who are not on your official support yet would find it userful.
Just in case it's unclear: The regular support portal is open to anyone, and you don't need to be a special customer in any way to post cases there. However, if there isn't any secrecy regarding your question, we do prefer to answer it here, since it potentially also benefits other users! :)