<?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>High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/35289/high-power-consumption-mostly-in-sleep-mode-using-nrf52832</link><description>Hi, 
 We have developed one application using nRF52832 SoC and Sdk v15.0. For our application we have use ble_app_uart example as a peripheral and multi-link central example. 
 ble_app_uart peripheral is used as a sensor node with SAADC example merged</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 16 Dec 2021 18:14:15 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/35289/high-power-consumption-mostly-in-sleep-mode-using-nrf52832" /><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/344010?ContentTypeID=1</link><pubDate>Thu, 16 Dec 2021 18:14:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:33e28b68-b82d-4fc6-bfa9-4d33aebea335</guid><dc:creator>Swathykc55</dc:creator><description>&lt;p&gt;I struggled with same. Got the solution ? Plz help me&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/143248?ContentTypeID=1</link><pubDate>Tue, 07 Aug 2018 14:21:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5112237a-b52f-4ab4-99ea-fcd8ec2dccb8</guid><dc:creator>Stian R&amp;#248;ed Hafskjold</dc:creator><description>&lt;p&gt;Maybe you can open up a new thread in this forum where you explain in detail the workflow of your application. I&amp;#39;m not sure how you want the application to work, so it&amp;#39;s hard to give you any code examples which explains things.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/140671?ContentTypeID=1</link><pubDate>Thu, 19 Jul 2018 12:42:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:711bf0c4-7fda-4e42-8d30-9c5533568a87</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;First thing to check. &amp;nbsp;Do a main loop with __WFE(), nothing else. &amp;nbsp;Then measure the current to detect any hardware leak.&lt;/p&gt;
