<?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>Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/118343/help-reducing-sleep-current-while-keeping-rtc-active</link><description>I’m working on a device using a Nordic chip and the following setup: 
 
 nRF Connect SDK : v2.5.2 
 Toolchains : v2.7.0 
 
 We need to minimize current consumption during sleep while keeping the RTC active so it can wake the device at the appropriate</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 03 Feb 2025 09:54:11 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/118343/help-reducing-sleep-current-while-keeping-rtc-active" /><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/521064?ContentTypeID=1</link><pubDate>Mon, 03 Feb 2025 09:54:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1960b100-f589-448c-ad0b-d766a2a588c1</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;The only thing I can can think of is what you have configured REGOUT0 to?&lt;br /&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf52840/page/power.html"&gt;https://docs.nordicsemi.com/bundle/ps_nrf52840/page/power.html&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf52840/page/uicr.html#ariaid-title69"&gt;https://docs.nordicsemi.com/bundle/ps_nrf52840/page/uicr.html#ariaid-title69&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Make sure REGOU0 is&amp;nbsp;&amp;lt;VDDH-0.3V.&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/520853?ContentTypeID=1</link><pubDate>Fri, 31 Jan 2025 12:02:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b7199762-fadf-41b4-9140-d345b3e580cf</guid><dc:creator>Arthur J Sary</dc:creator><description>&lt;p&gt;Hello Kenneth,&lt;/p&gt;
&lt;p&gt;Thank you so much for the advice regarding the HFCLK. Disabling it once I finish sampling really resolved the high current issue, and I&amp;rsquo;m now seeing about &lt;strong&gt;2.9 &amp;micro;A&lt;/strong&gt; during sleep. However, I&amp;rsquo;ve encountered another related challenge.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m using a &lt;strong&gt;3.7V LiPo battery&lt;/strong&gt; (hence &lt;strong&gt;High Voltage&lt;/strong&gt; mode), but when testing on a bench power supply, I&amp;rsquo;ve noticed that the sleep current varies significantly depending on the supply voltage. Here are the sleep current measurements I observed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;3.6V:&lt;/strong&gt; ~3 &amp;micro;A&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3.3V:&lt;/strong&gt; ~50 &amp;micro;A&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3.0V:&lt;/strong&gt; ~700 &amp;micro;A&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To gather these measurements, I perform a single cycle test: I remove power from the system, change the power supply voltage, then re-energize at the new voltage.&lt;/p&gt;
&lt;p&gt;Do you have any suggestions on what might be causing these discrepancies at different voltages, and how I can address them? Thank you for any guidance you can provide.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/520444?ContentTypeID=1</link><pubDate>Tue, 28 Jan 2025 17:07:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d0752992-3c2e-4bc5-9f8e-24ec12008e70</guid><dc:creator>Kenneth</dc:creator><description>[quote user="Arthur J Sary"]Regarding Bluetooth, I haven’t found any examples in the nRF Connect SDK or Zephyr that specifically use &lt;code&gt;bt_disable()&lt;/code&gt;. Could you advise on the proper way to fully turn off Bluetooth to minimize power consumption when it’s not needed?[/quote]
&lt;p&gt;There is no need to disable bt to&amp;nbsp;achieve the 2.7uA idle current. Actually even with BT active in connection or advertisment, you will still get 2.7uA in between BLE events.&lt;/p&gt;
[quote user="Arthur J Sary"]Additionally, I use the high-frequency clock (HFCLK) for sampling during normal operation. I’m enabling it with the code snippet below. How should I properly turn off or release the HFCLK once I’m done, to reduce power consumption further?[/quote]
&lt;p&gt;Starting the HFCLK will likely cause the 400-500uA you see. Based on the code snippet you shared, I would expect&amp;nbsp;onoff_request() has an&amp;nbsp;onoff_release() api.&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/520438?ContentTypeID=1</link><pubDate>Tue, 28 Jan 2025 16:38:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e0a6be88-fdd5-48d9-9496-2752b89e3547</guid><dc:creator>Arthur J Sary</dc:creator><description>&lt;p&gt;Hello Kenneth,&lt;/p&gt;
&lt;p&gt;When I mentioned &amp;ldquo;deep sleep,&amp;rdquo; I was referring to a low-power, system-on mode with the RTC active. I&amp;rsquo;ve tested disabling the RX lines for any unneeded UART interfaces, and I&amp;rsquo;m also using &lt;code&gt;pm_device_action_run(...)&lt;/code&gt; to suspend all the serial peripherals, but I&amp;rsquo;m still seeing around 450 &amp;micro;A.&lt;/p&gt;
&lt;p&gt;Regarding Bluetooth, I haven&amp;rsquo;t found any examples in the nRF Connect SDK or Zephyr that specifically use &lt;code&gt;bt_disable()&lt;/code&gt;. Could you advise on the proper way to fully turn off Bluetooth to minimize power consumption when it&amp;rsquo;s not needed?&lt;/p&gt;
&lt;p&gt;Additionally, I use the high-frequency clock (HFCLK) for sampling during normal operation. I&amp;rsquo;m enabling it with the code snippet below. How should I properly turn off or release the HFCLK once I&amp;rsquo;m done, to reduce power consumption further?&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;

