<?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 CONSUMPTION UARTE1</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/45950/high-consumption-uarte1</link><description>Hello, 
 I&amp;#39;m using NRF52840 module to make a customer device. This device send message by UART. My device is powered with a battery, for this reason I would like reduce the current consumption due to serial comunication. 
 
 I&amp;#39;m configuring serial port</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 10 Jun 2019 15:18:44 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/45950/high-consumption-uarte1" /><item><title>RE: HIGH CONSUMPTION UARTE1</title><link>https://devzone.nordicsemi.com/thread/191853?ContentTypeID=1</link><pubDate>Mon, 10 Jun 2019 15:18:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cac822ff-8415-4b50-8719-09e5ff126949</guid><dc:creator>Edward_Atam</dc:creator><description>&lt;p&gt;DEar Simonr&lt;/p&gt;
&lt;p&gt;I&amp;nbsp;realized that this was a hardware problem in my devices.&lt;/p&gt;
&lt;p&gt;I have more questions about Openhread API, but I&amp;#39;m going to create a new thread.&lt;/p&gt;
&lt;p&gt;Thank you very much for your time!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HIGH CONSUMPTION UARTE1</title><link>https://devzone.nordicsemi.com/thread/190168?ContentTypeID=1</link><pubDate>Fri, 31 May 2019 06:48:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f4ec64ab-2c80-4248-89bc-c8cfa9270934</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi Edward&lt;/p&gt;
&lt;p&gt;Do you have the same problems when using the serial_uartes example provided in the SDK? What are you using to measure the current? Also, can you confirm that the values you are reading and writing are read and written correctly? And last, do you get an error code if you try going to sleep?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HIGH CONSUMPTION UARTE1</title><link>https://devzone.nordicsemi.com/thread/190055?ContentTypeID=1</link><pubDate>Thu, 30 May 2019 12:03:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0d47733d-f84c-4247-a8c1-76ebbe7dd348</guid><dc:creator>Edward_Atam</dc:creator><description>&lt;p&gt;Hi Simonr,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;At the end I updated the SDK and now I&amp;#39;m using&amp;nbsp;nRF5 SDK for Thread and Zigbee v3.0.0 but I have the same problem more or less...&lt;/p&gt;
&lt;p&gt;I did three tests using UARTE1 (mode DMA):&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;1&amp;ordm;&amp;nbsp; When I write by UARTE1 but never read, the current is 0.3mA&lt;/p&gt;
&lt;p&gt;My code:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ret = nrf_serial_init(&amp;amp;serial1_uarte, &amp;amp;m_uarte1_drv_config, &amp;amp;serial1_config);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;APP_ERROR_CHECK(ret);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ret = nrf_serial_write(&amp;amp;serial1_uarte,&lt;/span&gt;&lt;span&gt;&amp;amp;tx[2],&lt;/span&gt;&lt;span&gt;tx[1],&lt;/span&gt;&lt;span&gt;NULL,&lt;/span&gt;&lt;span&gt;NRF_SERIAL_MAX_TIMEOUT);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; (void)nrf_serial_flush(&amp;amp;serial1_uarte, 0);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;//&amp;nbsp; &amp;nbsp;memset(buffer_uartRx,0,sizeof(buffer_uartRx));&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;//&amp;nbsp; while(nrf_serial_read(&amp;amp;serial1_uarte, &amp;amp;buffer_uartRx[tam_buffer_uartRx], 1, NULL, 10)==NRF_SUCCESS)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;//&amp;nbsp; &amp;nbsp; &amp;nbsp;tam_buffer_uartRx++;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; nrf_serial_uninit(&amp;amp;serial1_uarte);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&amp;nbsp; *(volatile uint32_t *)0x40028FFC = 0; // Power down UARTE1&lt;br /&gt;&amp;nbsp; *(volatile uint32_t *)0x40028FFC; &lt;br /&gt;&amp;nbsp; *(volatile uint32_t *)0x40028FFC = 1; // Power on UARTE1 so it is ready &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;2&amp;ordm; When I write and read without power down UARTE1, the current is 2.4mA&lt;/p&gt;
&lt;p&gt;My code:&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;ret = nrf_serial_init(&amp;amp;serial1_uarte, &amp;amp;m_uarte1_drv_config, &amp;amp;serial1_config);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;APP_ERROR_CHECK(ret);&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;ret = nrf_serial_write(&amp;amp;serial1_uarte,&amp;amp;tx[2],tx[1],NULL,NRF_SERIAL_MAX_TIMEOUT);&lt;br /&gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; (void)nrf_serial_flush(&amp;amp;serial1_uarte, 0);&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; memset(buffer_uartRx,0,sizeof(buffer_uartRx));&lt;br /&gt;&amp;nbsp; &amp;nbsp;while(nrf_serial_read(&amp;amp;serial1_uarte, &amp;amp;buffer_uartRx[tam_buffer_uartRx], 1, NULL, 10)==NRF_SUCCESS)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; tam_buffer_uartRx++; &lt;br /&gt;&amp;nbsp; &amp;nbsp; nrf_serial_uninit(&amp;amp;serial1_uarte);&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;THE CURRENT IS 2.4mA&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;3&amp;ordm; When&amp;nbsp;&lt;span&gt;I write and read with power down UARTE1, the current is 1.7mA&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;My code:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ret = nrf_serial_init(&amp;amp;serial1_uarte, &amp;amp;m_uarte1_drv_config, &amp;amp;serial1_config);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;APP_ERROR_CHECK(ret);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ret = nrf_serial_write(&amp;amp;serial1_uarte,&lt;/span&gt;&lt;span&gt;&amp;amp;tx[2],&lt;/span&gt;&lt;span&gt;tx[1],&lt;/span&gt;&lt;span&gt;NULL,&lt;/span&gt;&lt;span&gt;NRF_SERIAL_MAX_TIMEOUT);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; (void)nrf_serial_flush(&amp;amp;serial1_uarte, 0);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; memset(buffer_uartRx,0,sizeof(buffer_uartRx));&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;while(nrf_serial_read(&amp;amp;serial1_uarte, &amp;amp;buffer_uartRx[tam_buffer_uartRx], 1, NULL, aux_tmp)==NRF_SUCCESS)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; tam_buffer_uartRx++;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; nrf_serial_uninit(&amp;amp;serial1_uarte);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&amp;nbsp; *(volatile uint32_t *)0x40028FFC = 0; // Power down UARTE1&lt;br /&gt;&amp;nbsp; *(volatile uint32_t *)0x40028FFC;&amp;nbsp;&lt;br /&gt;&amp;nbsp; *(volatile uint32_t *)0x40028FFC = 1; // Power on UARTE1 so it is ready&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp; THE CURRENT IS 1.7mA&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp; Also I tried to read only once at the beginning of my program and never read again but the current did&amp;#39;nt go down.&amp;nbsp; &amp;nbsp;(1.7mA)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So, when initiating the UARTE, writing to it, BUT not reading from it, the current is really low.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;But, just reading a single byte, the current increases more than 1mA. And never goes down again.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;How can we fix this, in our opinion, erroneous behaviour?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;Any help is wellcome.&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you!!!&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&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 CONSUMPTION UARTE1</title><link>https://devzone.nordicsemi.com/thread/181225?ContentTypeID=1</link><pubDate>Wed, 10 Apr 2019 07:12:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6d19a4e-9692-4b46-b8ad-ca5604ca9905</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi Edward&lt;/p&gt;
&lt;p&gt;The SDK you are using is very old (older than the workaround I proposed), so first of all, I suggest you update to the &lt;a href="https://www.nordicsemi.com/Software-and-Tools/Software/nRF5-SDK-for-Thread-and-Zigbee"&gt;newest Thread SDK v3.0.0&lt;/a&gt;, as I suspect&amp;nbsp;just updating your SDK might be enough to solve the problem for you.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HIGH CONSUMPTION UARTE1</title><link>https://devzone.nordicsemi.com/thread/181077?ContentTypeID=1</link><pubDate>Tue, 09 Apr 2019 13:15:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:719f16a9-ffc0-493a-8f37-3ea66eed67f0</guid><dc:creator>Edward_Atam</dc:creator><description>&lt;p&gt;Hi Simon!!&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using nRF5 SDK for Thread v0.11.0.&lt;/p&gt;
&lt;p&gt;I saw that solution, and I tried it, this is the part of my code:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_serial_uninit(&amp;amp;serial1_uarte);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(volatile uint32_t *)0x40028FFC = 0;&amp;nbsp;&amp;nbsp; // Power down UARTE1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(volatile uint32_t *)0x40028FFC;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(volatile uint32_t *)0x40028FFC = 1;&amp;nbsp;&amp;nbsp; // Power on UARTE1 so it is ready&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I tried too this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;nrf_serial_uninit(&amp;amp;serial1_uarte);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_UARTE1-&amp;gt;TASKS_STOPRX=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_UARTE1-&amp;gt;TASKS_STOPTX=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_UARTE1-&amp;gt;ENABLE=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(volatile uint32_t *)0x40028FFC = 0;&amp;nbsp;&amp;nbsp; // Power down UARTE1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(volatile uint32_t *)0x40028FFC;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(volatile uint32_t *)0x40028FFC = 1;&amp;nbsp;&amp;nbsp; // Power on UARTE1 so it is ready&lt;/p&gt;
&lt;p&gt;But it&amp;#39;s not success, The consumption is the same.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In this moment I don&amp;#39;t know what can I try...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you in advance!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HIGH CONSUMPTION UARTE1</title><link>https://devzone.nordicsemi.com/thread/181055?ContentTypeID=1</link><pubDate>Tue, 09 Apr 2019 12:43:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a17e5ed2-042d-42d3-a1b9-b8357bc8e412</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi Edward&lt;/p&gt;
&lt;p&gt;What SDK are you using? There was an issue with UARTE not disabling properly in SDK v15.0.0 where the &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/26030/how-to-reach-nrf52840-uarte-current-supply-specification/102605#102605"&gt;workaround posted here&lt;/a&gt; had to be implemented. This workaround should power cycle the peripheral after calling app_uart_close() and lower the current consumption. The workaround is thoroughly explained &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/43998/clarification-of-nrf52832-pan-89"&gt;here&lt;/a&gt; if you have any initial questions.&lt;/p&gt;
&lt;p&gt;If this doesn&amp;#39;t solve your problem, don&amp;#39;t hesitate to tell me!&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>