&lt;p&gt;void main()&amp;nbsp;&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;while(1) {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; __WFE();&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;if this draw more than a few uA that means you have leaks somewhere on your board. &amp;nbsp;Reduce that leak first, then optimize your code for other stuff. &amp;nbsp;Just enable the UART alone will consume about 300uA. &amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/140634?ContentTypeID=1</link><pubDate>Thu, 19 Jul 2018 09:16:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab0de83e-4682-4401-9567-dfe652c6150a</guid><dc:creator>vishal</dc:creator><description>&lt;p&gt;Hi Stian,&lt;/p&gt;
&lt;p&gt;I have use app timer for wake up our sensor devices for every one hour. As you mentioned in your above reply i have call this all turn off peripherals in callback BLE transmission once done. But still my sensor device is connected to central it is not disconnecting connection.&lt;/p&gt;
&lt;p&gt;We have problem with app timer for trigger adc every one hour. Once this time out event occur is it need to initialize again all turn off peripheral in other function. Or it goes into main loop. Because my adc is not start after app timer time out event occur.&lt;/p&gt;
&lt;p&gt;Would you please suggest me where should i am going to wrong with your program snippet.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We are waiting for your reply......&lt;/p&gt;
&lt;p&gt;Thanks.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/137255?ContentTypeID=1</link><pubDate>Fri, 22 Jun 2018 14:03:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:990696c1-8b07-4780-9cab-ed91cda95fdc</guid><dc:creator>vishal</dc:creator><description>&lt;p&gt;Thanks for your reply..&lt;/p&gt;
&lt;p&gt;I have call this function&amp;nbsp;sd_ble_gap_adv_stop(m_conn_handle); after completed three channel but BLE advertising is not stop. I have also check disconnect event and not started again advertising.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Will you please provide me small program snippet for how i can do this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/136745?ContentTypeID=1</link><pubDate>Tue, 19 Jun 2018 12:12:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e34ad93-4bb2-4c8b-9e05-1b4b3374dd20</guid><dc:creator>Stian R&amp;#248;ed Hafskjold</dc:creator><description>&lt;p&gt;Try to stop SAADC sampling before disabling the peripheral:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;void stop_adc()&lt;/code&gt;&lt;br /&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_drv_timer_uninit(&amp;amp;m_timer);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_drv_ppi_channel_disable(m_ppi_channel);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_drv_ppi_uninit();&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_SAADC-&amp;gt;TASKS_STOP = 1;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_drv_saadc_uninit();&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;err_code = app_uart_close();&lt;/code&gt;&lt;br /&gt;&lt;code&gt; APP_ERROR_CHECK(err_code);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Where you want to put this depends on how you want the application to work. If the BLE transmission defines the end of the applications &amp;quot;tasks&amp;quot; you would typically want to place this in one of the callback functions handling the BLE transmission. Or you can set a flag in the BLE transmission callback, and check for this flag in the main loop.&lt;/p&gt;
&lt;p&gt;The softdevice (BLE) does not have to be disabled. After you disconnect from the central, just make sure that advertising is not started. It will not consume anything in addition to what the RTC consumes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/135923?ContentTypeID=1</link><pubDate>Wed, 13 Jun 2018 12:20:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:08ea6dce-67ea-4061-b62a-7ddf3574faf5</guid><dc:creator>vishal</dc:creator><description>&lt;p&gt;I have&amp;nbsp;&lt;span&gt;disabled in sdk_config.h. Look for NRF_LOG_ENABLED 0 and then measured current consumption it looks while adv. = 3.38mA but not effect on system of current consumption still remains same.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The following function i used for disable all peripheral:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;void stop_adc()
{
    NRF_LOG_INFO(&amp;quot;SAADC Stop\r\n&amp;quot;);
    nrf_drv_timer_disable(&amp;amp;m_timer);
    nrf_drv_timer_uninit(&amp;amp;m_timer);
    nrf_drv_ppi_channel_disable(m_ppi_channel);
    nrf_drv_ppi_uninit();
    nrf_drv_saadc_abort();
    nrf_drv_saadc_uninit();
    while(nrf_drv_saadc_is_busy());
}

    err_code = app_uart_close();
    APP_ERROR_CHECK(err_code);&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The above functions i have call after sending data, is this functions is correct but i am not sure weather it really shut down SAADC and UART or not.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I want to use system ON IDLE mode and wake up by timer or RTC so able to trigger sensor every 1 Hr by software interrupt.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Please tell me&amp;nbsp;effective method for disable all peripherals such as BLE, SAADC, UART after transmitted data. so then i can measure current consumption in system ON mode.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Can you please provide me small program&amp;nbsp;code for disabling&amp;nbsp;all peripheral and where should i need to define in main loop or somewhere other?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;for (;;)&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; idle_state_handle();&lt;br /&gt;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;I am using 3 ADC channels for accelerometer sensor is it need also disable analog GPIO port. which function use for disable GPIO.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As lowest possible to optimize sleep current is most important for us..!!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks...!!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/135898?ContentTypeID=1</link><pubDate>Wed, 13 Jun 2018 11:21:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0831a89e-aa4f-4653-9809-548c665e16b6</guid><dc:creator>Stian R&amp;#248;ed Hafskjold</dc:creator><description>&lt;p&gt;Make sure that logging is disabled in sdk_config.h. Look for NRF_LOG_ENABLED and set this to 0&lt;/p&gt;
&lt;p&gt;Also initialize the SAADC in low power mode. Please read more about this here: &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.0.0/hardware_driver_saadc.html?cp=4_0_0_2_0_12_1_1#saadc_nonblocking"&gt;http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.0.0/hardware_driver_saadc.html?cp=4_0_0_2_0_12_1_1#saadc_nonblocking&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So if you want to wake up by RTC you typically want to start SAADC, UART and BLE in the RTC interrupt function. I don&amp;#39;t know how your system is going to work, but in general, lets say you want to notify the central with the data you collected, you send out a notification, and in the callback function you check if more is available, if not you terminate the BLE connection, stop UART etc..&lt;/p&gt;
&lt;p&gt;You can check out the BLE UART example, this shows how you can send/receive data on UART and forward it over BLE. In this example you see how the callback functions work.&lt;/p&gt;
&lt;p&gt;You don&amp;#39;t have to call sd_power_dcdc_mode_set in the main loop. It&amp;#39;s enough to call it once after initializing the softdevice.&lt;/p&gt;
&lt;p&gt;Normal system ON IDLE current is 1.9uA. While you are using UART you can expect 1-2mA so you need to disable the UART after the data has been transmitted. 1.9uA is when the softdevice is running (BLE active). SAADC has a low power mode so this should not add anything to the IDLE current.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/135768?ContentTypeID=1</link><pubDate>Tue, 12 Jun 2018 14:20:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cea644dd-c382-4d64-a514-95a24c966710</guid><dc:creator>vishal</dc:creator><description>&lt;p&gt;Thanks for your great answer..!!!&lt;/p&gt;
&lt;p&gt;Now i have tested current consumption in my other board now it is consume in system off mode = &lt;strong&gt;320uA.&amp;nbsp;&lt;/strong&gt;It is very high as well. Please help me how i can reduced this current consumption. Where should i wrong i am confused and not understating why this high consumption in system off mode. For reference here is my main function init:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;int main(void)
{
    bool erase_bonds;
    uint32_t err_code;

    // Initialize.
    uart_init();
    log_init();
    timers_init();
    buttons_leds_init(&amp;amp;erase_bonds);
    power_management_init();
    ble_stack_init();
    gap_params_init();
    gatt_init();
    services_init();
    advertising_init();
    conn_params_init();
    saadc_init();
    saadc_sampling_event_init();
    saadc_sampling_event_enable();
    advertising_start();
    // Start execution.
//    printf(&amp;quot;\r\nUART started.\r\n&amp;quot;);
    NRF_LOG_INFO(&amp;quot;Debug logging for UART over RTT started.&amp;quot;);

    // Enter main loop.
    for (;;)
    {
        err_code = sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);  // Enable DCDC Mode for LOW power Consumption
        APP_ERROR_CHECK(err_code);
        idle_state_handle();
    }
}&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If i use system ON mode and wake up by RTC, once done job of BLE&lt;strong&gt; how i can turn off my all peripheral in my program where should i need to change code. Please suggest changes?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What is normal current consumption in System ON idle mode&amp;nbsp;if using UART, SAADC, BLE peripheral. Is 1.9 uA as per data sheet?&lt;/p&gt;
&lt;p&gt;Thanks..!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Power consumption mostly in sleep mode using nRF52832 ?</title><link>https://devzone.nordicsemi.com/thread/135750?ContentTypeID=1</link><pubDate>Tue, 12 Jun 2018 13:06:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:83e13e83-4a1d-42f1-ac12-303747891726</guid><dc:creator>Stian R&amp;#248;ed Hafskjold</dc:creator><description>&lt;ol&gt;
&lt;li&gt;System OFF consumes about 0.3µA. If you see 0.5mA there must be something else that is drawing the current.&lt;/li&gt;
&lt;li&gt;System OFF means that you turn off the chip, including the RTC. It cannot wake up by RTC. &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.1/power.html?cp=2_1_0_17_1#unique_1707892264"&gt;Here is a description of what can wake the chip up&lt;/a&gt;. In other words: it needs an external&amp;nbsp; signal to wake up. It wakes up in RESET state. System ON is when the chip is operational. If you want low power consumption in system ON you need to turn off every peripheral that is consuming power and also put the CPU in a WFE (wait for event) loop.&lt;/li&gt;
&lt;li&gt;You can wake the chip up from system OFF by using an external RTC. The external RTC needs to toggle one of the GPIOs on the nRF chip.&lt;/li&gt;
&lt;li&gt;The chip is always in system ON mode when operational. Make sure that the main loop sets the CPU in WFE state when not used. If you are using the softdevice examples this is automatically handled. This is what is called System ON IDLE mode (when the CPU is not working).&lt;/li&gt;
&lt;li&gt;Make sure that peripherals are powered off when you are not using them. Use long BLE advertising/connection intervals.&lt;/li&gt;
&lt;li&gt;It depends on your application if you are able to achieve this or not. You need to figure out the requirements of your application. But if it only wakes up every hour I don&amp;#39;t think this should be any problem. You can use &lt;a href="https://devzone.nordicsemi.com/power/"&gt;this power calculator&lt;/a&gt; to see the average current in different BLE modes.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>