static int enable_high_frequency_clock(void)
{
	int err = 0;
	int res = 0;
	struct onoff_manager *clk_mgr;
	struct onoff_client clk_cli;

	clk_mgr = z_nrf_clock_control_get_onoff(CLOCK_CONTROL_NRF_SUBSYS_HF);
	if (!clk_mgr)
	{
		LOG_ERR(&amp;quot;Unable to get the Clock manager&amp;quot;);
		return -ENXIO;
	}

	sys_notify_init_spinwait(&amp;amp;clk_cli.notify);

	err = onoff_request(clk_mgr, &amp;amp;clk_cli);
	if (err &amp;lt; 0)
	{
		LOG_ERR(&amp;quot;Clock request failed: %d&amp;quot;, err);
		return err;
	}

	do {
		err = sys_notify_fetch_result(&amp;amp;clk_cli.notify, &amp;amp;res);
		if (!err &amp;amp;&amp;amp; res)
		{
			LOG_ERR(&amp;quot;Clock could not be started: %d&amp;quot;, res);
			return res;
		}
	} while (err);

	LOG_INF(&amp;quot;HF clock started&amp;quot;);
	return 0;
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/520354?ContentTypeID=1</link><pubDate>Tue, 28 Jan 2025 11:57:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fa48f0ce-b3df-462b-9954-0eda1b25c81d</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;I think most examples in the nRF Connect SDK are power somewhat power optimized as long as you disable logging by for instance CONFIG_SERIAL=n. Once you enable any kind of logging, then achieving low power is likely not that easily possible no, though you can try the trick I suggested with&amp;nbsp;disable-rx; for the uart node for logging.&lt;/p&gt;
&lt;p&gt;However you mention deep sleep, in this mode the only wakeup source is nfc or pin toggling, there is no rtc wakeup in this mode. Deep sleep is entered by&amp;nbsp;calling&amp;nbsp;sys_poweroff().&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/520247?ContentTypeID=1</link><pubDate>Mon, 27 Jan 2025 17:14:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6cfc445d-d460-40a8-8b7e-351adc117fd8</guid><dc:creator>Arthur J Sary</dc:creator><description>&lt;p&gt;Hello Kenneth,&lt;/p&gt;
&lt;p&gt;Could you please provide or point me to an example that uses Bluetooth and then properly transitions into a low power/deep sleep mode? I want to confirm that I&amp;rsquo;m disabling Bluetooth correctly in my application, and having a reference example would really help me compare my approach.&lt;/p&gt;
&lt;p&gt;Thank you in advance!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/520210?ContentTypeID=1</link><pubDate>Mon, 27 Jan 2025 14:55:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:31fd520a-1af4-4118-bb2f-46a56622734e</guid><dc:creator>Arthur J Sary</dc:creator><description>&lt;p&gt;Hello Kenneth,&lt;/p&gt;
&lt;p&gt;Thanks for confirming that the &lt;code&gt;pm_device_action_run(uart1_dev, PM_DEVICE_ACTION_SUSPEND)&lt;/code&gt; call should handle disabling the UART. If that&amp;rsquo;s working as intended, it seems unlikely to be the source of the ~450 &amp;micro;A we&amp;rsquo;re still measuring in sleep mode, since we&amp;rsquo;re already calling &lt;code&gt;pm_device_action_run(...)&lt;/code&gt; on all relevant peripherals.&lt;/p&gt;
&lt;p&gt;Additionally, I noticed that &lt;code&gt;zephyr_console&lt;/code&gt; is bound to &lt;code&gt;uart0&lt;/code&gt;, so I used&amp;nbsp;&lt;code class="!whitespace-pre hljs language-c"&gt;pm_device_action_run(console_dev, PM_DEVICE_ACTION_SUSPEND)&amp;nbsp;&lt;/code&gt;&lt;span style="font-family:inherit;"&gt;to suspend the console device. This should also disable &lt;/span&gt;&lt;code&gt;uart0&lt;/code&gt;&lt;span style="font-family:inherit;"&gt;, right? Or do I need to explicitly disable the UART0 with &lt;span&gt;pm_device_action_run too&lt;/span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re still seeing ~450 &amp;micro;A even with the serial interfaces disabled. If you have any further suggestions on what else might be contributing to the current draw, I&amp;rsquo;d be grateful.&lt;/p&gt;
&lt;p&gt;Thank you for your continued help!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/520199?ContentTypeID=1</link><pubDate>Mon, 27 Jan 2025 14:29:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6dc71897-e4af-4dd7-ad98-04eadf2d3eb0</guid><dc:creator>Kenneth</dc:creator><description>[quote user="Arthur J Sary"]Shouldn’t this command automatically disable everything possible (including the RX pin) to ensure the lowest power consumption? [/quote]
&lt;p&gt;I would expect that to work yes.&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/520178?ContentTypeID=1</link><pubDate>Mon, 27 Jan 2025 13:19:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:65e2af65-3d08-4614-9670-9811de0df373</guid><dc:creator>Arthur J Sary</dc:creator><description>&lt;p&gt;Hello Kenneth,&lt;/p&gt;
&lt;p&gt;Thank you very much for your response and for the references you provided!&lt;br /&gt;I have a question regarding the UART suspend behavior. When using the following command to suspend the UART:&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;const struct device *const uart1_dev = DEVICE_DT_GET(DT_NODELABEL(uart1));
rc = pm_device_action_run(uart1_dev, PM_DEVICE_ACTION_SUSPEND);
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Shouldn&amp;rsquo;t this command automatically disable everything possible (including the RX pin) to ensure the lowest power consumption? Or do I still need to explicitly add &lt;code&gt;disable-rx&lt;/code&gt; in the device tree to ensure the RX pin is turned off?&lt;/p&gt;
&lt;p&gt;Thank you in advance for your help!&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help Reducing Sleep Current While Keeping RTC Active</title><link>https://devzone.nordicsemi.com/thread/520155?ContentTypeID=1</link><pubDate>Mon, 27 Jan 2025 12:10:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e7c1bb73-6da8-413f-81f6-98a94a3d5b50</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hello,&lt;br /&gt;&lt;br /&gt;If you haven&amp;#39;t already I recommend to go through Lesson 7 in our DevAcademy course:&lt;br /&gt;&lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/lessons/lesson-7-multithreaded-applications/"&gt;https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/lessons/lesson-7-multithreaded-applications/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;There is also a Power Optimization chapter in the nRF Connect SDK:&lt;br /&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/test_and_optimize/optimizing/power.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/test_and_optimize/optimizing/power.html&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Also, in general if you are using uart, the main challenge is the current consumption when in rx mode, so if you just need uart for logging, you can disable rx mode by adding e.g.:&lt;br /&gt;&lt;br /&gt;/* Disabling uart rx pin to get low power */&lt;br /&gt;&amp;amp;uart0 {&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; disable-rx;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Kenneth&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>