<?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>&amp;quot;floor&amp;quot; current of 2.9 mA with code migrated to SDK15 (from SDK12)</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/46980/floor-current-of-2-9-ma-with-code-migrated-to-sdk15-from-sdk12</link><description>I have an existing Firmware (build on Crossworks) that has correct &amp;quot;floor&amp;quot; power consumption (&amp;lt; 10 uA during sd_app_evt_wait() on my setup). 
 I migrate my code to rune with SDK15 (mainly changed SoftDevice API) and after that, I have a constant current</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 08 May 2019 13:26:01 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/46980/floor-current-of-2-9-ma-with-code-migrated-to-sdk15-from-sdk12" /><item><title>RE: "floor" current of 2.9 mA with code migrated to SDK15 (from SDK12)</title><link>https://devzone.nordicsemi.com/thread/185985?ContentTypeID=1</link><pubDate>Wed, 08 May 2019 13:26:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:68940dad-2dbf-460c-969b-3e853708f811</guid><dc:creator>ThierryC</dc:creator><description>&lt;p&gt;OK, I found the problem: I was correctly using the nrf_power_mgmt_run(), but I forgot to define NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED !&lt;br /&gt;&lt;br /&gt;So problem is solved&amp;nbsp;! Thanks for your hints.&lt;br /&gt;&lt;br /&gt;And for the story, what I still don&amp;#39;t understand, is why I didn&amp;#39;t saw this problem on SDK12 using sd_app_evt_wait() ? If someone has an explanation.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: "floor" current of 2.9 mA with code migrated to SDK15 (from SDK12)</title><link>https://devzone.nordicsemi.com/thread/185940?ContentTypeID=1</link><pubDate>Wed, 08 May 2019 11:40:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1077ba33-6be0-41ea-8655-b72f1ef2f343</guid><dc:creator>ThierryC</dc:creator><description>&lt;p&gt;Hmm, investigating more deeply, it seems more to be around RTC.&lt;br /&gt;I found this link and it seems to be exactly the use case I encounter (3 mA consumption after I get access to RTC-&amp;gt;COUNTER) :&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/40102/app_timer_cnt_get-causing-high-power-consumption/156812#156812"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/40102/app_timer_cnt_get-causing-high-power-consumption/156812#156812&lt;/a&gt;&lt;br /&gt;So I try now the suggested fix... but difficult to setup on my Crossworks environment.Let see if it solve the issue after...&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: "floor" current of 2.9 mA with code migrated to SDK15 (from SDK12)</title><link>https://devzone.nordicsemi.com/thread/185855?ContentTypeID=1</link><pubDate>Wed, 08 May 2019 08:25:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab4f815e-cffb-40c5-9233-2cf3228941f8</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;If it is related to logging, then you can see how the SDK have solved this by waiting for logging to finish before going to sleep:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (NRF_LOG_PROCESS() == false)
{
    nrf_pwr_mgmt_run();
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The UART is the usual suspect when it comes to elevate current consumption during sleep, however it may also be other peripherals that are keeping the system powered, so I am not sure if I have any good suggestion than to for instance try to test a bit more.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: "floor" current of 2.9 mA with code migrated to SDK15 (from SDK12)</title><link>https://devzone.nordicsemi.com/thread/185751?ContentTypeID=1</link><pubDate>Tue, 07 May 2019 13:30:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6d0174c6-8f72-4d3c-909c-6d9a32589be6</guid><dc:creator>ThierryC</dc:creator><description>&lt;p&gt;Here&amp;#39;s more hints after further investigation :&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If I put&amp;nbsp;&lt;span&gt;nrf_pwr_mgmt_run() call in a loop at the begin of my main (after SD and BLE stack init), I got correct power consumption (almost zero or few uA)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;If I move this loop later on may main init sequence, I got ~3 mA power consumption&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Experimentally, I found the limit for 0 to 3 mA consumption to put the loop, and this is just after ONE (not the first) line sending some debug log to SERIAL.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;If I put a LOG line into the&amp;nbsp;nrf_pwr_mgmt_run() LOOP, event at the beginning&amp;nbsp;of the main, the log is LOGGING forever... but maybe this is intended.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;So I conclude this is due to logging into SERIAL, but in RELEASE build, I have same issue (but later on the main init sequence, seems to be at random line).&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;Reading your link, is seems to be something like point 1. in Software section : race condition and pending interrupt. But how to figure out the root cause of that ? Could it be related to interrupts priorities ? Any hint for this subject ?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: "floor" current of 2.9 mA with code migrated to SDK15 (from SDK12)</title><link>https://devzone.nordicsemi.com/thread/185672?ContentTypeID=1</link><pubDate>Tue, 07 May 2019 09:51:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f2097b5-d901-4f89-a605-8e318228e68a</guid><dc:creator>ThierryC</dc:creator><description>&lt;p&gt;Thanks for the link.&lt;br /&gt;On my case, I&amp;#39;m not using the nrf_power_mgmt module. I&amp;#39;m calling directly&amp;nbsp;sd_app_evt_wait(). Which is working fine of SDK12, but maybe I missed something.&lt;br /&gt;I&amp;#39;ll investigate more in this direction.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: "floor" current of 2.9 mA with code migrated to SDK15 (from SDK12)</title><link>https://devzone.nordicsemi.com/thread/185641?ContentTypeID=1</link><pubDate>Tue, 07 May 2019 08:27:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:edf37a73-a492-4ba4-9417-039803c4ab5f</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;In general you may check out:&lt;br /&gt;&lt;a href="https://devzone.nordicsemi.com/b/blog/posts/optimizing-power-on-nrf52-designs"&gt;https://devzone.nordicsemi.com/b/blog/posts/optimizing-power-on-nrf52-designs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You may also take a look at the&amp;nbsp;nrf_pwr_mgmt_run() implementation from the nRF SDK.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>