<?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>Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/122983/unexpected-wakeup-from-hibernate-mode-via-shphld-with-rising-edge-configuration-on-npm2100</link><description>Hi Nordic team, 
 I&amp;#39;m using the nPM2100 PMIC in my design to power a microcontroller. The microcontroller sets the nPM2100 into Hibernate mode , and a vibration sensor connected to the SHPHLD pin is used to wake the system on movement. 
 
 
 The vibration</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 10 Dec 2025 16:00:21 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/122983/unexpected-wakeup-from-hibernate-mode-via-shphld-with-rising-edge-configuration-on-npm2100" /><item><title>RE: Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/thread/556719?ContentTypeID=1</link><pubDate>Wed, 10 Dec 2025 16:00:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4537a4a4-17e8-4090-9de1-8f94d0ecec35</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Thanks Philipp. we will try to clarify this mechanism on the next version of Product documentation.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/thread/556236?ContentTypeID=1</link><pubDate>Thu, 04 Dec 2025 12:57:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c3be5e91-f066-4140-a692-1118672458bb</guid><dc:creator>vielleicht</dc:creator><description>&lt;p data-start="558" data-end="646"&gt;Hello,&lt;br data-start="564" data-end="567" /&gt; thank you for the time you spend on the clarification and for reproducing the behaviour on your side.&lt;/p&gt;
