<?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>[nRF Connect SDK] Async UART Rx loss</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/86459/nrf-connect-sdk-async-uart-rx-loss</link><description>Target nRF52832(nrf52dk_nrf52832) SDK NCS v1.9.1 Base source: C:\Users\user\ncs\v1.9.1\nrf\samples\bluetooth\peripheral_hids_keyboard I add uart implementation from following source. C:\Users\user\ncs\v1.9.1\nrf\samples\peripheral\lpuart 
 baud rate:</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 08 Apr 2022 05:52:47 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/86459/nrf-connect-sdk-async-uart-rx-loss" /><item><title>RE: [nRF Connect SDK] Async UART Rx loss</title><link>https://devzone.nordicsemi.com/thread/362479?ContentTypeID=1</link><pubDate>Fri, 08 Apr 2022 05:52:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:407fb1a9-f998-411e-a25c-1dd444a7fed1</guid><dc:creator>Tim Hwang</dc:creator><description>&lt;p&gt;Thanks for updating.&lt;br /&gt;I&amp;#39;m reviewing&amp;nbsp;&amp;quot;interrupt driven&amp;quot; first. Take you time.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF Connect SDK] Async UART Rx loss</title><link>https://devzone.nordicsemi.com/thread/362301?ContentTypeID=1</link><pubDate>Thu, 07 Apr 2022 11:01:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:98d94d96-ed42-48e8-943c-2469ad03193d</guid><dc:creator>&amp;#216;ivind</dc:creator><description>&lt;p&gt;As others have posted, we have had multiple people report similar issues, and we are still looking into the cause.&lt;/p&gt;
