<?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>UART low power shutdown issue</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/53121/uart-low-power-shutdown-issue</link><description>Hi! We&amp;#39;re developing on an nrf52840dk and have been running in to some problems when we want the system to only pull currents in the size of a few microamps. As our system enters a low-power mode it shuts down all initiated peripherals. However for the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 12 Oct 2019 18:37:32 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/53121/uart-low-power-shutdown-issue" /><item><title>RE: UART low power shutdown issue</title><link>https://devzone.nordicsemi.com/thread/214677?ContentTypeID=1</link><pubDate>Sat, 12 Oct 2019 18:37:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:60f9309a-70e5-4db6-8ed8-d4b28ae172ec</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;Thanks! I merged the latest nrfx&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART low power shutdown issue</title><link>https://devzone.nordicsemi.com/thread/214595?ContentTypeID=1</link><pubDate>Fri, 11 Oct 2019 12:07:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:94635139-366f-4821-a717-56738c1218d4</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote userid="65515" url="~/f/nordic-q-a/53121/uart-low-power-shutdown-issue/214450"]Nordic might be able to say why not.[/quote]
&lt;p&gt;New investigations shows that the real root cause for this issue is just a bug in the UARTE driver. The&amp;nbsp;new driver version now waits for&amp;nbsp;&lt;span&gt;TX_STOPPED event before disabling the&amp;nbsp;peripheral. This&amp;nbsp;gracefully uinit of the UARTE peripheral was introduced in nrfx v1.7.2. See &lt;a href="https://github.com/NordicSemiconductor/nrfx/blob/master/drivers/src/nrfx_uarte.c#L266"&gt;this link.&lt;/a&gt;&amp;nbsp;(Note that SDK 15.3 is bundled with nrfx v1.6.2)&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART low power shutdown issue</title><link>https://devzone.nordicsemi.com/thread/214450?ContentTypeID=1</link><pubDate>Thu, 10 Oct 2019 15:27:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d62d9cf7-9d5e-478d-88ba-f8fec6510b09</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;You have identified the usual workaround; search for &amp;quot;0x40002FFC&amp;quot; or &amp;quot;&lt;span&gt;0x40028FFC&amp;quot;&lt;/span&gt; to see multiple posts on this issue. It is covered implicitly by errata 89 for a different peripheral ([89] GPIOTE: Static 400 &amp;micro;A current while using GPIOTE), but there doesn&amp;#39;t seem to have been a specific errata issued for the uart, which has even higher unwanted current; Nordic might be able to say why not.&lt;/p&gt;
&lt;p&gt;I have these notes in my code though edit I see 2 versions:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;  // Terminate UART transfers serial port - testing this to see if affects power consumption ToDo look into this again
  app_uart_close();
  // In app_uart_close() peripheral is disabled by writing 0 to the NRF_UARTE0-&amp;gt;ENABLE
  // register. On 2840 this seems to not stop the HF clk and close the DMA bus, which could be a bug. Power
  // cycle the peripheral after calling app_uart_close() the current consumption goes down.
  *(volatile uint32_t *)0x40028FFC = 0;
  *(volatile uint32_t *)0x40028FFC;
  *(volatile uint32_t *)0x40028FFC = 1;
  or
  *(volatile uint32_t *)0x40002FFC = 0;
  *(volatile uint32_t *)0x40002FFC;
  *(volatile uint32_t *)0x40002FFC = 1;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Given the following I assume the first is correct (which we have used on Uart 0):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define NRF_UARTE0_BASE             0x40002000UL
#define NRF_UART0_BASE              0x40002000UL
and
#define NRF_UARTE10_BASE            0x40020000UL
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;See this post:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/52921/low-power-system-on-mode-in-ble_uart_app"&gt;low-power-system-on-mode-in-ble_uart_app&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>