&lt;p data-start="648" data-end="750"&gt;Based on your feedback and our own testing, we now understand the SHPHLD wake-up mechanism as follows:&lt;/p&gt;
&lt;ol data-start="752" data-end="1349"&gt;
&lt;li data-start="752" data-end="914"&gt;
&lt;p data-start="755" data-end="914"&gt;&lt;strong data-start="755" data-end="814"&gt;The SHPHLD input is synchronized and debounce-filtered.&lt;/strong&gt;&lt;br data-start="814" data-end="817" /&gt; This means the pin is sampled and evaluated on its &lt;em data-start="871" data-end="878"&gt;level&lt;/em&gt;, not on an asynchronous transition.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="916" data-end="1139"&gt;
&lt;p data-start="919" data-end="1139"&gt;&lt;strong data-start="919" data-end="1019"&gt;If the pin is already in the active level when entering Hibernate, the nPM2100 wakes immediately&lt;/strong&gt;, even though no edge occurred. This confirms that the mechanism is fundamentally &lt;strong data-start="1101" data-end="1120"&gt;level-triggered&lt;/strong&gt;, not event-driven.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1141" data-end="1349"&gt;
&lt;p data-start="1144" data-end="1349"&gt;&lt;strong data-start="1144" data-end="1235"&gt;If the pin changes level during Hibernate, this may look like an edge-triggered wake-up&lt;/strong&gt;, but only because the sampled level changed between sampling points &amp;mdash; not because an actual edge detector exists.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="1351" data-end="1524"&gt;From this, it becomes clear that the wake-up mechanism is &lt;strong data-start="1409" data-end="1431"&gt;always level-based&lt;/strong&gt;, and the apparent &amp;ldquo;edge-triggered&amp;rdquo; behaviour is just the result of comparing sampled levels.&lt;/p&gt;
&lt;hr data-start="1526" data-end="1529" /&gt;
&lt;h3 data-start="1531" data-end="1581"&gt;&lt;strong data-start="1535" data-end="1581"&gt;Important implication (our actual problem)&lt;/strong&gt;&lt;/h3&gt;
&lt;p data-start="1583" data-end="1629"&gt;Because no real edge detection is implemented:&lt;/p&gt;
&lt;ul data-start="1631" data-end="2030"&gt;
&lt;li data-start="1631" data-end="1854"&gt;
&lt;p data-start="1633" data-end="1854"&gt;&lt;strong data-start="1633" data-end="1663"&gt;Short pulses can be missed&lt;/strong&gt;, depending on the sampling and debounce timing.&lt;br data-start="1711" data-end="1714" /&gt; In other words: a signal must remain active for a certain minimum duration to be recognized &amp;mdash; but the required duration is not documented.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1856" data-end="2030"&gt;
&lt;p data-start="1858" data-end="2030"&gt;&lt;strong data-start="1858" data-end="1922"&gt;This also requires reconfiguration before entering Hibernate&lt;/strong&gt;, otherwise the wake-up condition may not match the actual signal state at the moment of entering Hibernate.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="2032" data-end="2122"&gt;This behaviour is critical for system design and should be reflected in the documentation.&lt;/p&gt;
&lt;hr data-start="2124" data-end="2127" /&gt;
&lt;h3 data-start="2129" data-end="2144"&gt;&lt;strong data-start="2133" data-end="2144"&gt;Request&lt;/strong&gt;&lt;/h3&gt;
&lt;p data-start="2146" data-end="2432"&gt;Given these findings, the current datasheet wording (&amp;ldquo;edge-triggered wake-up&amp;rdquo;) is misleading and suggests true edge/event detection, which is not the case.&lt;br data-start="2301" data-end="2304" /&gt; To prevent misinterpretation and debugging issues, &lt;strong data-start="2355" data-end="2411"&gt;could you please update or clarify the documentation&lt;/strong&gt; to explicitly state:&lt;/p&gt;
&lt;ul data-start="2434" data-end="2669"&gt;
&lt;li data-start="2434" data-end="2512"&gt;
&lt;p data-start="2436" data-end="2512"&gt;that SHPHLD wake-up is level-triggered due to synchronization and debounce&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="2513" data-end="2546"&gt;
&lt;p data-start="2515" data-end="2546"&gt;that short pulses may be lost&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="2547" data-end="2594"&gt;
&lt;p data-start="2549" data-end="2594"&gt;that minimum pulse width requirements apply&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="2595" data-end="2669"&gt;
&lt;p data-start="2597" data-end="2669"&gt;and that a fresh configuration may (in some certain cases) be required before entering Hibernate&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="2671" data-end="2739"&gt;Thanks again for your support and for considering these corrections.&lt;/p&gt;
&lt;p data-start="2741" data-end="2768"&gt;Best regards,&lt;br data-start="2754" data-end="2757" /&gt;Philipp&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/thread/556227?ContentTypeID=1</link><pubDate>Thu, 04 Dec 2025 11:40:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c993c4bc-106c-4b94-a42a-80cf153dbb8e</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I have some feedback from team. we managed to simulate the scenario.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Cycling between entry and wakeup from hibernate should work after first configuration. We also have checked that hibernatePT which requires reconfiguration everytime after wakeup (it will reload OTP values).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Wakeup event supposed to be edge or level-triggered? SHPHLD pin is synced and debounce filtered, so it is more like level active. If it was already in wakeup condition and then it is not seen any edges, but if it is not in wake-up condition then you might call it edge triggered.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/thread/555732?ContentTypeID=1</link><pubDate>Fri, 28 Nov 2025 11:44:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2485ea5e-cfe4-4f0c-8e41-379023ebf132</guid><dc:creator>vielleicht</dc:creator><description>&lt;p&gt;Sorry, I misspelled the correct register. Obviously it is 0xC1. But still, I think it is not &amp;quot;edge&amp;quot; detection, like you mentioned, but more like level detection. That&amp;#39;s why I had to implement a work around.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/thread/555369?ContentTypeID=1</link><pubDate>Tue, 25 Nov 2025 11:56:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b960f17d-4b3d-4ae2-a0e1-c8f8a386140f</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;We have few more observation from your first thread.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1764071769043v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;a. The vibration sensor is usually closed, pulling SHPHLD to GND (low) during rest. &amp;nbsp;&lt;strong&gt;Is the sensor output glitchy? Will it require debounce filtering?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;b. The PMIC is configured to wake on a Rising Edge on SHPHLD (via register 0xC2 = 1) Correct&lt;strong&gt;&amp;nbsp;register address 0xC1&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Register&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;0xC2 (&lt;code dir="ltr"&gt;SHPHLD&lt;/code&gt;)&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;instead configures the pull‑up / pull‑down and weak pull‑up current on the SHPHLD pin (RESISTOR, CURR, PULL fields). It does&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;not&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;select the edge.&lt;a href="https://docs.nordicsemi.com/bundle/ps_npm2100/page/_tmp/npm2100/autodita/SHIP/SHPHLD.html" rel="noopener noreferrer" target="_blank"&gt;[SHPHLD reg]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So, to wake on&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;rising edge&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;on SHPHLD you must set&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code dir="ltr"&gt;EDGE = Rising (1)&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;0xC1&lt;/strong&gt;, and then use 0xC2 only to set the desired pull configuration&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/thread/554763?ContentTypeID=1</link><pubDate>Wed, 19 Nov 2025 10:07:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7e17b1cf-5e20-40ae-a86f-68d826532b62</guid><dc:creator>vielleicht</dc:creator><description>&lt;p&gt;Hi. Is there any new information to this? Documentation still uses the edge terminology for wake-up configuration:&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ps_npm2100/page/_tmp/npm2100/autodita/SHIP/WAKEUP.html"&gt;WAKEUP&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/thread/543328?ContentTypeID=1</link><pubDate>Wed, 23 Jul 2025 11:06:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:00c75afa-a46b-4e9a-b494-28c08ac67db4</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I have got some reply from team. After testing the same way developer&amp;nbsp;found both rising and falling edge behave same. If the SHPHLD pin is already in the active state (low for falling/ high for rising), the wakeup happens immediately.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;We don&amp;#39;t think that the SHPHLD behavior can be considered edge triggered in any situation, the Product documentation is misleading using the &amp;quot;edge&amp;quot; terminology, we think it should be regarded as level-triggered at all times / in any configuration&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I would like to provide few more information later.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/thread/542721?ContentTypeID=1</link><pubDate>Thu, 17 Jul 2025 08:26:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:58dd2ab8-c473-44b5-8a96-0f33a94c4771</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Thanks for sharing details to us.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have not found any workaround or register sequence for initializing the edge detection logic between Hybernate Cycle. I have asked team to check if this is a bug. I will come back to you&amp;nbsp;soon.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s summer vacation time here. Please accept apology if there is a bit delayed response.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
&lt;p&gt;BR&lt;/p&gt;
&lt;p&gt;Kazi&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unexpected Wakeup from Hibernate Mode via SHPHLD with Rising-Edge Configuration on nPM2100</title><link>https://devzone.nordicsemi.com/thread/542615?ContentTypeID=1</link><pubDate>Wed, 16 Jul 2025 09:15:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:31672fa7-52e1-4bc5-8db0-8cdae1850be8</guid><dc:creator>vielleicht</dc:creator><description>&lt;p&gt;Additional finding:&lt;/p&gt;
&lt;p&gt;After further testing, I noticed that the very first entry into Hibernate after a cold start behaves as expected &amp;ndash; edge detection on SHPHLD works reliably (tested multiple times).&lt;/p&gt;
&lt;p&gt;However, if the PMIC wakes from Hibernate via SHPHLD and I put the system back into Hibernate mode (without cold reset), then:&lt;/p&gt;
&lt;p&gt;- The system immediately wakes again via SHPHLD, even though the SHPHLD pin remains stable (physical switch attached).&lt;br /&gt;- This suggests that SHPHLD edge detection logic may not reinitialize correctly after a prior SHPHLD-based wake event or I&amp;#39;m missing the spot.&lt;/p&gt;
&lt;p&gt;This points to a potential issue with edge detection state retention or misbehavior in the internal logic between Hibernate transitions. It seems that the first Hibernate cycle works correctly, but subsequent cycles behave as if the previous wake source is &amp;quot;stuck&amp;quot;.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m happy to provide register dumps or reinitialization sequences if needed.&lt;/p&gt;
&lt;p&gt;Would appreciate clarification if this is known/expected, or if a specific sequence is required to fully reset the SHPHLD wake logic.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>