<?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: uart program in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385883#M20781</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;In your code below is set DMA channel1 for UART0-RX, while you setting DMA Channel 0 to do DMA transfer. Customer need to change below code using DMAMUX_CHCFG0 register.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;DMAMUX0_CHCFG1 |= ( 0 | DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(2)); &lt;/TD&gt;&lt;TD&gt;// enable the DMA channel request&amp;nbsp; // UART0-Rx is source 2&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Mar 2015 09:22:04 GMT</pubDate>
    <dc:creator>Hui_Ma</dc:creator>
    <dc:date>2015-03-19T09:22:04Z</dc:date>
    <item>
      <title>uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385878#M20776</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;dear sir,&lt;/P&gt;&lt;P&gt;i am using K60 controller .i wrote code to read write packets using uart that working.my aim is to get inerrupt when receive 4packets or may be 6 packets .the number may vary.if i want to get 5 packets when 5 packet come i want an interrupt.next i want to get interrupt when 10 packets come.what am i to do .there is fifo method in uart. i dont know how to use and other method is dma method.There is no more explanation in in datasheet or there is no sample code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;which is better method for my purpose dma or fifo uart method&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and also i want to know that the two method is same or not please help me answer me as soon as&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Mar 2015 10:16:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385878#M20776</guid>
      <dc:creator>lijofrancis</dc:creator>
      <dc:date>2015-03-14T10:16:58Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385879#M20777</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;UART0 and UART1 contains 8-entry transmit and 8-entry receive FIFOs, customer can set the water mark to generate the interrupt.&lt;/P&gt;&lt;P&gt;So, customer need to check the packet size, for the UART FIFO only 8-entry, 8 bytes in general.&lt;/P&gt;&lt;P&gt;If customer want to receive more packets and each packet with many bytes data, the FIFO mode shows the shortage.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The DMA mode could generate the interrupt after receive setting value bytes (as a major loop), and when UART receive data will trigger DMA transfer (as minor loop). After the packet data (customer setting numbers data) be received, the DMA will generate interrupt for handle.&lt;/P&gt;&lt;P&gt;Using DMA mode, customer need to know how many bytes will be receive of 5 packets.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Mar 2015 04:56:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385879#M20777</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-03-17T04:56:45Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385880#M20778</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;dear sir,&lt;/P&gt;&lt;P&gt;thank you for you response.i think you suggest for me dma method.can i vary received data bytes length.means if i get 5 bytes then dma interrupt comes next i want 10 bytes therefor i change byte length 10 to receive interrupt .is it possible is there any sample code&amp;nbsp; to do this please help me&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Mar 2015 05:38:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385880#M20778</guid>
      <dc:creator>lijofrancis</dc:creator>
      <dc:date>2015-03-17T05:38:47Z</dc:date>
    </item>
    <item>
      <title>Re: Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385881#M20779</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;Yes, the DMA transfer data number could be modified at DMA TCD (Transfer Control Descriptor) register DMA_TCDn_NBYTES_MLNO [NBYTES] bits.&lt;/P&gt;&lt;P&gt;Please check attached UART DMA validation code for your reference.&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Mar 2015 08:29:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385881#M20779</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-03-17T08:29:40Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385882#M20780</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;dear sir,&lt;/P&gt;&lt;P&gt;i write code to receive uart data normally.i get data bytes one by one its working&lt;/P&gt;&lt;P&gt;then i use dma method basis of your sample code but it not works .i write code to receive 4 bytes.but&lt;/P&gt;&lt;P&gt;code stuck at&lt;/P&gt;&lt;P&gt; while( (!(DMA_TCD0_CSR &amp;amp; DMA_CSR_DONE_MASK)) &amp;amp;(!(DMA_ES) ));&lt;/P&gt;&lt;P&gt;when i comment this while i gets value zero only&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;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt; code&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Enable the clock to the DMA channel mux */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_DMAMUX0_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable the clock to the DMA module */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SIM_SCGC7 |= SIM_SCGC7_DMA_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMAMUX0_CHCFG1 |= ( 0 | DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(2));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enable the DMA channel request&amp;nbsp; // UART0-Rx is source 2&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Configure UART to generate Rx&amp;nbsp; DMA requests */&lt;/P&gt;&lt;P&gt;&amp;nbsp; UART_C2_REG(UART0_BASE_PTR) |= UART_C2_RIE_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; UART_C5_REG(UART0_BASE_PTR) |= UART_C5_RDMAS_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Configure DMA Channel TCD */&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_SADDR = (uint32) &amp;amp;UART_D_REG(UART0_BASE_PTR); // DMA source is the UART data register&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_ATTR = ( 0 | DMA_ATTR_SSIZE(0)| DMA_ATTR_DSIZE(0) );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_SOFF = 0x0; // don't increment source address&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_NBYTES_MLNO = 1; // move 1 byte per request&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_SLAST = 0x0; // no adjust after last transfer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_DADDR = (uint32)&amp;amp;packet[0]; // destination is the string variable&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_CITER_ELINKNO = ( 0 | DMA_CITER_ELINKNO_CITER(4) );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // execute the minor loop strLen times&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_DOFF = 0x01; // increment dest by 1 after each transfer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_DLASTSGA = 0x0; // no adjust after last transfer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_BITER_ELINKNO = ( 0&amp;nbsp; | DMA_BITER_ELINKNO_BITER(4) );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // execute the minor loop strLen times&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DMA_TCD0_CSR= ( 0| DMA_CSR_DREQ_MASK );// disable request when the transfer is complete&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Wait for DMA to complete or to generate an error */&lt;/P&gt;&lt;P&gt;&amp;nbsp; while( (!(DMA_TCD0_CSR &amp;amp; DMA_CSR_DONE_MASK)) &amp;amp;(!(DMA_ES) ));&lt;/P&gt;&lt;P&gt;&amp;nbsp; for(char j=0;j&amp;lt;4;++j)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%x",packet[j]);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("\n\r");&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 13:57:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385882#M20780</guid>
      <dc:creator>lijofrancis</dc:creator>
      <dc:date>2015-03-18T13:57:05Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385883#M20781</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;In your code below is set DMA channel1 for UART0-RX, while you setting DMA Channel 0 to do DMA transfer. Customer need to change below code using DMAMUX_CHCFG0 register.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;DMAMUX0_CHCFG1 |= ( 0 | DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(2)); &lt;/TD&gt;&lt;TD&gt;// enable the DMA channel request&amp;nbsp; // UART0-Rx is source 2&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Mar 2015 09:22:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385883#M20781</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-03-19T09:22:04Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385884#M20782</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello sir,&lt;/P&gt;&lt;P&gt;thank you, i got 4 bytes&lt;/P&gt;&lt;P&gt;but problem is that i got that &lt;SPAN style="font-size: 13.3333330154419px;"&gt;4 bytes &lt;/SPAN&gt;only one time&lt;/P&gt;&lt;P&gt;actually i put that code above in while loop and waiting for for each 4 bytes&lt;/P&gt;&lt;P&gt;second time it stuck at &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;while( (!(DMA_TCD0_CSR &amp;amp; DMA_CSR_DONE_MASK)) &amp;amp;(!(DMA_ES) ))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;please sir any solution for above problem&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Mar 2015 11:36:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385884#M20782</guid>
      <dc:creator>lijofrancis</dc:creator>
      <dc:date>2015-03-19T11:36:53Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385885#M20783</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello sir,&lt;/P&gt;&lt;P&gt;i stuck at the code please help me&lt;/P&gt;&lt;P&gt;same as i told above i got 4 bytes at ones .&lt;/P&gt;&lt;P&gt;actually i continuesly try to receive uart bytes but i get 4 bytes.To get remaining bytes i put the dma code as shown above in while loop.but i didnt get remaining bytes .i got 4 bytes when controller restart.then it stuck at while loop....&lt;/P&gt;&lt;P&gt;when i use DMA_TCD0_CSR= ( 0| DMA_CSR_DREQ_MASK )&amp;nbsp; status same as above.But when i replace it with&lt;/P&gt;&lt;P&gt;MA_TCD0_CSR |= DMA_CSR_START_MASK; i get no bytes ,starting also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please sir i dont know what is the problem&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Mar 2015 07:02:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385885#M20783</guid>
      <dc:creator>lijofrancis</dc:creator>
      <dc:date>2015-03-20T07:02:52Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385886#M20784</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;When the DMA finish the major loop (receive 4 bytes), it need to refresh the DMA TCD register, such as DMA_TCD0_CITER_ELINKNO register and DMA_TCD0_BITER_ELINKNO register.&lt;/P&gt;&lt;P&gt;In your code enable the channel’s ERQ bit is cleared when the major loop is complete setting, so it need to re-enable the channel's ERQ bit at DMA_ERQ register bit 0 (set this bit)&amp;nbsp; or write 0x0 to DMA_SERQ register .&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Mar 2015 08:54:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385886#M20784</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-03-20T08:54:01Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385887#M20785</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;dear sir,&lt;/P&gt;&lt;P&gt;In my code i enable clock for dma,and also enabled it&lt;/P&gt;&lt;P&gt;and also enabled receive for uart and dma for receive&lt;/P&gt;&lt;P&gt;while(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; // Configure RX DMA&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMAMUX0_CHCFG0 = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_CERQ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = DMA_CERQ_CERQ(0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_CSR&amp;nbsp;&amp;nbsp; = DMA_CSR_DREQ_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_BITER_ELINKNO = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_CITER_ELINKNO = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_SADDR = (uint32) &amp;amp;UART_D_REG(UART0_BASE_PTR);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_SOFF = 0x0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_SLAST = 0x0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_DADDR = (uint32)&amp;amp;packet;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_DOFF = 0x01;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_DLASTSGA = 0x0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_ATTR = ( 0 | DMA_ATTR_SSIZE(0)| DMA_ATTR_DSIZE(0) );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_NBYTES_MLNO = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_BITER_ELINKNO = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_CITER_ELINKNO = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMAMUX0_CHCFG0 |= ( 0 | DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(2));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_CITER_ELINKNO = ( 0 | DMA_CITER_ELINKNO_CITER(4) );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_TCD0_BITER_ELINKNO = ( 0&amp;nbsp; | DMA_BITER_ELINKNO_BITER(4) );&lt;/P&gt;&lt;P&gt;&amp;nbsp; // DMA_TCD0_CSR= ( 0| DMA_CSR_DREQ_MASK );&lt;/P&gt;&lt;P&gt;&amp;nbsp; // DMA_SERQ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = DMA_SERQ_SERQ(0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DMA_ERQ |= DMA_ERQ_ERQ0_MASK;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;while(((DMA_TCD0_CSR &amp;amp; DMA_CSR_DONE_MASK) == 0) &amp;amp;&amp;amp; ( DMA_ES == 0));&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;for(char j=0;j&amp;lt;4;++j)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("%x",packet[j]);&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;result&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10561e&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;i got only one packet &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;second time code stuck at &lt;SPAN style="font-size: 13.3333330154419px;"&gt;while(((DMA_TCD0_CSR &amp;amp; DMA_CSR_DONE_MASK) == 0) &amp;amp;&amp;amp; ( DMA_ES == 0));&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;actualy receive bytes comes frequently but dma receives 4 bytes only one time&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Mar 2015 09:44:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385887#M20785</guid>
      <dc:creator>lijofrancis</dc:creator>
      <dc:date>2015-03-20T09:44:02Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385888#M20786</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 would recommend to enable the an interrupt when major iteration count completes at DMA_TCD0_CSR register to generate an interrupt after receive 4 bytes. At the interrupt service routine using below code to refresh the TCD registers:&lt;/P&gt;&lt;P&gt;DMA_TCD0_DADDR = (uint32)&amp;amp;packet;&lt;/P&gt;&lt;P&gt;DMA_TCD0_NBYTES_MLNO = 1;&lt;/P&gt;&lt;P&gt;DMA_TCD0_CITER_ELINKNO = ( 0 | DMA_CITER_ELINKNO_CITER(4) );&lt;/P&gt;&lt;P&gt;DMA_TCD0_BITER_ELINKNO = ( 0&amp;nbsp; | DMA_BITER_ELINKNO_BITER(4) );&lt;/P&gt;&lt;P&gt;DMA_TCD0_CSR |= DMA_CSR_DREQ_MASK; //One transfer only.&lt;/P&gt;&lt;P&gt;DMA_ERQ |= DMA_ERQ_ERQ0_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There doesn't recommend to re-init DMA setting in a while loop.&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;BR /&gt;Have a great day,&lt;BR /&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Mar 2015 03:08:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385888#M20786</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-03-23T03:08:03Z</dc:date>
    </item>
    <item>
      <title>Re: uart program</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385889#M20787</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello sir,&lt;/P&gt;&lt;P&gt;Thank you .Its working:smileyhappy::smileyhappy:&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Mar 2015 14:19:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/uart-program/m-p/385889#M20787</guid>
      <dc:creator>lijofrancis</dc:creator>
      <dc:date>2015-03-23T14:19:05Z</dc:date>
    </item>
  </channel>
</rss>

