<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: What should I do after UART FIFO overruned? in Vybrid Processors</title>
    <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300842#M2609</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Katsukura,&lt;/P&gt;&lt;P&gt;when overflow occur than it is too late to get right data. Honestly it is not important, what is in the buffer - something has been lost already.&lt;/P&gt;&lt;P&gt;To ensure right work of your UART communication and prevent overflow situation you can use Watermark feature. For example for UART receive it is RXWATER register. &lt;/P&gt;&lt;P&gt;When the number of datawords in the receive FIFO/buffer is equal to or greater than the value in this register field, an interrupt or a DMA request is generated.&lt;/P&gt;&lt;P&gt;/Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 27 Mar 2014 16:25:57 GMT</pubDate>
    <dc:creator>jiri-b36968</dc:creator>
    <dc:date>2014-03-27T16:25:57Z</dc:date>
    <item>
      <title>What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300840#M2607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Forum members,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using UART0 with receive FIFO(16 data words) function is enabled.&lt;/P&gt;&lt;P&gt;It works fine normally, but once it overflowed it works weirdly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example,&amp;nbsp; I sent strings "ABCDEFGHIJKLMLOPQRSTUVWXYZ" repeatedly to Vybrid from my PC.&lt;/P&gt;&lt;P&gt;After UART0 receive FIFO was overflowed, &lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;my program read D register until RXEMPT bit becomes 1.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Also my program checked RCFIFO register for debug.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Followings are register reading log.&lt;/P&gt;&lt;P&gt;( Left side of "="&amp;nbsp; shows register name or flag name, right side of "=" shows read value. )&lt;/P&gt;&lt;P&gt;( Top is oldest, bottom is newest.)&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;RXOF=1&lt;/LI&gt;&lt;LI&gt;RCFIFO=15&lt;/LI&gt;&lt;LI&gt;D='H'&lt;/LI&gt;&lt;LI&gt;RCFIFO=14&lt;/LI&gt;&lt;LI&gt;D='I'&lt;/LI&gt;&lt;LI&gt;RCFIFO=13&lt;/LI&gt;&lt;LI&gt;D='J'&lt;/LI&gt;&lt;LI&gt;RCFIFO=13&lt;/LI&gt;&lt;LI&gt;D='K'&lt;/LI&gt;&lt;LI&gt;RCFIFO=12&lt;/LI&gt;&lt;LI&gt;D='L'&lt;/LI&gt;&lt;LI&gt;RCFIFO=11&lt;/LI&gt;&lt;LI&gt;D='M'&lt;/LI&gt;&lt;LI&gt;RCFIFO=10&lt;/LI&gt;&lt;LI&gt;D='N'&lt;/LI&gt;&lt;LI&gt;RCFIFO=9&lt;/LI&gt;&lt;LI&gt;D='O'&lt;/LI&gt;&lt;LI&gt;RCFIFO=8&lt;/LI&gt;&lt;LI&gt;D='P'&lt;/LI&gt;&lt;LI&gt;RCFIFO=7&lt;/LI&gt;&lt;LI&gt;D='Q'&lt;/LI&gt;&lt;LI&gt;RCFIFO=7&lt;/LI&gt;&lt;LI&gt;D='R'&lt;/LI&gt;&lt;LI&gt;RCFIFO=6&lt;/LI&gt;&lt;LI&gt;D='S'&lt;/LI&gt;&lt;LI&gt;RCFIFO=5&lt;/LI&gt;&lt;LI&gt;D='T'&lt;/LI&gt;&lt;LI&gt;RCFIFO=4&lt;/LI&gt;&lt;LI&gt;D='U'&lt;/LI&gt;&lt;LI&gt;RCFIFO=3&lt;/LI&gt;&lt;LI&gt;D='V'&lt;/LI&gt;&lt;LI&gt;RCFIFO=2&lt;/LI&gt;&lt;LI&gt;D='G'&lt;/LI&gt;&lt;LI&gt;RCFIFO=2&lt;/LI&gt;&lt;LI&gt;D='O'&lt;/LI&gt;&lt;LI&gt;RCFIFO=1&lt;/LI&gt;&lt;LI&gt;D='P'&lt;/LI&gt;&lt;LI&gt;RCFIFO=0&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;(In this case, no error was happened except fifo overrun error.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;Then Line 33, 35, 37 is weird.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I think those should be 'W', 'X', 'Y'&amp;nbsp; but&amp;nbsp; they are 'G', 'O', 'P'.&lt;/P&gt;&lt;P&gt;it seems the data in the receive FIFO was corrupted.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are there any special rules to read from D register after FIFO was overruned?&lt;/P&gt;&lt;P&gt;Please help us.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Makoto Katsukura&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Mar 2014 05:05:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300840#M2607</guid>
      <dc:creator>makotokatsukura</dc:creator>
      <dc:date>2014-03-21T05:05:42Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300841#M2608</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Additional information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In Vybrid Reference Manual, Rev. 5,&amp;nbsp; there is a chapter&amp;nbsp; "49.8.4.1 Overrun operation".&lt;/P&gt;&lt;P&gt;It says following instructions:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; 1. using CFIFO[RXFLUSH] to clear the buffer&lt;/P&gt;&lt;P&gt; 2. Clear S1[OR] &lt;/P&gt;&lt;P&gt; 3. Clear SFIFO [RXUF]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried above instruction too, but after that, read data from D register became corrupted.&lt;/P&gt;&lt;P&gt;For example, I send "ABC" to Vybrid from PC, but Vybrid only receive "AB" only.&lt;/P&gt;&lt;P&gt;After that, I send "D" to Vybrid, then Vybrid receive "C". It's weird.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It only happens after overrun occurred, so I don't think it is a H/W trouble.&lt;/P&gt;&lt;P&gt;Our Vybrid's UART works really fine in normal situation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Makoto Katsukura&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Mar 2014 11:21:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300841#M2608</guid>
      <dc:creator>makotokatsukura</dc:creator>
      <dc:date>2014-03-21T11:21:34Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300842#M2609</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Katsukura,&lt;/P&gt;&lt;P&gt;when overflow occur than it is too late to get right data. Honestly it is not important, what is in the buffer - something has been lost already.&lt;/P&gt;&lt;P&gt;To ensure right work of your UART communication and prevent overflow situation you can use Watermark feature. For example for UART receive it is RXWATER register. &lt;/P&gt;&lt;P&gt;When the number of datawords in the receive FIFO/buffer is equal to or greater than the value in this register field, an interrupt or a DMA request is generated.&lt;/P&gt;&lt;P&gt;/Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Mar 2014 16:25:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300842#M2609</guid>
      <dc:creator>jiri-b36968</dc:creator>
      <dc:date>2014-03-27T16:25:57Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300843#M2610</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've seen the same issue on Linux as well, but not in normal conditions. While debugging, I printed lots of characters in the receive path of UART to the TTY (running on a different UART). This lead to overrun conditions. I think the FIFO is then somehow misaligned. However, I never had that behavior in normal condition, I think, on Linux, this is not a real world case.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stefan &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Mar 2014 08:12:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300843#M2610</guid>
      <dc:creator>falstaff</dc:creator>
      <dc:date>2014-03-28T08:12:38Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300844#M2611</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank your for your advice.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We set RXWATER to 1, lowest value, but we could not avoid overrun.&lt;/P&gt;&lt;P&gt;The cause of overrun was interrupt disable from SD card driver (mmc driver).&lt;/P&gt;&lt;P&gt;It disabled the interrupt longer than 800[us].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So finally, we redesigned our communication speed down to 38400 bps ( originally 115200 bps).&lt;/P&gt;&lt;P&gt;After that, we can avoid uart overrun.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Makoto Katsukura&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Apr 2014 09:12:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300844#M2611</guid>
      <dc:creator>makotokatsukura</dc:creator>
      <dc:date>2014-04-15T09:12:06Z</dc:date>
    </item>
    <item>
      <title>Re: Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300845#M2612</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Stefan and forum members,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've removed debug prints from my test codes, but FIFO misalignment is still happening.&lt;/P&gt;&lt;P&gt;So we've gave up to take the data from FIFO buffer after overrun error occurred :smileycry:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then we are focusing on buffer clear operation&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt; after overrun error.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;As I mentioned at previous post, the operation written at Vybrid Reference Manual, chapter&amp;nbsp; "49.8.4.1 Overrun operation" is not work properly in my condition.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;SPAN style="color: #0000ff;"&gt;Buffer clear operation defined at Vybrid Reference Manual&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d; padding-left: 30px;"&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. using CFIFO[RXFLUSH] to clear the buffer&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d; padding-left: 30px;"&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. Clear S1[OR]&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d; padding-left: 30px;"&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. Clear SFIFO [RXUF]&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;I've made some test programs and I've found that following operation works fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt; &lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp; 1. Clear S1[OR]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. Clear SFIFO [RXUF]&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. using CFIFO[RXFLUSH] to clear the buffer&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The difference is the order of S1[OR] clearing and CFIFO flushing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The reference manual says, we have to flush the FIFO first, then clear overrun error bit (S1[OR]).&lt;/P&gt;&lt;P&gt;But our test result implies that clearing overrun bit first is seems to be properly.:smileyconfused:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which is the correct order? &lt;/P&gt;&lt;P&gt;We want to know proper operation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you, &lt;/P&gt;&lt;P&gt;Makoto Katsukura&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Apr 2014 10:20:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300845#M2612</guid>
      <dc:creator>makotokatsukura</dc:creator>
      <dc:date>2014-04-15T10:20:00Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300846#M2613</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Makoto Katsukura,&lt;/P&gt;&lt;P&gt;As I read chapter 49.8.4.1 Overrun operation.&lt;/P&gt;&lt;P&gt;When overrun occur you should:&lt;/P&gt;&lt;P&gt;- remove data from buffer (reading data) or CFIFO[RXFLUSH] to clear buffer&lt;/P&gt;&lt;P&gt;- clear S1[OR] &lt;/P&gt;&lt;P&gt;- if clear was done by CFIFO[RXFLUSH] than SFIFO[RXUF] have to be cleared before S1[OR]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So sequence from RM:&lt;/P&gt;&lt;P&gt;clear CFIFO[RXFLUSH]&lt;/P&gt;&lt;P&gt;disable SFIFO[RXUF] interrupt - which is CFIFO[RXUFE]&lt;/P&gt;&lt;P&gt;clear S1[OR]&lt;/P&gt;&lt;P&gt;clear SFIFO[RXUF]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Jun 2014 14:10:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300846#M2613</guid>
      <dc:creator>jiri-b36968</dc:creator>
      <dc:date>2014-06-12T14:10:47Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300847#M2614</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your advise.&lt;/P&gt;&lt;P&gt;We've tried following sequence which you've mentioned.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;clear CFIFO[RXFLUSH]&lt;/LI&gt;&lt;LI&gt;disable SFIFO[RXUF] interrupt - which is CFIFO[RXUFE]&lt;/LI&gt;&lt;LI&gt;clear S1[OR]&lt;/LI&gt;&lt;LI&gt;clear SFIFO[RXUF]&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;U&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;nfortunately, it &lt;/SPAN&gt;doesn't&lt;SPAN style="font-size: 10pt;"&gt; work.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;After S1[OR] clearing, the data read from D register becomes incorrect.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Regards,&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Makoto Katsukura&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jul 2014 05:37:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300847#M2614</guid>
      <dc:creator>makotokatsukura</dc:creator>
      <dc:date>2014-07-03T05:37:07Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300848#M2615</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;P&gt;Hi &lt;SPAN class="SpellE"&gt;Makoto&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;In this case I would need try to replicate it.&lt;/P&gt;&lt;P&gt;Please attach your code (simplified)&lt;/P&gt;&lt;P&gt;/Jiri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jul 2014 11:27:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300848#M2615</guid>
      <dc:creator>jiri-b36968</dc:creator>
      <dc:date>2014-07-03T11:27:41Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300849#M2616</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your reply and I'm really sorry for my late reply.&lt;/P&gt;&lt;P&gt;May I attach the sample code of Linux driver?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I need to write a code without Linux, please give me a time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Makoto Katsukura&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Jul 2014 15:10:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300849#M2616</guid>
      <dc:creator>makotokatsukura</dc:creator>
      <dc:date>2014-07-23T15:10:05Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300850#M2617</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Makoto,&lt;/P&gt;&lt;P&gt;send me the code where you see the issue. I need to replicate it here to check if it is SW issue or HW/silicon issue.&lt;/P&gt;&lt;P&gt;/Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Aug 2014 07:51:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300850#M2617</guid>
      <dc:creator>jiri-b36968</dc:creator>
      <dc:date>2014-08-01T07:51:09Z</dc:date>
    </item>
    <item>
      <title>Re: Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300851#M2618</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Makoto,&lt;/P&gt;&lt;P&gt;sorry for delay. Code sent by FAE was little bit complicated for tests. Simple test code showed that there is an issue in cleaning OR flag when FIFO is enabled. The sequence in RM does not for me either.&lt;/P&gt;&lt;P&gt;When OR is cleaned then you have to read the flag and then read Data register. In my test code it "moved pointer" in FIFO. That was probably causing described behavior.&lt;/P&gt;&lt;P&gt;After correct initiation and changing sequence both ways from following code works for me fine:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Read overloaded buffer - when longer sequence was sent, then only first part of the sequence, which fits into Rx buffer remains. Later data are ignored - no overwriting of previous data. The code prints Rx FIFO back to TX channel.(#if 1)&lt;/LI&gt;&lt;LI&gt;Flush overloaded buffer - previous data are lost (#if 0)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RM also recommends to disable RE when flushing FIFO - it work for me with of without. Disable RE cleans OR flag immediately&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Initialization&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;//disable transmitter and receiver during the change&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; UART_PORT-&amp;gt;C2 &amp;amp;= ~UART_C2_RE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; UART_PORT-&amp;gt;C2 &amp;amp;= ~UART_C2_TE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; //UART_PORT-&amp;gt; PFIFO = UART_PFIFO_RXFE_MASK | UART_PFIFO_RXFIFOSIZE(3);&amp;nbsp;&amp;nbsp;&amp;nbsp; //enable Rx FIFO 16 bytes&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; UART_PORT-&amp;gt; PFIFO = UART_PFIFO_RXFE_MASK | UART_PFIFO_RXFIFOSIZE(2);&amp;nbsp;&amp;nbsp;&amp;nbsp; //enable Rx FIFO 8 bytes&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; status = (UART_PORT-&amp;gt; S1) | UART_S1_OR_MASK; // clear OR&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; get = UART_PORT-&amp;gt;D;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear OR&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; UART_PORT-&amp;gt; CFIFO |= UART_CFIFO_RXFLUSH_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; //flush RX buffer&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; UART_PORT-&amp;gt; SFIFO |= UART_SFIFO_RXOF_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear RXOF&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; // Enable receiver and transmitter&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; UART_PORT-&amp;gt;C2 |= UART_C2_RE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal,monaco; font-size: 8pt;"&gt;&amp;nbsp; UART_PORT-&amp;gt;C2 |= UART_C2_TE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Overflow handling&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //overflow&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( (UART_PORT-&amp;gt; SFIFO) &amp;amp; UART_SFIFO_RXOF_MASK)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //UART_PORT-&amp;gt;C2 &amp;amp;= ~UART_C2_RE_MASK; // recommended to disable RE&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;#if 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //read the overflowed data&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (uart_getchar_present())&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get=uart_getchar();&amp;nbsp;&amp;nbsp;&amp;nbsp; // will also clear the OR flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uart_putchar(get);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_delay_ms(2);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_PORT-&amp;gt; CFIFO |= UART_CFIFO_RXFLUSH_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; //flush RX buffer&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_PORT-&amp;gt; SFIFO |= UART_SFIFO_RXOF_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear RXOF&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;#else&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //flush read FIFO buffer&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = (UART_PORT-&amp;gt; S1) &amp;amp; UART_S1_OR_MASK; // clear OR - read OR and read Data (disable RE clears OR also)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get = UART_PORT-&amp;gt;D;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_PORT-&amp;gt; CFIFO |= UART_CFIFO_RXFLUSH_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; //flush RX buffer&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_PORT-&amp;gt; SFIFO |= UART_SFIFO_RXOF_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear RXOF&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //UART_PORT-&amp;gt;C2 |= UART_C2_RE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal,monaco;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Nov 2014 20:24:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300851#M2618</guid>
      <dc:creator>jiri-b36968</dc:creator>
      <dc:date>2014-11-20T20:24:18Z</dc:date>
    </item>
    <item>
      <title>Re: What should I do after UART FIFO overruned?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300852#M2619</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;Thank you for your reply.&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;As you have recommended, we've changed our code to &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;disable RE when flushing FIFO.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;It works fine.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;Thank you,&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;Makoto Katsukura&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Dec 2014 08:41:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/What-should-I-do-after-UART-FIFO-overruned/m-p/300852#M2619</guid>
      <dc:creator>makotokatsukura</dc:creator>
      <dc:date>2014-12-22T08:41:20Z</dc:date>
    </item>
  </channel>
</rss>