&lt;p&gt;I will update you when we know more.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF Connect SDK] Async UART Rx loss</title><link>https://devzone.nordicsemi.com/thread/361129?ContentTypeID=1</link><pubDate>Fri, 01 Apr 2022 05:33:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:252fb885-38d2-4fd5-80a2-5b6084b8f9e0</guid><dc:creator>Tim Hwang</dc:creator><description>&lt;p&gt;Thanks for updating.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF Connect SDK] Async UART Rx loss</title><link>https://devzone.nordicsemi.com/thread/361127?ContentTypeID=1</link><pubDate>Fri, 01 Apr 2022 05:07:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:89939ec0-6ace-4982-bd66-12e056fa321d</guid><dc:creator>MaLu</dc:creator><description>&lt;p&gt;I opened a thread on this issue a while ago. (at least it sounds like the same)&amp;nbsp;&lt;br /&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/85128/uart-wrong-offset-after-buffer-overflow"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/85128/uart-wrong-offset-after-buffer-overflow&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sadly no Info on this so far.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF Connect SDK] Async UART Rx loss</title><link>https://devzone.nordicsemi.com/thread/361110?ContentTypeID=1</link><pubDate>Thu, 31 Mar 2022 23:28:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1a2b0a23-a689-4213-8211-9f10e3bf8fda</guid><dc:creator>Tim Hwang</dc:creator><description>&lt;p&gt;nrf52dk_nrf52832.overlay&lt;/p&gt;
&lt;p&gt;&amp;amp;uart0 {&lt;br /&gt; status = &amp;quot;okay&amp;quot;;&lt;br /&gt; tx-pin = &amp;lt;14&amp;gt;;&lt;br /&gt; rx-pin = &amp;lt;13&amp;gt;;&lt;br /&gt; rts-pin = &amp;lt;17&amp;gt;;&lt;br /&gt; cts-pin = &amp;lt;16&amp;gt;; &lt;br /&gt; current-speed = &amp;lt;921600&amp;gt;;&lt;br /&gt; hw-flow-control;&lt;br /&gt;};&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF Connect SDK] Async UART Rx loss</title><link>https://devzone.nordicsemi.com/thread/360946?ContentTypeID=1</link><pubDate>Thu, 31 Mar 2022 08:21:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:113c698f-77ea-4532-b21d-b70df26e1c3a</guid><dc:creator>Tim Hwang</dc:creator><description>&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void uart_callback(const struct device *dev,
			  struct uart_event *evt,
			  void *user_data)
{
	struct device *uart = user_data;
	int err;

	printk(&amp;quot;evt-&amp;gt;type %d\n&amp;quot;, evt-&amp;gt;type);

	switch (evt-&amp;gt;type) {
	case UART_TX_DONE:
		//LOG_INF(&amp;quot;Tx sent %d bytes&amp;quot;, evt-&amp;gt;data.tx.len);
		break;

	case UART_TX_ABORTED:
		//LOG_ERR(&amp;quot;Tx aborted&amp;quot;);
		break;

	case UART_RX_RDY:
		recv += evt-&amp;gt;data.rx.len;
		LOG_ERR(&amp;quot;evt-&amp;gt;data.rx.len %d&amp;quot;, evt-&amp;gt;data.rx.len);
		LOG_ERR(&amp;quot;evt-&amp;gt;data.rx.offset %d&amp;quot;, evt-&amp;gt;data.rx.offset);
		LOG_ERR(&amp;quot;recv2 %d&amp;quot;, recv);
		break;

	case UART_RX_BUF_REQUEST:
	{
		uint8_t *buf;
		//LOG_ERR(&amp;quot;UART_RX_BUF_REQUEST&amp;quot;);

		err = k_mem_slab_alloc(&amp;amp;uart_slab, (void **)&amp;amp;buf, K_NO_WAIT);
		__ASSERT(err == 0, &amp;quot;Failed to allocate slab&amp;quot;);

		err = uart_rx_buf_rsp(uart, buf, BUF_SIZE);
		__ASSERT(err == 0, &amp;quot;Failed to provide new buffer&amp;quot;);
		break;
	}

	case UART_RX_BUF_RELEASED:
		//LOG_ERR(&amp;quot;UART_RX_BUF_RELEASED&amp;quot;);
		k_mem_slab_free(&amp;amp;uart_slab, (void **)&amp;amp;evt-&amp;gt;data.rx_buf.buf);
		break;

	case UART_RX_DISABLED:
		//LOG_ERR(&amp;quot;UART_RX_DISABLED&amp;quot;);
		{
		uint8_t *buf;
		err = k_mem_slab_alloc(&amp;amp;uart_slab, (void **)&amp;amp;buf, K_NO_WAIT);
		__ASSERT(err == 0, &amp;quot;Failed to alloc slab&amp;quot;);

		err = uart_rx_enable(uart, buf, BUF_SIZE, SYS_FOREVER_MS/*UART_WAIT_FOR_RX*/);
		__ASSERT(err == 0, &amp;quot;Failed to enable RX&amp;quot;);
		}
		break;

	case UART_RX_STOPPED:
		break;
	}
}

static void uart_init(void)
{
	static const struct device *lpuart;
	lpuart = device_get_binding(&amp;quot;UART_0&amp;quot;);
	int err;
	uint8_t *buf;

	if (lpuart == NULL) {
        printk(&amp;quot;Cannot initialize UART0 device\n&amp;quot;);
    }
	else {
	   printk(&amp;quot;Getting done UART_0\n&amp;quot;);

		err = k_mem_slab_alloc(&amp;amp;uart_slab, (void **)&amp;amp;buf, K_NO_WAIT);
		__ASSERT(err == 0, &amp;quot;Failed to alloc slab&amp;quot;);

		err = uart_callback_set(lpuart, uart_callback, (void *)lpuart);
		__ASSERT(err == 0, &amp;quot;Failed to set callback&amp;quot;);

		err = uart_rx_enable(lpuart, buf, BUF_SIZE, 10000/*UART_WAIT_FOR_RX*/);
		__ASSERT(err == 0, &amp;quot;Failed to enable RX&amp;quot;);
	}
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>