<?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>Minimum GPIOTE &amp;quot;low accuracy&amp;quot; pulse width</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/22622/minimum-gpiote-low-accuracy-pulse-width</link><description>I have a device with a programmable output pulse width for its data ready signal. I need to be able to reliable receive the pulse so I don&amp;#39;t miss any interrupts, and I&amp;#39;d like to do that in the minimum possible time so I can send the device a &amp;quot;power down</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 20 Jun 2024 10:48:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/22622/minimum-gpiote-low-accuracy-pulse-width" /><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/489682?ContentTypeID=1</link><pubDate>Thu, 20 Jun 2024 10:48:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:065fd773-83eb-49f0-b898-48d639013ab5</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You are posting in a very old thread. Could you please create a new ticket on this matter?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/489652?ContentTypeID=1</link><pubDate>Thu, 20 Jun 2024 09:11:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4a4d1068-b5bd-4c54-9c0c-9cb6ce8f62e9</guid><dc:creator>koldybin</dc:creator><description>&lt;p&gt;Please tell me why the interrupt may not work? If GPIOTE_CONFIG_IN_SENSE_LOTOHI(true) everything works correctly, but the current consumed is 20 microamps more. If GPIOTE_CONFIG_IN_SENSE_LOTOHI(false), then the interrupt does not occur. Increasing the pulse duration to 100 milliseconds did not bring any results. Apart from this, nothing changes in the code. What could be the reason?&lt;/p&gt;
&lt;p&gt;Configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NRF52832&lt;/li&gt;
&lt;li&gt;Softdevice S132&lt;/li&gt;
&lt;li&gt;SDK 17.0.0_9d13099&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;thanks in advance&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88988?ContentTypeID=1</link><pubDate>Fri, 16 Jun 2017 15:28:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3b3d9261-8f96-46de-9a51-60ddb3ea8135</guid><dc:creator>Julie H</dc:creator><description>&lt;p&gt;Kristin -&lt;/p&gt;
&lt;p&gt;Thanks. That&amp;#39;s what I&amp;#39;d suspected, but with other development tasks on my plate I&amp;#39;d not gotten around to it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88987?ContentTypeID=1</link><pubDate>Fri, 16 Jun 2017 07:03:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c7b1f330-2378-4e90-9367-393564313861</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;The updated answer explains why a longer pulse is required for PORT events, it is related to the GPIOTE IRQ handling in nrf_grv_gpiote.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88991?ContentTypeID=1</link><pubDate>Thu, 15 Jun 2017 15:02:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9131b3df-0db6-4e91-91b8-e7025390c963</guid><dc:creator>Julie H</dc:creator><description>&lt;p&gt;Kristin - I&amp;#39;m using this code to configure the pin -- GPIOTE_CONFIG_IN_SENSE_LOTOHI(false). That sets SENSE to NRF_GPIOTE_POLARITY_LOTOHI, which is the correct value for what you&amp;#39;re asking.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t believe the problem is the chip, but the SoftDevice / SDK code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88989?ContentTypeID=1</link><pubDate>Thu, 15 Jun 2017 11:47:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e8d5d980-15d6-4f75-8e2b-dcf7d88c00ea</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;The purpose of the example was to test the minimum pulse width required to wake up the chip.&lt;/p&gt;
&lt;p&gt;Another way, perhaps the best way to test the minimum pulse width needed for waking up the chip, is to use the NRF_GPIO-&amp;gt;LATCH register. For a pin set in SENSE mode, the latch register will register when there has been a signal that will wake up the chip.  This can be used to determine the shortest pulse width required to wake up the chip.&lt;/p&gt;
&lt;p&gt;Could you test that, and check if up 60 us is required?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88985?ContentTypeID=1</link><pubDate>Tue, 13 Jun 2017 15:55:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cfed94f6-2a10-4b18-a6c0-b51c63525148</guid><dc:creator>Julie H</dc:creator><description>&lt;p&gt;3.3 volts with a 40ns or so rise time.&lt;/p&gt;
&lt;p&gt;Please keep in mind - we&amp;#39;re not trying to output a signal and I suspect the GPIOTE PORT interrupt -&amp;gt; PPI silicon path length is probably better handled and more responsive.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t have the page in front of me, but I do recall that there are comments regarding &amp;quot;low accuracy&amp;quot; mode which indicates it may have issues with short duration signals.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88990?ContentTypeID=1</link><pubDate>Tue, 13 Jun 2017 12:34:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4f19182f-3860-4bf6-8990-60b1d59253cb</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;What is the voltage from the external device when generating a wake-up signal?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88986?ContentTypeID=1</link><pubDate>Tue, 13 Jun 2017 09:32:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7e6e3973-f8bc-49cb-b7c9-6ea8076dd9e5</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;I have updated my answer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88993?ContentTypeID=1</link><pubDate>Fri, 09 Jun 2017 15:12:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3daacc80-d7b7-420a-9a5a-e1d9f97b21c5</guid><dc:creator>Julie H</dc:creator><description>&lt;p&gt;No. The main loop does have the chip executing WFI, but since GPIOTE is based on a PORT interrupt, the chip should awaken from WFI and service PORT interrupt.&lt;/p&gt;
&lt;p&gt;As an aside, the pin is being triggered on the rising edge, so the GPIOTE driver should be able capture the state of the port and defer processing if the soft device were in the middle of something.&lt;/p&gt;
&lt;p&gt;As for 50-60uS, allowed to run long enough, some interrupts were requiring over 120uS for the transition to be captured.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88994?ContentTypeID=1</link><pubDate>Fri, 09 Jun 2017 14:29:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:586a6e21-1171-4551-b343-ccf7ea87c1c7</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;Okay, I see. In low accuracy mode, is the chip in system OFF?  If so, the chip will have to wake up. However, 50-60 uS sounds like quite a bit.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88992?ContentTypeID=1</link><pubDate>Thu, 08 Jun 2017 13:37:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1bb34732-f502-4958-95de-67dd66de84d4</guid><dc:creator>Julie H</dc:creator><description>&lt;p&gt;Kristin -&lt;/p&gt;
&lt;p&gt;Thanks for the response, but this is for handling an input signal from an external device, not for generating an output signal.&lt;/p&gt;
&lt;p&gt;I have an external chip which performs data acquisition. Once every 100ms it asserts its own, external to the nRF52840, &amp;quot;Ready&amp;quot; signal. That signal is connected to a GPIO pin. When that signal is asserted, data must be retrieved or it will be lost.&lt;/p&gt;
&lt;p&gt;The issue is that if I use &amp;quot;high accuracy&amp;quot;, which consumes more power, the &amp;quot;Ready&amp;quot; signal pulse can be as short as 2uS and the interrupt will be posted to the ISR typically within 10uS. In &amp;quot;low accuracy&amp;quot; mode, which uses &amp;quot;PORT&amp;quot; interrupts instead of &amp;quot;PIN&amp;quot; interrupts and consumes less power, the &amp;quot;Ready&amp;quot; pulse must be more than 50 or 60uS long just to guarantee that the 0 -&amp;gt; 1 transition on that GPIO pin will even be recognized and generate an interrupt at all.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum GPIOTE "low accuracy" pulse width</title><link>https://devzone.nordicsemi.com/thread/88984?ContentTypeID=1</link><pubDate>Thu, 08 Jun 2017 07:39:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:99f65515-6cc5-4b29-b845-3a9e291e03d4</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;&lt;strong&gt;Updated answer 16.06.2017:&lt;/strong&gt;
The reason why a longer pusle width is required for GPIOTE PORT events
compared with PIN events is the following:
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;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;/p&gt;
&lt;p&gt;Therefore, since the GPIOTE handler checks the state of each pin for PORT events,
the triggered pin has to stay high (or low) until that operation is finished.&lt;/p&gt;
&lt;p&gt;If you only need to know that a PORT event occurred it is not necessary to check
the status of each gpio.&lt;/p&gt;
&lt;p&gt;I would recommend you to modify GPIOTE_IRQHandler so that it fits your application
and doesn&amp;#39;t check the status of each gpio, just reports that a PORT event occurred.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>