<?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>How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/87219/how-to-reduce-the-power-consumption-of-the-9160-s-modem</link><description>I am using 9160 to develop a customer&amp;#39;s product, which needs to reduce power consumption as much as possible to prolong the battery life of the product. I know that 9160 communicates with the modem through the default UART0. My product design uses UART2</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 03 May 2022 08:42:54 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/87219/how-to-reduce-the-power-consumption-of-the-9160-s-modem" /><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/365906?ContentTypeID=1</link><pubDate>Tue, 03 May 2022 08:42:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:33b86f5a-4126-45bd-b9a8-11373125af7e</guid><dc:creator>Albrecht Markus Schellenberger</dc:creator><description>[quote user="duxinglang"]Actually,&amp;nbsp;what I want to know is how to use the modem without borrowing the UART to transmit commands or data.[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;Again, UART is not used for communication between the application and the modem. Your application can send AT commands directly to the modem using the AT interface library, or you can e.g. make usage of the &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/nrf/libraries/modem/lte_lc.html"&gt;LTE link controller&lt;/a&gt; doing that for you.&lt;br /&gt;&lt;br /&gt;If you would like to disable logging via UART, you can do that with an overlay.conf file, as illustrated &lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/v1.9.1/applications/asset_tracker_v2/overlay-low-power.conf"&gt;here&lt;/a&gt;, or use a &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/zephyr/guides/dts/howtos.html#use-devicetree-overlays"&gt;devicetree overlay&lt;/a&gt; to disable the peripheral itself.&lt;br /&gt;&lt;br /&gt;Regards,&lt;/p&gt;
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;Markus&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/365500?ContentTypeID=1</link><pubDate>Fri, 29 Apr 2022 03:35:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b52793b9-28bd-424b-8401-2ba238c13a4d</guid><dc:creator>duxinglang</dc:creator><description>&lt;p&gt;&lt;span class="transSent highlight"&gt;&lt;span&gt;Thank you for your reply. Actually,&amp;nbsp;what I want to know is how to use the modem without borrowing the UART to transmit commands or data. As I have described before, in order to save power consumption, I need to put the UART into low-power mode, so that every time there is a change in the modem, the system will crash.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="transSent"&gt;&lt;span&gt; Now that I&amp;#39;ve found a way to turn off CONFIG_AT_HOST_LIBRARY and CONFIG_UART_INTERRUPT_DRIVEN in prj.conf, it looks like I can eliminate the use of UART when transferring data between the application and modem.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="transSent"&gt;&lt;span&gt; The result of the test was that after setting the UART to low power, there was no system crash. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/365294?ContentTypeID=1</link><pubDate>Thu, 28 Apr 2022 06:43:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9aae85c4-09f0-45c6-ab16-71460f2abff9</guid><dc:creator>Albrecht Markus Schellenberger</dc:creator><description>[quote user="duxinglang"]If no AT instructions are used, do these corresponding interface functions explain how to use them? &amp;nbsp;[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;The communication between the modem and application is always based on AT commands. You can find a full overview and documentation of all the commands available &lt;a href="https://infocenter.nordicsemi.com/topic/ref_at_commands/REF/at_commands/intro.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user="duxinglang"]I checked the specifications and found that many modem operations are realized by sending AT instructions, such as the modem networking function w_lte_lc_init().[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;The above mentioned function is part of the &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/nrf/libraries/modem/lte_lc.html#lte-link-controller"&gt;LTE link controller&lt;/a&gt; library, which is one of many that we are offering to improve user experience. They are basically a wrapper for AT commands, but in the end, those libraries use AT commands as well for direct communication with the modem. One example could be the &lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/v1.9.1/lib/lte_link_control/lte_lc.c#L1198"&gt;system mode&lt;/a&gt; settings, which is called within the &lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/v1.9.1/lib/lte_link_control/lte_lc.c#L741"&gt;lte_lc_init()&lt;/a&gt; function.&lt;br /&gt;&lt;br /&gt;Regards,&lt;/p&gt;
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;Markus&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/365061?ContentTypeID=1</link><pubDate>Wed, 27 Apr 2022 01:00:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d2860d35-af43-4c9f-8586-b7fa4ee13f9c</guid><dc:creator>duxinglang</dc:creator><description>&lt;p&gt;&lt;span class="transSent highlight"&gt;&lt;span&gt;Thank you for your explanation!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="transSent"&gt;&lt;span&gt; If as you say, an application does not need the AT instruction to communicate with the modem, what are the interface functions that the application can use?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="transSent"&gt;&lt;span&gt; I checked the specifications and found that many modem operations are realized by sending AT instructions, such as the modem networking function w_lte_lc_init(). If no AT instructions are used, do these corresponding interface functions explain how to use them? &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/364927?ContentTypeID=1</link><pubDate>Tue, 26 Apr 2022 11:24:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ffca97d8-2928-4180-95dd-632433194c0d</guid><dc:creator>Albrecht Markus Schellenberger</dc:creator><description>[quote user="duxinglang"]So, does this mean that 9160 still needs a uart to communicate with the modem?[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;The nRF9160 has two separate cores, an application and a modem core. The application and the modem communicate with each other via the modem library interface, as already mentioned. So, if the application core is in lower-power state but the modem core not, the current consumption can still be significant.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user="duxinglang"]&lt;span&gt;&lt;span&gt;Why can&amp;#39;t the application call the relevant functions to communicate with the modem directly instead of sending AT instructions through the uart?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt; Does this mean that every time you use a modem, you have to use a uart, so you have at least 600uA power consumption? &amp;nbsp;&lt;/span&gt;&lt;/span&gt;[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;No. Basically, a UART peripheral is not needed for the application to send AT commands to the modem. But that implies that the application handles all necessary communication with the modem itself. If the application requires a certain extern user interface for handling AT commands, then a UART peripheral might be required.&lt;br /&gt;&lt;br /&gt;Regards,&lt;/p&gt;
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;Markus&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/364923?ContentTypeID=1</link><pubDate>Tue, 26 Apr 2022 11:15:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:72a90b7b-986c-42eb-8b2c-5eabf9acca62</guid><dc:creator>duxinglang</dc:creator><description>&lt;p&gt;&lt;span class="transSent highlight"&gt;&lt;span&gt;So, does this mean that 9160 still needs a uart to communicate with the modem?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="transSent"&gt;&lt;span&gt; Why can&amp;#39;t the application call the relevant functions to communicate with the modem directly instead of sending AT instructions through the uart?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="transSent"&gt;&lt;span&gt; Does this mean that every time you use a modem, you have to use a uart, so you have at least 600uA power consumption? &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/364918?ContentTypeID=1</link><pubDate>Tue, 26 Apr 2022 11:04:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2c33b207-041d-43f2-9ee9-42d60f0fde5b</guid><dc:creator>Albrecht Markus Schellenberger</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
[quote user="duxinglang"]&lt;span&gt;&lt;span&gt;So it&amp;#39;s log output using uart0, right?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt; But when I test, I find that even though I have log output turned off (CONFIG_LOG= N), if I don&amp;#39;t set UART0 to DEVICE_PM_LOW_POWER_STATE, it still has around 600uA power consumption, why? &amp;nbsp;&lt;/span&gt;&lt;/span&gt;[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;That depends as well on what your application is doing otherwise and which peripherals are enabled by default in your devicetree. Referring to the &lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/v1.9.1/applications/asset_tracker_v2/overlay-low-power.conf"&gt;overlay-low-power.conf&lt;/a&gt; file of the &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/nrf/applications/asset_tracker_v2/README.html"&gt;Asset Tracker v2&lt;/a&gt;, which demonstrates how to disable logging over UART.&lt;br /&gt;&lt;br /&gt;And of course, the power consumption is depended on the modem state as well. If it is enabled, but not in PSM/eDRX, the current consumption will not decrease.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user="duxinglang"]This setting can only be operated after the modem is set and the AT instruction is sent to connect to the network, otherwise the device will restart. &amp;nbsp;[/quote]
&lt;p&gt;Yes, that makes sense! UART0 is required to forward the AT commands to the application, which then will forward them to the modem via the modem library interface. If UART0 is disabled or in low power state, this is not possible unless another UART peripheral is used instead.&lt;br /&gt;&lt;br /&gt;Regards,&lt;/p&gt;
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;Markus&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/364561?ContentTypeID=1</link><pubDate>Sun, 24 Apr 2022 02:22:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6f29bd4a-cc48-4a51-858a-58394707723d</guid><dc:creator>duxinglang</dc:creator><description>&lt;p&gt;&lt;span&gt;In addition, I also found that even if UART0 is set to DEVICE_PM_LOW_POWER_STATE, it also has timing requirements. This setting can only be operated after the modem is set and the AT instruction is sent to connect to the network, otherwise the device will restart. &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/364560?ContentTypeID=1</link><pubDate>Sun, 24 Apr 2022 02:02:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:71a99ea5-6dc9-4581-ac33-39968f6a1b2f</guid><dc:creator>duxinglang</dc:creator><description>&lt;p&gt;&lt;span class="transSent"&gt;&lt;span&gt;So it&amp;#39;s log output using uart0, right?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="transSent highlight"&gt;&lt;span&gt; But when I test, I find that even though I have log output turned off (CONFIG_LOG= N), if I don&amp;#39;t set UART0 to DEVICE_PM_LOW_POWER_STATE, it still has around 600uA power consumption, why? &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;pre class="ui-code" data-mode="text"&gt;# Log
CONFIG_LOG=n
CONFIG_LOG_IMMEDIATE=y
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG_BACKEND_UART=n
CONFIG_LOG_DEFAULT_LEVEL=4
CONFIG_LOG_MODE_OVERFLOW=y
CONFIG_LOG_BACKEND_RTT_MODE_DROP=y
CONFIG_LOG_BACKEND_SHOW_COLOR=n
CONFIG_LOG_BACKEND_FORMAT_TIMESTAMP=n&lt;/pre&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/QQ_FE564772_20220424100146.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/364442?ContentTypeID=1</link><pubDate>Fri, 22 Apr 2022 11:05:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e2566e4-66f8-44cb-80c0-10f4bcaf02e2</guid><dc:creator>Albrecht Markus Schellenberger</dc:creator><description>[quote user="duxinglang"]Do you mean 9160 does not need to use UART0 to communicate with modem?[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;Yes.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user="duxinglang"]&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt; However, previous tests showed that I did receive some log output about the network from UART0 while connecting to the network.&lt;/span&gt;[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;The log output you are receiving comes from the modem via the modem library interface and then is forwarded to the terminal via UART0.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;Markus&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/364391?ContentTypeID=1</link><pubDate>Fri, 22 Apr 2022 08:15:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e06c12fb-3337-49f6-b3f1-d59dcd8a2bff</guid><dc:creator>duxinglang</dc:creator><description>&lt;p&gt;&lt;span&gt;Sorry, I didn&amp;#39;t make it clear. I mean, I connected a sensor using Uart2.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="transSent"&gt;Do you mean 9160 does not need to use UART0 to communicate with modem?&amp;nbsp;&lt;/span&gt;&lt;span class="transSent"&gt; However, previous tests showed that I did receive some log output about the network from UART0 while connecting to the network.&amp;nbsp;&lt;/span&gt;&lt;span class="transSent"&gt; The test results also show that if I set uART0 to low power, the power of the product does go down, which is very strange!&amp;nbsp;&lt;/span&gt;&lt;span class="transSent"&gt; The SDK version I am currently using is NCS1.2.0 &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to reduce the power consumption of the 9160‘s modem?</title><link>https://devzone.nordicsemi.com/thread/364387?ContentTypeID=1</link><pubDate>Fri, 22 Apr 2022 08:08:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:286df998-b161-4c37-9ef5-6023e95a4f47</guid><dc:creator>Albrecht Markus Schellenberger</dc:creator><description>&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;Hello,&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user=""]My product design uses UART2 to communicate with a peripheral.&amp;nbsp;[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;I’m not quite sure if I fully have understood your setup yet.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user=""]I know that 9160 communicates with the modem through the default UART0.[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;The application core of the nRF9160 does not communicate with the modem via uart0. This is done via a shared memory area using the modem library, as described &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/nrfxlib/nrf_modem/doc/architecture.html#library-architecture"&gt;here&lt;/a&gt;. Do you run the application on a nRF9160 or another device, which communicates with the nRF9160 via uart0?&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user=""]In fact, the GPIO pin mapped to UART0 is not connected to any line, why do you need to set the low power state to reduce power consumption? &amp;nbsp;[/quote]
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;The UART peripheral is powered by the &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf9160%2Fpmu_oscillators.html&amp;amp;cp=2_0_0_4_3_0&amp;amp;anchor=hfclk"&gt;HFCLK clock controller&lt;/a&gt; and not the peripheral itself. So if pins are assigned to uart0 doesn’t really matter, as long as the peripheral is enabled in the devicetree.&lt;br /&gt;&lt;br /&gt;Regards,&lt;/p&gt;
&lt;p style="line-height:100%;margin-bottom:0;" lang="en-GB"&gt;Markus&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>