<?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>nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/435/nrf51822-uart-flow-control</link><description>Hello, 
 I am using nrf starter kit and nRF51822 DK modules atached. I&amp;#39;m using external usb-com uart modules (based on FT232 chips) for communication with PC (Win7) and hyper terminal clients for data send/receive. Currently I&amp;#39;m experimenting with modified</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 15 Dec 2015 12:42:20 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/435/nrf51822-uart-flow-control" /><item><title>RE: nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/thread/2242?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2015 12:42:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bc81cb9b-4aaa-4d1b-89da-b7b2c1ba9dd7</guid><dc:creator>Christopher</dc:creator><description>&lt;p&gt;Thank you @Aryan, glad to hear that this bug is now fixed.
The HAL and low level drivers have changed a lot in SDK10. I will try the new UART driver with HFC soon.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/thread/2241?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2015 12:33:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:05c31727-c803-4c73-86a2-a54db71e7df8</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;I am sorry Christopher, this is actually fixed in SDK10, I will remove this from the list.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/thread/2240?ContentTypeID=1</link><pubDate>Tue, 24 Nov 2015 07:13:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aedc77a1-094f-4940-a170-0df232091d57</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Unfortunately :(&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/thread/2239?ContentTypeID=1</link><pubDate>Mon, 23 Nov 2015 21:23:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7c61f7a9-73b7-4459-87e6-8d54d4684c41</guid><dc:creator>Christopher</dc:creator><description>&lt;p&gt;Still a bug in the SDK10 :(
&lt;a href="https://devzone.nordicsemi.com/question/57411/what-are-nrf51-sdk-100-known-issues/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/thread/2236?ContentTypeID=1</link><pubDate>Fri, 18 Sep 2015 10:18:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8724a263-48bd-4ce1-ae7a-574f3aa68879</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;yes, i see that it is not the best solution and has opened up ways to deadlock the reads.
I think the best solution is along with your fix, we should add below&lt;/p&gt;
&lt;p&gt;whenever app_fifo_get is called,
if the fifo was full, empty one slot to user byte address. Then read the EVENTS_RXDRDY status, and if set,  new read on RXD and clear RXRDY event. This will make sure that the last ignored read will be done here.&lt;/p&gt;
&lt;p&gt;Also the clearing of event should be done like this inside UART0_IRQHandler&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if (FIFO_LENGTH(m_rx_fifo) &amp;lt;= m_rx_fifo.buf_size_mask)
{
    err_code = app_fifo_put(&amp;amp;m_rx_fifo, (uint8_t) NRF_UART0-&amp;gt;RXD);

    // Clear UART RX event flag
    NRF_UART0-&amp;gt;EVENTS_RXDRDY = 0;    
}
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/thread/2238?ContentTypeID=1</link><pubDate>Thu, 17 Sep 2015 11:01:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0cc028ae-da80-44d9-a600-51ae535a97a9</guid><dc:creator>Christopher</dc:creator><description>&lt;p&gt;FYI, the RXD register is not any more read each time the UART0 ISR occurs. To avoid deadlock and to resume to UART stream (to active the CTS again), the &lt;code&gt;app_uart_get&lt;/code&gt; function must also be updated: the RXD register must be read if an overflow occurs.&lt;/p&gt;
&lt;p&gt;I am not sure if my patch is the best solution, but now you are aware of this bug. Thank you @Aryan to add it on the list.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/thread/2237?ContentTypeID=1</link><pubDate>Thu, 17 Sep 2015 09:56:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a76bb190-a832-48c8-85c5-01a9b29f7792</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;I have tested your fix and it worked for me too. I have to include this in the &lt;a href="https://devzone.nordicsemi.com/question/47462/what-are-sdk-90-known-issues/?answer=47463#post-id-47463"&gt;known bugs of SDK 9.0&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/thread/2235?ContentTypeID=1</link><pubDate>Thu, 09 Jul 2015 14:05:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8cc9c499-0bcd-4565-ab5f-d6cff03546ae</guid><dc:creator>Christopher</dc:creator><description>&lt;p&gt;The latest &lt;code&gt;app_uart_fifo&lt;/code&gt; file (included in the SDK 9) contains a bug. 3 bytes where systematically lost (even with HFC) because of a bug in the &lt;code&gt;UART0_IRQHandler&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;Be sure that the in the &lt;code&gt;UART0_IRQHandler&lt;/code&gt; function you check that the RX FIFO is not full before reading the &lt;code&gt;RXD&lt;/code&gt; register or some bytes will be lost !&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if (FIFO_LENGTH(m_rx_fifo) &amp;lt;= m_rx_fifo.buf_size_mask)
    err_code = app_fifo_put(&amp;amp;m_rx_fifo, (uint8_t) NRF_UART0-&amp;gt;RXD);
    // ...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I successfully transferred a 2MB file over a UART link (115&amp;#39;200 bauds) without any error, using the new chip revision with the six-byte buffer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51822 uart flow control</title><link>https://devzone.nordicsemi.com/thread/2234?ContentTypeID=1</link><pubDate>Fri, 13 Sep 2013 11:43:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7a8fef38-dc1b-4940-85e2-f6beca2ab63f</guid><dc:creator>Ole Morten</dc:creator><description>&lt;p&gt;Beware that there is a bug in the nrf51_bitfields.h file, in that the value for 921600 baud rate is incorrect. It should therefore not be used, and if you do, the actual baud rate might be different from expected. See &lt;a href="https://devzone.nordicsemi.com/index.php/uart-baudrate-register-values"&gt;this question&lt;/a&gt; for information on baud rate calculation. Does using a somewhat different baud rate help on this problem?&lt;/p&gt;
&lt;p&gt;If not, this could also be due to the peer device not reacting quick enough when RTS is deasserted, and by that overflowing the buffer. This is a problem that I believe has been seen internally. The upcoming, new chip revision therefore features a six-byte buffer to alleviate this. It could therefore also be worth it to try getting hold of this revision and test whether you see different behavior. Please contact the sales manager for your area for more information on this. If you don&amp;#39;t have his contact information, please send me a private message with your location.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>