<?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 K70 UART2 with Hardware fifo not working. in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-UART2-with-Hardware-fifo-not-working/m-p/244060#M6223</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm working on K70 microcontroller.&lt;/P&gt;&lt;P&gt;I've successfully implemented uart driver without hardware fifo.&lt;STRONG&gt; ( 8-E-1 38400 baud rate)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Receive in Interrupt mode and Transmit in Polling mode.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Now I want to use hardware fifo. However after enabling hardware fifo its not working, not going in ISR routine.&lt;/P&gt;&lt;P&gt;below is my code. Please correct me where I'm doing wrong&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;SIM-&amp;gt;SCGC4 |= SIM_SCGC4_UART2_MASK; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;SIM-&amp;gt;SCGC5 |= SIM_SCGC5_PORTE_MASK;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;PORTE-&amp;gt;PCR[17] = (3UL &amp;lt;&amp;lt;&amp;nbsp; 8);&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;"&gt;PORTE-&amp;gt;PCR[16] = (3UL &amp;lt;&amp;lt;&amp;nbsp; 8); &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C2 &amp;amp;= ~(UART_C2_TE_MASK | UART_C2_RE_MASK | UART_C2_RIE_MASK);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C1 = 0; /* We need all default settings, so entire register is cleared */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;br = ((60000000)/(38400 * 16));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;temp = UART2-&amp;gt;BDH &amp;amp; ~(UART_BDH_SBR(0x1F));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;BDH = temp |&amp;nbsp; UART_BDH_SBR(((br &amp;amp; 0x1F00) &amp;gt;&amp;gt; 8));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;BDL = (unsigned char)(br &amp;amp; UART_BDL_SBR_MASK);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;brfa = (((60000000*32)/(38400 * 16)) - (br * 32));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;temp =UART2-&amp;gt;C4 &amp;amp; ~(UART_C4_BRFA(0x1F));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C4 = temp |&amp;nbsp; UART_C4_BRFA(brfa);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C1 |= (UART_C1_M_MASK | UART_C1_PE_MASK); /* Even parity */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;S2 = 0x00;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C3 = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;/********************* added below code for hardware fifo ****************/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;PFIFO |= 0x08;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;CFIFO |= UART_CFIFO_RXFLUSH_MASK;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;CFIFO &amp;amp;= ~UART_CFIFO_RXFLUSH_MASK;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;/*********************************************************************************/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;// UART2-&amp;gt;RWFIFO = UART_RWFIFO_RXWATER(1); /* without fifo */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;RWFIFO = UART_RWFIFO_RXWATER(2); /* with fifo */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;TWFIFO = UART_TWFIFO_TXWATER(0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;NVIC_EnableIRQ(UART2_RX_TX_IRQn); &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C2 |= (UART_C2_TE_MASK | UART_C2_RE_MASK&lt;SPAN style="font-size: 8pt;"&gt;| UART_C2_RIE_MASK&lt;/SPAN&gt;) ; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;Thanks in advance..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;A&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 21 Sep 2013 13:56:30 GMT</pubDate>
    <dc:creator>aseem</dc:creator>
    <dc:date>2013-09-21T13:56:30Z</dc:date>
    <item>
      <title>K70 UART2 with Hardware fifo not working.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-UART2-with-Hardware-fifo-not-working/m-p/244060#M6223</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm working on K70 microcontroller.&lt;/P&gt;&lt;P&gt;I've successfully implemented uart driver without hardware fifo.&lt;STRONG&gt; ( 8-E-1 38400 baud rate)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Receive in Interrupt mode and Transmit in Polling mode.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Now I want to use hardware fifo. However after enabling hardware fifo its not working, not going in ISR routine.&lt;/P&gt;&lt;P&gt;below is my code. Please correct me where I'm doing wrong&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;SIM-&amp;gt;SCGC4 |= SIM_SCGC4_UART2_MASK; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;SIM-&amp;gt;SCGC5 |= SIM_SCGC5_PORTE_MASK;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;PORTE-&amp;gt;PCR[17] = (3UL &amp;lt;&amp;lt;&amp;nbsp; 8);&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;"&gt;PORTE-&amp;gt;PCR[16] = (3UL &amp;lt;&amp;lt;&amp;nbsp; 8); &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C2 &amp;amp;= ~(UART_C2_TE_MASK | UART_C2_RE_MASK | UART_C2_RIE_MASK);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C1 = 0; /* We need all default settings, so entire register is cleared */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;br = ((60000000)/(38400 * 16));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;temp = UART2-&amp;gt;BDH &amp;amp; ~(UART_BDH_SBR(0x1F));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;BDH = temp |&amp;nbsp; UART_BDH_SBR(((br &amp;amp; 0x1F00) &amp;gt;&amp;gt; 8));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;BDL = (unsigned char)(br &amp;amp; UART_BDL_SBR_MASK);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;brfa = (((60000000*32)/(38400 * 16)) - (br * 32));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;temp =UART2-&amp;gt;C4 &amp;amp; ~(UART_C4_BRFA(0x1F));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C4 = temp |&amp;nbsp; UART_C4_BRFA(brfa);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C1 |= (UART_C1_M_MASK | UART_C1_PE_MASK); /* Even parity */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;S2 = 0x00;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C3 = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;/********************* added below code for hardware fifo ****************/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;PFIFO |= 0x08;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;CFIFO |= UART_CFIFO_RXFLUSH_MASK;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;CFIFO &amp;amp;= ~UART_CFIFO_RXFLUSH_MASK;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;/*********************************************************************************/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;// UART2-&amp;gt;RWFIFO = UART_RWFIFO_RXWATER(1); /* without fifo */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;RWFIFO = UART_RWFIFO_RXWATER(2); /* with fifo */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;TWFIFO = UART_TWFIFO_TXWATER(0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;NVIC_EnableIRQ(UART2_RX_TX_IRQn); &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;UART2-&amp;gt;C2 |= (UART_C2_TE_MASK | UART_C2_RE_MASK&lt;SPAN style="font-size: 8pt;"&gt;| UART_C2_RIE_MASK&lt;/SPAN&gt;) ; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;Thanks in advance..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;A&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 21 Sep 2013 13:56:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-UART2-with-Hardware-fifo-not-working/m-p/244060#M6223</guid>
      <dc:creator>aseem</dc:creator>
      <dc:date>2013-09-21T13:56:30Z</dc:date>
    </item>
    <item>
      <title>Re: K70 UART2 with Hardware fifo not working.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-UART2-with-Hardware-fifo-not-working/m-p/244061#M6224</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Aseem,&lt;/P&gt;&lt;P&gt;According the&amp;nbsp; standard feature of UART which is describled in Chart 3 Chip Cofigruation of reference manual. The UART2 contain a 1-entry transmit and receive FIFOs(Fig 1) and the proper value be set in the RXWATER muste be less than the size of the Receive buffer/FIFO size as indicated by PFIFO[RXFIFOSIZE] and PFIFO[RXFE] and greater than 0(Fig 2). So I think you should check the code&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 11px;"&gt;UART2-&amp;gt;RWFIFO = UART_RWFIFO_RXWATER(2); /* with fifo */ which set the size of FIFO is 2. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="2.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40785i517CAA851E551733/image-size/large?v=v2&amp;amp;px=999" role="button" title="2.jpg" alt="2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&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;&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fig 1&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="1.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/40787i576D772FF4A27938/image-size/large?v=v2&amp;amp;px=999" role="button" title="1.jpg" alt="1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&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;&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fig 2&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ping&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 22 Sep 2013 06:52:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-UART2-with-Hardware-fifo-not-working/m-p/244061#M6224</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2013-09-22T06:52:25Z</dc:date>
    </item>
  </channel>
</rss>

