<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/39366/wake-up-from-gpio-pin</link><description>Hi, 
 I am struggling with a low power consumption solution for waking the NRF52832 with our product which is using a third part module. 
 Currently our product total power consumption is 20uA during nrf_pwr_mgmt_run() (which is fine for now, it has allot</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 16 Oct 2019 18:13:21 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/39366/wake-up-from-gpio-pin" /><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/215373?ContentTypeID=1</link><pubDate>Wed, 16 Oct 2019 18:13:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:66e8634a-27c9-4336-9c51-a15748febbfe</guid><dc:creator>Wael</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;a class="internal-link view-user-profile" href="https://devzone.nordicsemi.com/members/bjorn_2d00_spockeli"&gt;bjorn-spockeli&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am having an issue where if I change the&amp;nbsp;&lt;span&gt;NRFX_GPIOTE_CONFIG_IN_SENSE_HITOLO(true) to&amp;nbsp;NRFX_GPIOTE_CONFIG_IN_SENSE_HITOLO(false), my interrupt handler gets triggered right away. the pin starts low but the handler should NOT be getting triggered since the pin did NOT transition from high to low. if i run the app with&amp;nbsp;NRFX_GPIOTE_CONFIG_IN_SENSE_HITOLO(true), everything functions as it should. I am trying to lower my power consumption and I am using SDK 15.0.0 and S132. I have been at this problem for days and any help would be greatly appreciated.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/153843?ContentTypeID=1</link><pubDate>Mon, 22 Oct 2018 13:31:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb655c46-35e3-4e8f-b814-cff34104807e</guid><dc:creator>mmmark84</dc:creator><description>&lt;p&gt;We added a little RC delay to it. should work for us.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/153037?ContentTypeID=1</link><pubDate>Tue, 16 Oct 2018 11:11:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:463db441-80d8-4a20-a0d9-aab515e4cb07</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;OK, you do not enter the&amp;nbsp;&lt;span&gt;GPIOTE_IRQHandler&amp;nbsp;at all when using the port event? IF that is the case then yes, you will have to add some external circuitry.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152900?ContentTypeID=1</link><pubDate>Mon, 15 Oct 2018 13:28:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:325e63ec-1701-4977-9810-b9945e525c6c</guid><dc:creator>mmmark84</dc:creator><description>&lt;p&gt;with the IN event it detected just fine. With the port event, it misses it all the time, even with the BLE stack disabled. So I guess we dont have a choice to make it a delayed flank with some RC components.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152717?ContentTypeID=1</link><pubDate>Fri, 12 Oct 2018 14:09:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e33f06f4-c8fc-472d-820b-35af48f38825</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;10uS is the number I got from R&amp;amp;D, but they also stated that its conservative.&amp;nbsp;&amp;nbsp;It was chosen as the recommended pulse length in order to avoid marginal designs where external factors reduce the actual pulse width seen by the device.&lt;br /&gt;&lt;br /&gt;Were you able to detect the 10uS pulse with the IN event enabled or do you see the same behaviour as with the Port event?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152692?ContentTypeID=1</link><pubDate>Fri, 12 Oct 2018 12:42:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e90c7918-6b6c-41e0-ae83-d08bf0889a0f</guid><dc:creator>mmmark84</dc:creator><description>&lt;p&gt;thats..... pretty insanly long... Our old product has a LPC11E68 Cortex M0+ MCU which this 10uS works fine with and is able to set wakeup events that know what pin caused the wakeup. Is there no way we can have something similar on NRF52832? Or is reading NRF_GPIO -&amp;gt; LATCH maybe an option when we resume from nrf_pwr_mgmt_run() to know this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152654?ContentTypeID=1</link><pubDate>Fri, 12 Oct 2018 09:45:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:89de3e6d-e974-450e-906b-c92f14ccacc1</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;&lt;span&gt;The minimum pulse width needed trigger DETECT Signal(which in turn will trigger the SENSE signal) is around 10uS. However, if you&amp;#39;re using the GPIOTE driver then&lt;/span&gt;&amp;nbsp;a longer pusle width is required for GPIOTE PORT events compared with PIN events. This is because when using port events, GPIOTE_IRQHandler in nrf_drv_gpiote.h checks the status of each gpio to figure out which gpio that was trigged when the PORT event occurred.&lt;/p&gt;
&lt;p&gt;Therefore, since the GPIOTE handler checks the state of each enabled&amp;nbsp; pin for PORT events, the triggered pin has to stay high (or low) until that operation is finished.&lt;/p&gt;
&lt;p&gt;It might be possible to modify the GPIOTE_IRQHandler so that it fits your application e.g. checks the pins with the shortest pulse first or similar.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;Note: Since the radio has higher priority than GPIOTE when using the softdevice, software processing of the GPIOTE interrupt is delayed until the radio has finished its operations.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152648?ContentTypeID=1</link><pubDate>Fri, 12 Oct 2018 09:32:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2ccfeb4f-37bd-48a0-9258-17651f53b797</guid><dc:creator>mmmark84</dc:creator><description>&lt;p&gt;What is the minimal time that my pin needs to be low, when using the port mode? We have a device that generates a 10uS low pulse for which we need to wake from. We are also running SD 132 on the module. Seems it is missing this pulse?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152523?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 13:30:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:68c714f1-9e72-41e3-9203-67e1d73784ad</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Ok, then you might have to add some button debouncing in SW or in HW to mitigate this.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152512?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 13:08:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1fa0b7e8-aa8a-4829-b95b-6c7aad7273e4</guid><dc:creator>mmmark84</dc:creator><description>&lt;p&gt;Yes, that was the trick! Thank you too&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152507?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 12:58:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8fa2fbe8-e906-446f-b271-415a8fafe4ad</guid><dc:creator>mmmark84</dc:creator><description>&lt;p&gt;When I use the button to test it and debug it, im getting it all the time when I press and hold it (at least a couple of times when I run after the breakpoint in the button handler function).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152504?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 12:56:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2580ad87-0920-4fe9-9614-bb392e611faa</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Ok, so you get&amp;nbsp;&lt;span&gt;NRF_GPIOTE_POLARITY_HITOLO two times ?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152500?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 12:52:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74f7d5c5-73d9-4f9e-b5be-bcd0d563ab1b</guid><dc:creator>mmmark84</dc:creator><description>&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/Naamloos.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Seems fine for an other pin I just tested, maybe its due to debugging and using a button which does allot of bouncing when pressing it or something.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152494?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 12:29:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0bc51569-66c3-42a9-ad4b-88fc32db94cd</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Ok, let me know if you run into any issues with shorter pulses. Hmm, is the sense configuration set to NRF_GPIOTE_POLARITY_HITOLO and not NRF_GPIOTE_POLARITY_TOGGLE?&amp;nbsp; &amp;nbsp;I guess you can add a check for which type of event that generated the interrupt?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152477?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 11:35:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:882009c1-166d-4a6e-b2da-6472e56529e9</guid><dc:creator>mmmark84</dc:creator><description>&lt;p&gt;Thank you! I tried port mode and that seems to work fine with the button. I hope its usable for our other devices which will generate a shorter pulse.&lt;/p&gt;
&lt;p&gt;The event handler seems to work fine as well now with port mode (however I also get an event when going low-&amp;gt;high...).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152475?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 11:26:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:47d649e4-6809-414e-9dc3-5e1bcdbdf7e8</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;as &lt;a href="https://devzone.nordicsemi.com/members/turboj"&gt;Turbo J&lt;/a&gt; has pointed out, using the IN event to detect a pin change will lead to an increase in the current consumption. This is because the IN event requires the HF clock to be running, i.e. adding about 250uA. The PORT event on the other hand does not require the HF clock to be running and is therefore better suited for low power applications.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You should only have to change NRFX_GPIOTE_CONFIG_IN_SENSE_HITOLO(true) to&amp;nbsp;NRFX_GPIOTE_CONFIG_IN_SENSE_HITOLO(false) in the first code snippet and you should see the current consumption drop significantly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Bj&amp;oslash;rn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wake up from GPIO pin</title><link>https://devzone.nordicsemi.com/thread/152466?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 11:00:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d349c23f-fbb4-420a-a10c-e4c9a63b7a0e</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Look at the errata sheet: The GpioTE IN events pull a lot more current.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Workaround: Use the &amp;quot;port&amp;quot; event (sense bits in PIN_CNF[x] registers), and the NRF_GPIO -&amp;gt; LATCH register to detect which I/O triggered the event.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>