<?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>Increased power consumption when using GPIOTE on nrf52840</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/64644/increased-power-consumption-when-using-gpiote-on-nrf52840</link><description>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-&amp;gt;PIN_CNF[pin] &amp;amp;= ~(GPIO_PIN_CNF_DIR_Msk</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 10 Aug 2020 12:22:24 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/64644/increased-power-consumption-when-using-gpiote-on-nrf52840" /><item><title>RE: Increased power consumption when using GPIOTE on nrf52840</title><link>https://devzone.nordicsemi.com/thread/263819?ContentTypeID=1</link><pubDate>Mon, 10 Aug 2020 12:22:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:482293a9-f111-4d89-902d-c3c5c8b238ab</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Yes, this is an expected power increase. For low power operation, you may consider using GPIOTE PORT events instead.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here is typ. sleep current with IN vs PORT events from the PS (&lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/_tmp/graviton/autodita/CURRENT/parameters.i_sleep.html"&gt;link&lt;/a&gt;): &lt;/strong&gt;&lt;/p&gt;
&lt;table border="1" cellpadding="4" cellspacing="0" frame="border" rules="all" summary=""&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e47" rowspan="1"&gt;I&lt;sub&gt;ON_RAMON_GPIOTE&lt;/sub&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e50" rowspan="1"&gt;
&lt;p&gt;System ON, full 256 kB RAM retention, wake on GPIOTE input (event mode)&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e53" rowspan="1"&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e56" rowspan="1"&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e59" rowspan="1"&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e63" rowspan="1"&gt;&lt;span&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e66" rowspan="1"&gt;&lt;span&gt;17.37&lt;/span&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e69" rowspan="1"&gt;&lt;span&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e72" rowspan="1"&gt;µA&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e75" rowspan="1"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e47" rowspan="1"&gt;I&lt;sub&gt;ON_RAMON_GPIOTEPORT&lt;/sub&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e50" rowspan="1"&gt;
&lt;p&gt;System ON, full 256 kB RAM retention, wake on GPIOTE PORT event&lt;/p&gt;
&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e53" rowspan="1"&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e56" rowspan="1"&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e59" rowspan="1"&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e63" rowspan="1"&gt;&lt;span&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e66" rowspan="1"&gt;&lt;span&gt;2.36&lt;/span&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e69" rowspan="1"&gt;&lt;span&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e72" rowspan="1"&gt;µA&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d4783e75" rowspan="1"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;And an explanation of the difference between PORT and IN events from the GPIOTE driver documentation:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.0/hardware_driver_gpiote.html#gpiote_in"&gt;Using a dedicated IN_EVENT: When using a dedicated IN_EVENT, one pin is assigned to an event. Only a limited number of pins can be sensed this way because there is a limited number of TASK/EVENT channels. When an IN_EVENT is enabled, it requests the high frequency clock. Therefore, this method is not suitable for scenarios where the system sleeps for a long period of time, expecting to be waken up by a pin level change. This method supports detection of toggling, low-to-high, and high-to-low transition.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.0/hardware_driver_gpiote.html#gpiote_in"&gt;Using a PORT event: A PORT event is a single event that is triggered whenever the value of any of the input pins that have sensing enabled changes. Pins can be configured to sense low-to-high or high-to-low transition. Toggle sensing is emulated in the driver by changing the sense configuration whenever a PORT event for a given pin is detected. Using a PORT event requires only a low frequency clock. Therefore, this method is suitable for scenarios where the application expects to be inactive for a long period of time, waiting for a pin level change. The event can be shared by multiple pins; therefore it should be used for sensing slowly changing signals only.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>