<?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>Serial RX DATA event not firing after hard reset</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/48324/serial-rx-data-event-not-firing-after-hard-reset</link><description>Hi Nordic team, 
 I have a curious problem I need a little help with: 
 (NRF52840 &amp;amp; SDK 15.3) 
 I have a project which is an integration of the ble_uart example and the serial_uartes example. I&amp;#39;ve removed all references to the older app_uart functions</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 14 Jun 2019 15:32:00 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/48324/serial-rx-data-event-not-firing-after-hard-reset" /><item><title>RE: Serial RX DATA event not firing after hard reset</title><link>https://devzone.nordicsemi.com/thread/192973?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 15:32:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7e2350eb-e96e-4bcd-981a-73a06d47f5ba</guid><dc:creator>Pete W</dc:creator><description>&lt;p&gt;I think I know what is causing the overrun error on power up - the GPS engine defaults to sending half a dozen NMEA messages every second before I reconfigure it for one message every 5 seconds. When I do a soft reset the GPS is already reconfigured so I don&amp;#39;t get the overruns.&lt;/p&gt;
&lt;p&gt;I figured the solution would be to do call &lt;strong&gt;nrf_serial_rx_drain(&lt;/strong&gt;xxxx&lt;strong&gt;)&lt;/strong&gt;&amp;nbsp; &amp;nbsp;when the &lt;strong&gt;NRF_SERIAL_EVENT_DRV_ERR&lt;/strong&gt; event occurs, but this is making no difference, and I continue to get an overrun error even when the GPS been has slowed down, unless I soft-reset.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Serial RX DATA event not firing after hard reset</title><link>https://devzone.nordicsemi.com/thread/192931?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 12:53:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:96f39f60-9f58-4f96-a11e-bf85a71f0a7e</guid><dc:creator>Pete W</dc:creator><description>&lt;p&gt;I tried using the libuarte library as suggested, and although I got the example working, I had tremendous difficulty after integrating the BLE code - couldn&amp;#39;t get the sdk_config settings right to get it to compile.&lt;br /&gt;&lt;br /&gt;After more digging it appears that I am getting a NRF_SERIAL_EVENT_DRV_ERR event everytime I&amp;#39;m expecting a character. When I inspect&amp;nbsp; p_event-&amp;gt;data.error.error_mask at ine 161 in nrf_serial.c, it is set to 1, which I believe is an overrun error. Any ideas what can be causing this?&lt;br /&gt;&lt;br /&gt;Incidently, while investigating, I saw what I think is a bug in integration\nrfx\legacynrf_drv_uart.h:&lt;br /&gt;&lt;br /&gt;#define NRF_UART_ERROR_FRAMING_MASK NRF_UARTE_ERROR_PARITY_MASK&lt;br /&gt;&lt;br /&gt;I suspect this should be&lt;br /&gt;&lt;br /&gt;#define NRF_UART_ERROR_FRAMING_MASK NRF_UARTE_ERROR_&lt;strong&gt;FRAMING&lt;/strong&gt;_MASK&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt;Pete&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Serial RX DATA event not firing after hard reset</title><link>https://devzone.nordicsemi.com/thread/192645?ContentTypeID=1</link><pubDate>Thu, 13 Jun 2019 11:07:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:62e71416-4fa8-4b5a-b8a1-8202d32141fc</guid><dc:creator>Pete W</dc:creator><description>&lt;p&gt;Thanks for the reply Kenneth. I tried adding a pull-up but it made not difference. I&amp;#39;m surprised that you recommend not using the serial library, because I keep reading that it is the new improved one for handling multiple uarts. And I have no problems until I enable the BLE code. That&amp;#39;s what&amp;#39;s puzzling. I&amp;#39;ll have a look at using the nrf_drv_uart_xx functions directly, and investigate the experimental libraries, but I&amp;#39;d like to understand why the nrf_serial is breaking. If you can think of anything else please let me know. Thanks.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Pete&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Serial RX DATA event not firing after hard reset</title><link>https://devzone.nordicsemi.com/thread/192046?ContentTypeID=1</link><pubDate>Tue, 11 Jun 2019 11:56:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:92cb4f78-31b1-4e5e-be61-46283c9856b8</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Likely you may avoid your problem if you use an external pull-up resistor on the RXD line, since the problem here is likely caused by floating input pin which will stop, assert or hardfault the application.&lt;/p&gt;
&lt;p&gt;However the serial library is not great at handling errors in general, so my recommendation is to not use the serial library, but instead use nrf_drv_uart.h directly, by using the functions nrf_drv_uart_rx(...) and nrf_drv_uart_tx(...). For instance the nrf_cli and our serializers use nrf_drv_uart.h directly. By using the driver directly you also have full control of how you want to handle UART errors (e.g. ignore them instead of hard faulting/stopping UART to work).&lt;/p&gt;
&lt;p&gt;Alternatively I would recommend to try nrf_libuarte_async driver for UARTE and lossless reception without HWFC.&amp;nbsp;There are experimental_cli_libuarte and experimental_libuarte example in the SDK that show usage. They are labelled experimental due to lack of documentation but it has been thoroughly tested. The stability and quality of the libuarte is very good. The libuarte library requires one TIMER, one RTC or TIMER, couple of PPI channels (~3 if recall correctly).&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>