<?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 receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/13024/uart-receive-in-background-without-callback-on-nrf52-sdk11</link><description>Hi, I&amp;#39;m looking for an easy way to use the UART in blocking mode (or something similiar) with a receive buffer that is filled in background: 
 
 If possible using EasyDMA for better performance and easier software design 
 TX data may either block</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 18 Apr 2016 12:18:57 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/13024/uart-receive-in-background-without-callback-on-nrf52-sdk11" /><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49656?ContentTypeID=1</link><pubDate>Mon, 18 Apr 2016 12:18:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c1cb9f13-f59b-4744-898c-2ee918fe3d8a</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@maxv: Have you tried the example I made below ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49655?ContentTypeID=1</link><pubDate>Fri, 15 Apr 2016 14:02:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8e90d183-e632-43e5-b185-734d321c17d3</guid><dc:creator>maxv</dc:creator><description>&lt;p&gt;@puz_md: Thanks for the update. I probably will try your idea and see how well it works. More here, if I get there.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49654?ContentTypeID=1</link><pubDate>Fri, 15 Apr 2016 13:43:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e34613ad-b235-4805-8de2-5e597399574a</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;@maxv: No real solution. You could trigger a buffer change with the STOP_RX task (in combination with the END_RX - START_RX shortcut), which should return the current buffer even if it is not full, and continue with the next buffer. But there is a small chance that, if STOP_RX is called around the same time when the buffer actually becomes full, the buffer may be switched twice, before the next buffer has been set by the interrupt handler. In this case, it might come unpredictable behavior and/or data corruption. Just hoping for some more feedback from the Nordic employees if switching the buffer without this kind of glitch is supported by the hardware.&lt;/p&gt;
&lt;p&gt;One Idea I just had: You could configure a very large buffer and periodically trigger the STOP_RX task, just making sure that the buffer can never become full within the interval. This way, it should be pretty safe.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49653?ContentTypeID=1</link><pubDate>Fri, 15 Apr 2016 13:14:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8f1925c7-7bd2-46a2-b3f2-ecee32f264a4</guid><dc:creator>maxv</dc:creator><description>&lt;p&gt;Was there a resolution to this situation? I&amp;#39;m also trying to use EasyDMA + a timeout to do serial RX, but I run into the same problem that the UART event handler will not get called if the RX buffer hasn&amp;#39;t been completely filled. i.e. partial fills don&amp;#39;t eventually cause a timeout.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49660?ContentTypeID=1</link><pubDate>Tue, 12 Apr 2016 11:08:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1ee8cee7-9698-4341-8e98-0cda359f60b4</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;...then I think the UARTE device cannot be used for 100% reliable asynchronous (low latency) data reception the way it is currently designed :(&lt;/p&gt;
&lt;p&gt;It would be much easier if we could just access the current state of the receive buffer (RXD.AMOUNT), but I remember somebody saying this value would ony be valid when the ENDRX event has been triggered.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49659?ContentTypeID=1</link><pubDate>Tue, 12 Apr 2016 10:48:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:54cf7286-03ab-483e-8335-614e07f4bf2c</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I don&amp;#39;t think FLUSHRX task would work when the UARTE is still active in receiving mode.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49658?ContentTypeID=1</link><pubDate>Fri, 08 Apr 2016 13:53:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:449ecbba-87ea-420c-82cc-e50d67237577</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;Hi Hung, that&amp;#39;s just what I wrote in my reply 4 hours ago. I agree, it could come to glitches when ENDRX is triggered both by MAXCOUNT and STOPRX within a short intervall, without enough time to update the RX buffer in the event handler before the next ENDRX is triggered.&lt;/p&gt;
&lt;p&gt;Maybe bat13 has some time to try your code, I&amp;#39;m currently pretty busy with my project, using the classic app_uart for the time being. Further, I have old nRF52-DK&amp;#39;s that seem to be not 100% compatible with the official releases when using the timers. In my case, I wouldn&amp;#39;t use the timer to trigger the stop task, but the function call that tries to read data, using two RX buffers that create something like a circular FIFO.&lt;/p&gt;
&lt;p&gt;One more question about the FLUSHRX task: What happens if this task is triggert while receive operation is active? Might this task help to prevent glitches?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49657?ContentTypeID=1</link><pubDate>Fri, 08 Apr 2016 13:27:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8abd54e9-daaf-4280-865e-1fadd61620d4</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I understand your concern about when the number of byte received doesn&amp;#39;t reach the MAXCNT and we won&amp;#39;t able to know how many byte we receive until we trigger a STOPRX task. And then if we trigger the task we may interrupt reception. But what if we have a SHORT to connect ENDRX with STARTRX, we can restart receive mode. It&amp;#39;s the same when we reach MAXCNT and receive ENDRX.
Note that when ENDRX-STARTR short is triggered, there will be no RXTO event (I couldn&amp;#39;t find documentation about this, need to double check)&lt;/p&gt;
&lt;p&gt;I implemented a small example. That I use an app timer to trigger a STOPRX task every second. I am not 100% sure there will be no glitch since there is a chance that the STOPRX task happens at the same time with the ENDRX from MAXCOUNT reached event. It could be a race condition there.
A small modification in nrf_drv_uart.c added, I commented out  &lt;code&gt;if (amount == m_cb.rx_buffer_length)&lt;/code&gt; in uarte_irq_handler().
Could you try the example and let me know if it works for you? (SDK v11)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/uart-_2D00_-EasyDMA.zip"&gt;uart - EasyDMA.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Posted this without reading the previous answers, I agree with puz_md and bat13 )&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49665?ContentTypeID=1</link><pubDate>Fri, 08 Apr 2016 12:17:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0add1d92-e9ad-436c-a3a8-e23e42f7bd04</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;if the ENDRX-STARTRX shortcut is not set, there will be no &amp;quot;next buffer&amp;quot;. And if the shortcut is set, receiving will be restarted and no RXTO will be issued. A new buffer is only used at the moment the STARTRX task is triggered. But like I saif, RXTO only seems to make sense when using flow control. Without flow control, it may be used, but doesn&amp;#39;t help very much.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49664?ContentTypeID=1</link><pubDate>Fri, 08 Apr 2016 12:03:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b0b5801b-4294-41dc-98e1-845c079cdd95</guid><dc:creator>bat13</dc:creator><description>&lt;p&gt;I read it in the documentation. But in this case, all remaining data from the FIFO falls to the next buffet (in theory, the reception time is active). Therefore, such additional processing RXTO not needed. Maybe I&amp;#39;m wrong :)
Another question, if happened NRF_UARTE_EVENT_ENDRX, but the data did not come, whether to switch to the next buffer will happen. I do not tested it yet.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49663?ContentTypeID=1</link><pubDate>Fri, 08 Apr 2016 11:52:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1435c143-ce1d-4f4a-9595-2187d31c0bdf</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;UARTE does have a small internal RX FIFO. It can receive up to 4 bytes after the RX_STOP task has been triggered (in fact that seems to be intended for robust flow control when the communication partner sends some more bytes after RTS is released). So, if the STOPRX task is triggered, some more bytes may reach the RX circuit, and they may be received after the ENDRX event has been triggered. This is why, after receiving the last valid buffer in ENDRX, one more buffer can be used in RXTO (timeout) to read those remaining bytes into a separate buffer. If you don&amp;#39;t use flow control, you can ignore the FLUSHRX task as you will lose data anyway (because there is no flow control that stops the sender).&lt;/p&gt;
&lt;p&gt;The great benefit of EasyDMA is that no interrupt is issued for each byte that has been received. This can greatly improve performance, and also, it makes the UART more robust while the high priority Bluetooth code within the SoftDevice is running which may delay your UART interrupt handler for so long that data will be due to a FIFO overflow - the hardware FIFO on the classic UART is only 6 bytes. With EasyDMA, you can use much larger buffers that are also handled in background (while BT code is running).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49662?ContentTypeID=1</link><pubDate>Fri, 08 Apr 2016 11:29:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ee86ebeb-ea94-4a57-a63f-47ba1d4f20ab</guid><dc:creator>bat13</dc:creator><description>&lt;p&gt;Launched double buffer (something like cyclic DMA mode to STM32). In the interrupt indicates the beginning or middle of the buffer. NRF_UARTE_SHORT_ENDRX_STARTRX automatically starts the next buffer. Working. Sometime timeout call nrf_drv_uart_rx_abort. I fall into NRF_UARTE_EVENT_ENDRX handler. I can get a part of the buffer and switch to the next. NRF_UARTE_EVENT_RXTO in such cases do not occur. Still in doubt about the loss of data. Perhaps it is necessary to cause NRF_UARTE_TASK_FLUSHRX. But I can not understand at what point. Reception do not stop.
Pooling is not very convenient. by Interrupt the flow of events would have been better.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49661?ContentTypeID=1</link><pubDate>Fri, 08 Apr 2016 09:40:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4674e89f-756d-4743-9acc-92d60a9ee9d2</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;Based on my discussion with bat13 in the comments, I have been looking into the UARTE documentation in Product Specification v1.0 and came to the following conclusion:&lt;/p&gt;
&lt;p&gt;My current assumption is that it should be possible to prevent data loss if the START_RX task is triggered immediately after the END_RX event (see shortcut in SHORTS register). If the corresponding shortcut is set, START_RX should be triggered by END_RX again, just like when the RX buffer has become full. If you have a look at figure 95, p332, the shortcut has to be reset to really stop reception (&amp;quot;ENDRX_STARTRX = 0&amp;quot;) If this bit stays 1, reception should continue.&lt;/p&gt;
&lt;p&gt;I didn&amp;#39;t have time yet to check if this feature is already supported by the driver already (when used in EasyDMA mode).&lt;/p&gt;
&lt;p&gt;Race conditions also seem to become important here: A critical situation is when STOP_RX is issued shortly after the current RX buffer becomes full and triggers a END_RX task - END_RX might be triggered twice within a short time, before there was time to update the double buffered pointers... this might lead to corruption of RX data. Is there a good way to prevent this scenario? Maybe the FLUSHRX task can help?&lt;/p&gt;
&lt;p&gt;I&amp;#39;m really curious about is the FLUSHRX task. According to the current Product Specification, it is only used if RX has been stopped. Maybe it can also be used during reception to switch  to the next RX buffer? Although that would be pretty much the same as described above with the STOP_RX task and the shortcut. Would be nice to have some more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One more question to the Nordic engineers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From the moment when a full buffer is detected (which initiates a buffer update using the RX.PTR) to the moment when the RX.END interrupt handler is called, is it possible that application code which writes to the RX_STOP task is executed? And how will the STOP_RX task be handled in this case?&lt;/p&gt;
&lt;p&gt;Clean buffer switching might work under the following conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Either a buffer full condition immediately interrupts the application control flow and switches to the END_RX interrupt hander, so that calling the STOP_RX task from a lower priority than the interrupt handler is prevented&lt;/li&gt;
&lt;li&gt;Or a STOP_RX task that is issued from the moment when a full buffer is detected to the moment the interrupt handler is called will be merged with the full buffer STOP_RX event&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;To the application engineers: A workaround proposal&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a large RX buffer which cannot become full within a defined time interval, even in a worst case scenario.&lt;/li&gt;
&lt;li&gt;Within the mentioned time interval, periodically call the STOP_RX task to switch to the next buffer. It might even be possible to use a hardware timer and the PPI to trigger the STOP_RX task.&lt;/li&gt;
&lt;li&gt;In the END_RX event handler, configure the next buffer (double buffering) and handle the bytes received (if any).&lt;/li&gt;
&lt;li&gt;In your timing calculations, take the timing requirements from the SoftDevice into account (it might be busy for quite some time and delay the END_RX handler, so that more data might arrive in the buffer than originally calculated).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This way, using the EasyDMA feature, it should be possible to implement robust UART reception that doesn&amp;#39;t lose data when the SoftDevice is active (e.g. during a radio event). The old UART device only had a short FIFO buffer that would overflow on long SoftDevice activities.&lt;/p&gt;
&lt;p&gt;The major drawback of this implementation is that it will cause periodic interrupts, even if no data has been received.&lt;/p&gt;
&lt;p&gt;Maybe the sample posted by Hung Bui (have a look at his post) shows something similiar to this workaround. I didnt have time to try it out yet. My extra suggestion to his implementation would be to use a large RX buffer that cannot be filled within the configured time interval (+ some extra time for the SoftDevice).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49650?ContentTypeID=1</link><pubDate>Fri, 08 Apr 2016 09:36:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fccb5687-63df-46c9-9bbd-054d533a80bf</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;@bat13: Oh, that&amp;#39;s bad news :( But I can&amp;#39;t imagine that the Nordic folks would create a device that is not capable of receiving arbitrary data... maybe the product specification is not complete yet. I also had a look at the UARTE documentation and I think some parts are still missing. Hopefully, some Nordic employees will give some feedback soon...&lt;/p&gt;
&lt;p&gt;I have looked a bit into the UARTE specification, I&amp;#39;m posting my current assumptions in a separate reply to this thread, hopefully it will be recognized by some Nordic employees ;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49649?ContentTypeID=1</link><pubDate>Thu, 07 Apr 2016 18:46:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:57af78c1-a3e8-4ee9-ac6f-66c2bfe92a5a</guid><dc:creator>bat13</dc:creator><description>&lt;p&gt;Quickly I looked through the documentation. DMA has an automatic double buffer. But the trouble is that the access to the current counter is available only after the end of the RX. And, as I understand it, nrf_drv_uart_rx_abort give access, but will interrupt the reception. This may result in loss of data at high speeds, when Ble stack can tighten this pause. Hopefully I missed something.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49648?ContentTypeID=1</link><pubDate>Thu, 07 Apr 2016 17:48:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:807ab1dc-da30-43f0-8d3b-12ec60b96920</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;@bat13: That&amp;#39;s the idea I had myself. It would be nice if after a RX abort, if the second buffer would immediately be activated. Just try it out and give me some feedback if it works ;-) Although I fear there is a small risk that data may be lost while the EasyDMA buffers are updated by the driver (maybe they will have to trigger the STOP task, update the buffer, and trigger the START task again. And data transmitted within this interval gets lost.&lt;/p&gt;
&lt;p&gt;I have another Idea that I would like to try out: I suppose there shuold be a register containing the current offset within the EasyDMA RX buffer. If this register is readable by software, application code can find out how many bytes have already been received in the current buffer. If you use two adjacent buffers, you could treat them as a circular FIFO and update head and tail each time a RX complete event is triggered. But you can also update the tail and read out some bytes from the active buffer before the event is triggered if you can find out the EasyDMA state. Altough you have to make sure that there are no race conditions when updating the tail (different control flows!). In short, that&amp;#39;s what I would like to implement, If I can get some time for this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49647?ContentTypeID=1</link><pubDate>Thu, 07 Apr 2016 17:19:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:68b4aeb4-66cb-414c-a8ca-7b18256eaf5c</guid><dc:creator>bat13</dc:creator><description>&lt;p&gt;&amp;quot;But if the data stream suddely stops and your buffer does not become full with the last rx byte&amp;quot; - That&amp;#39;s what I meant, &amp;quot;if the flow is interrupted.&amp;quot; As I understand it, periodically causing nrf_drv_uart_rx_abort can interrupt the reception NRF_UARTE_EVENT_RXTO. But what next? if automatic switching to the second buffer will happen? And you can analyze the leisurely first buffer? Where can I read more about the behavior nrf52 in this case?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49646?ContentTypeID=1</link><pubDate>Thu, 07 Apr 2016 16:45:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dab347c8-415a-40fd-a648-c2a126d4b328</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;@bat13: if you want to receive continuous data, you can use nrf_drv_uart in EasyDMA mode. As far as I understand, you will get callbacks each time a complete buffer has been received (I didn&amp;#39;t try it out yet, though).&lt;/p&gt;
&lt;p&gt;If you want to receive continuous data, the current driver should just work fine (use the double buffering by handing over two buffers with nrf_drv_uart_rx(), and one buffer each time you get the data ready event). But if the data stream suddely stops and your buffer does not become full with the last rx byte, you might wait forever for the final data bytes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49645?ContentTypeID=1</link><pubDate>Thu, 07 Apr 2016 16:40:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30ed593b-00cd-4a06-b2d9-6b00b467312f</guid><dc:creator>Christopher</dc:creator><description>&lt;p&gt;@puz_md Our next product will be based on nRF52 of course ;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49644?ContentTypeID=1</link><pubDate>Thu, 07 Apr 2016 16:22:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:66f02db9-e2e0-47e1-b84d-39387a61cc63</guid><dc:creator>bat13</dc:creator><description>&lt;p&gt;I am also looking for an example EasyDNA+UART. Nrf51 lost data at high speeds without DMA. Moved to the DDK 52, but now  can&amp;#39;t understand how to automatically receive a portion of the data, if the flow is interrupted.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49652?ContentTypeID=1</link><pubDate>Thu, 07 Apr 2016 12:13:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2753d5b5-4bec-45cf-8801-06e8f185b8b0</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;Thanks for the reply. Although, the post you mentioned doesn&amp;#39;t give much new information. My conclusion at the moment is that it is currently not feasible to use the UART with EasyDMA in a FIFO-like scenario (receiving asynchroneous randomly sized data packets) as there is no such driver available.&lt;/p&gt;
&lt;p&gt;I have considered implementing a driver extension on my own. But I&amp;#39;m a bit short on time, so maybe I&amp;#39;ll just continue using the old app_uart_fifo without EasyDMA.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49643?ContentTypeID=1</link><pubDate>Thu, 07 Apr 2016 11:38:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4294db98-01d2-4bcb-9a38-302eec3278ca</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;@metch: Do you already have a product that uses the nRF51? If not, why not moving to the nRF52 platform if you need efficient UART handling?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49642?ContentTypeID=1</link><pubDate>Wed, 06 Apr 2016 16:58:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd88cb6b-7e9d-454d-ae07-98b65ab3c458</guid><dc:creator>Christopher</dc:creator><description>&lt;p&gt;I am also looking for an example of the UART with DMA. I currently use the UART with HFC on the nRF51, but unfortunately there is no DMA with the nRF51 :(&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART receive in background without callback on nRF52 SDK11</title><link>https://devzone.nordicsemi.com/thread/49651?ContentTypeID=1</link><pubDate>Wed, 06 Apr 2016 16:56:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:11833061-551c-423b-af3a-1d09bd0c5533</guid><dc:creator>Christopher</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/question/71094/app_uart_fifo-dma-and-buffers/?answer=71285#post-id-71285"&gt;This post&lt;/a&gt; contains some information about the UART peripheral and example with the nRF52. See the @hungbui &amp;#39;s answer.&lt;/p&gt;
&lt;p&gt;In SDK11, two issues with the UART have been fixed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;UART: Fixed a glitch on TX pin when initializing the driver&lt;/li&gt;
&lt;li&gt;UART: Fixed the problem that TX bytes were sent in wrong order in app_uart_fifo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The documentation about the FIFO implementation is available in the &amp;quot;SDK common libraries&amp;quot; section, see &lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v11.0.0%2Fgroup__app__fifo.html&amp;amp;cp=4_0_0_6_8_5"&gt;this link&lt;/a&gt;. The FIFO API has a new function in SDK11.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>