<?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>Kinetis MicrocontrollersのトピックRe: DMA and UART questions</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186843#M2002</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I resolved my DMA signaling issue by starting the DMA with the&amp;nbsp;SERQ register instead of the CSR START. &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank konrada for the tips and heads up on the RX DMA. &amp;nbsp;I'll let you know what I find.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;pmt&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 Aug 2012 22:17:37 GMT</pubDate>
    <dc:creator>pmt</dc:creator>
    <dc:date>2012-08-10T22:17:37Z</dc:date>
    <item>
      <title>DMA and UART questions</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186840#M1999</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm writing a DMA driven UART driver, concentrating on the TX side first. &amp;nbsp;Please help me understand the "UART DMA Service Request" and "Basic Transfer" interaction. &amp;nbsp;First, what is the condition under which the service request is asserted by the UART? &amp;nbsp;Is this the TDRE condition? &amp;nbsp;Is this service request to the DMA level or edge sensitive?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I presume that in the case of the UART TX, the DMA minor loop must be set to 1 (I'm&amp;nbsp;assuming only a one byte FIFO of UART2 to 5), and that the "Basic Transfer" or "Minor Loop"&amp;nbsp;will not throttle based on the state of the DMA request? &amp;nbsp;If so this requires a minor loop of one, and a major loop count that holds the number of bytes to transfer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If this is the case, is there a coherent way to append to the major loop count (for a subsequent write to the UART)&amp;nbsp;even with a DMA in progress? &amp;nbsp;For instance, by stopping DMA first? &amp;nbsp;I would like to try to avoid using interrupts&amp;nbsp;to chain the next DMA&amp;nbsp;transfer. &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;pmt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Aug 2012 02:56:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186840#M1999</guid>
      <dc:creator>pmt</dc:creator>
      <dc:date>2012-08-08T02:56:48Z</dc:date>
    </item>
    <item>
      <title>Re: DMA and UART questions</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186841#M2000</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could look into the section "Dynamic Scatter-Gather" in the RM. It contains a protocol for updating the next-descriptor pointer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Minor loops of 1 are good.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And to save you time on the RX side, here's a few hints:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;UART RX DMA doesn't work with the internal default clock source (at least not on my TWRK60, TWRK70, and custom board). You receive chars twice.&lt;/LI&gt;&lt;LI&gt;Before starting the RX side, read erratum e2584; it means you can't use the IDLE interrupt to capture single received chars.&lt;/LI&gt;&lt;LI&gt;Disable the RX FIFO when using DMA. It almost works.&lt;/LI&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Aug 2012 15:14:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186841#M2000</guid>
      <dc:creator>konrada</dc:creator>
      <dc:date>2012-08-08T15:14:30Z</dc:date>
    </item>
    <item>
      <title>Re: DMA and UART questions</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186842#M2001</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Related to this I can't seem to get the TX DMA request from UART5 working. &amp;nbsp;Here's my checklist:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;TXWATER = 0;&lt;/P&gt;&lt;P&gt;DMA and DMAMUX0 clock sources are enabled&lt;/P&gt;&lt;P&gt;TIE and TDMAS are set&lt;/P&gt;&lt;P&gt;CHCFG[0] enable masks is set and source is set for 13 (UART5 TX)&lt;/P&gt;&lt;P&gt;Various other parameters are set.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can coax one character at a time out the UART by repeatedly setting the&amp;nbsp;DMA_CSR_START bit, but I only get a single character. &amp;nbsp;By CITER decrements as expected with each start. &amp;nbsp;TDRE is asserted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's like to UART5 DMA request source simply isn't hooked up to DMA channel 0.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any ideas? &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;pmt&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Aug 2012 01:50:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186842#M2001</guid>
      <dc:creator>pmt</dc:creator>
      <dc:date>2012-08-10T01:50:35Z</dc:date>
    </item>
    <item>
      <title>Re: DMA and UART questions</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186843#M2002</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I resolved my DMA signaling issue by starting the DMA with the&amp;nbsp;SERQ register instead of the CSR START. &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank konrada for the tips and heads up on the RX DMA. &amp;nbsp;I'll let you know what I find.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;pmt&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Aug 2012 22:17:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186843#M2002</guid>
      <dc:creator>pmt</dc:creator>
      <dc:date>2012-08-10T22:17:37Z</dc:date>
    </item>
    <item>
      <title>Re: DMA and UART questions</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186844#M2003</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi pmt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am also writing routines to transmit a buffer out on UART3 via DMA channel 0. I have setup the perepherals in the same way as you have (as far as you have described above). Can you share your code so I can compare too see if I have missed anything? Here is my setup:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Init UART DMA for TX&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;UART3_C2 |= (1&amp;lt;&amp;lt;UART_C2_TIE_SHIFT);&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;UART3_C5 |= UART_C5_TDMAS_MASK;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;UART3_TWFIFO = 0;//TXWATER = 0;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;//Init DMA channel 0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;enable_irq(0);&amp;nbsp; // Enable DMA0 IRQ&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;SIM_SCGC6 |= SIM_SCGC6_DMAMUX_MASK; // Enable Clock gating for the DMA and DMA MUX&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;SIM_SCGC7 |= SIM_SCGC7_DMA_MASK;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;// Disable DMA Mux channel first&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMAMUX_CHCFG0 = 0x00; //DMAMUX0_CHCFG0 = 0x00;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_TCD0_SOFF = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Source increment.&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_TCD0_NBYTES_MLNO = 1; ///1 Byte per dma request.&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;// Set Destination Address&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_TCD0_DADDR = UART_D_REG(PortBasePtr);&amp;nbsp; //Points to UART3 base&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_TCD0_DOFF = 0; //Do not increment destination address&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_TCD0_ATTR = 0; // transfer sizes always single bytes&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_TCD0_CSR = DMA_CSR_INTMAJOR_MASK; //The end-of-major loop interrupt is enabled&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_ERQ |= DMA_ERQ_ERQ0_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; //The DMA request signal for the corresponding channel is enabled&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMAMUX_CHCFG0 = 9; //UART3_TX&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMAMUX_CHCFG0 |= DMAMUX_CHCFG_ENBL_MASK;//Enable DMA channel.&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_TCD0_CSR |= DMA_CSR_DONE_MASK;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_TCD0_SADDR = SOURCE_ADDRESS;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;DMA_TCD0_CITER_ELINKNO = DMA_TCD0_BITER_ELINKNO = 16; //Num of bytes to send&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;DMA_TCD0_CSR |= DMA_CSR_START_MASK; //Start DMA&lt;/P&gt;&lt;P&gt;DMA_SERQ |= DMA_SERQ_SERQ_MASK;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;I am using Kinetis K60 MCU.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;BR&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Oct 2012 14:00:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186844#M2003</guid>
      <dc:creator>deekay</dc:creator>
      <dc:date>2012-10-11T14:00:14Z</dc:date>
    </item>
    <item>
      <title>Re: DMA and UART questions</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186845#M2004</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Dee,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below are snippets for UART5 which were derived from help from people on the board along with one of the Freescale engineers that sent me stock DMA/UART validation code.&amp;nbsp; Note that I set up my TX configuration for a hardware modulo ring buffer (which must be aligned properly).&amp;nbsp; Your application may differ.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;//////////////////////////////////////////&lt;/P&gt;&lt;P&gt;// Setup&lt;/P&gt;&lt;P&gt;//////////////////////////////////////////&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Enable DMA clocks &lt;/P&gt;&lt;P&gt;SIM-&amp;gt;SCGC6 |= SIM_SCGC6_DMAMUX0_MASK;&lt;/P&gt;&lt;P&gt;SIM-&amp;gt;SCGC6 |= SIM_SCGC6_DMAMUX1_MASK;&lt;/P&gt;&lt;P&gt;SIM-&amp;gt;SCGC7 |= SIM_SCGC7_DMA_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Enable UART5, PORT clocks, and TX line&lt;/P&gt;&lt;P&gt;SIM-&amp;gt;SCGC1 |= SIM_SCGC1_UART5_MASK;&lt;/P&gt;&lt;P&gt;SIM-&amp;gt;SCGC5 |= SIM_SCGC5_PORTE_MASK;&lt;/P&gt;&lt;P&gt;PORTE-&amp;gt;PCR[8] = (3UL &amp;lt;&amp;lt;&amp;nbsp; 8);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Set baud rate&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;BDH = SBR &amp;gt;&amp;gt; 8;&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;BDL = SBR &amp;amp; 0xFF;&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; &lt;/P&gt;&lt;P&gt;UART5-&amp;gt;C1&amp;nbsp; = 0; &lt;/P&gt;&lt;P&gt;UART5-&amp;gt;C4&amp;nbsp; = BRFA;&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; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Set FIFO water marks (not used in default 'legacy' port configuration)&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;TWFIFO = UART_TWFIFO_TXWATER(0);&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;RWFIFO = UART_RWFIFO_RXWATER(1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Enable transmitter&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;C2 = 0;&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;C2 |= UART_C2_TE_MASK;&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;S2 = 0;&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;C3 = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Configure TX DMA&lt;/P&gt;&lt;P&gt;DMAMUX0-&amp;gt;CHCFG[0] = 0;&lt;/P&gt;&lt;P&gt;DMAMUX0-&amp;gt;CHCFG[0] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(13);&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;C2 |= UART_C2_TIE_MASK;&lt;/P&gt;&lt;P&gt;UART5-&amp;gt;C5 |= UART_C5_TDMAS_MASK;&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].BITER_ELINKNO = 0;&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].CITER_ELINKNO = 0;&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].SADDR = (uint32_t) &amp;amp;TxBuf[0];&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].ATTR = DMA_ATTR_SMOD(8) | DMA_ATTR_SSIZE(0) | DMA_ATTR_DMOD(0) | DMA_ATTR_DSIZE(0);&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].SOFF = 1;&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].NBYTES_MLNO = 1;&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].SLAST = 0;&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].DADDR = (uint32_t) &amp;amp;(UART5-&amp;gt;D);&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].DOFF = 0;&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].DLAST_SGA = 0;&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].CSR = DMA_CSR_DREQ_MASK | DMA_CSR_DONE_MASK | DMA_CSR_INTMAJOR_MASK;&lt;/P&gt;&lt;P&gt;NVIC_EnableIRQ(DMA0_DMA16_IRQn);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//////////////////////////////////////////&lt;/P&gt;&lt;P&gt;// Prime the next DMA transaction &lt;/P&gt;&lt;P&gt;//////////////////////////////////////////&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// append the next DMA transaction and start TX&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].BITER_ELINKNO = DMA_BITER_ELINKNO_BITER(NumToTx);&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;TCD[0].CITER_ELINKNO = DMA_CITER_ELINKNO_CITER(NumToTx);&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;SERQ = DMA_SERQ_SERQ(0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Oct 2012 13:36:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186845#M2004</guid>
      <dc:creator>pmt</dc:creator>
      <dc:date>2012-10-15T13:36:23Z</dc:date>
    </item>
    <item>
      <title>Re: DMA and UART questions</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186846#M2005</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Pmt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am also writing routines to transmit a buffer out on UART3 via DMA channel 0. Followed the steps suggested by you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;these are my configurations&lt;/P&gt;&lt;P&gt;/*URAT configuration*/&lt;/P&gt;&lt;P&gt;UART_C2_REG(uartch) &amp;amp;= ~(UART_C2_TE_MASK&lt;/P&gt;&lt;P&gt;| UART_C2_RE_MASK );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/* Configure the UART for 8-bit mode, no parity */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; UART_C1_REG(uartch) = 0; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/* 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: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/* Calculate baud settings */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; sbr = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;uint16&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;)((sysclk*1000)/(baud * 16));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/* Save off the current value of the UARTx_BDH except for the SBR field */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;temp = UART_BDH_REG(uartch) &amp;amp; ~(UART_BDH_SBR(0x1F));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;UART_BDH_REG(uartch) = temp | UART_BDH_SBR(((sbr &amp;amp; 0x1F00) &amp;gt;&amp;gt; 8));&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; UART_BDL_REG(uartch) = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;uint8&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;)(sbr &amp;amp; UART_BDL_SBR_MASK);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/* Determine if a fractional divider is needed to get closer to the baud rate */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;brfa = (((sysclk*32000)/(baud * 16)) - (sbr * 32));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/* Save off the current value of the UARTx_C4 register except for the BRFA field */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;temp = UART_C4_REG(uartch) &amp;amp; ~(UART_C4_BRFA(0x1F));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;UART_C4_REG(uartch) = temp | UART_C4_BRFA(brfa);&lt;/P&gt;&lt;P&gt;UART_C5_REG(uartch) = 0xA0;&lt;/P&gt;&lt;P&gt;UART_PFIFO_REG(uartch) = 0xEE;&lt;/P&gt;&lt;P&gt;UART_CFIFO_REG(uartch) = 0xC0;&lt;/P&gt;&lt;P&gt;UART_S2_REG(uartch) = 0x00;&lt;/P&gt;&lt;P&gt;UART_C3_REG(uartch) = 0x00;&lt;/P&gt;&lt;P&gt;UART_TWFIFO_REG(uartch) = UART_TWFIFO_TXWATER(0);&lt;/P&gt;&lt;P&gt;UART_RWFIFO_REG(uartch) = UART_RWFIFO_RXWATER(1);&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/* Enable receiver and transmitter */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;UART_C2_REG(uartch) |= (UART_C2_TE_MASK&lt;/P&gt;&lt;P&gt;| UART_C2_RE_MASK | UART_C2_TIE_MASK | UART_C2_RIE_MASK);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*Uart configuration looks good as I am bal eto put data on UART3_D buffer and watch on Tera term*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*DMA configuration*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;DMA_MemMapPtr&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; DMA0 = DMA_BASE_PTR;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;DMAMUX_MemMapPtr&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; DMAMUX0 = 0x40021000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMAMUX0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;CHCFG&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0] = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;DMAMUX_CHCFG_REG(DMAMUX_BASE_PTR,0) = DMAMUX_CHCFG_ENBL_MASK|DMAMUX_CHCFG_SOURCE(0);&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;BITER_ELINKNO&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;CITER_ELINKNO&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SADDR&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;) &amp;amp;gau8Source0[0];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;ATTR&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = DMA_ATTR_SMOD(8) | DMA_ATTR_SSIZE(0) | DMA_ATTR_DMOD(0) | DMA_ATTR_DSIZE(0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SOFF&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;NBYTES_MLNO&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SLAST&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;DADDR&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: small;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;)(0x4006D007) ;&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;//&amp;amp;(UART5-&amp;gt;D);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;DOFF&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;DLAST_SGA&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;CSR&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = DMA_CSR_DREQ_MASK | DMA_CSR_DONE_MASK | DMA_CSR_INTMAJOR_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; u32fnNVIC_EnableIRQ(&lt;/SPAN&gt;&lt;EM style=": ; color: #0000c0; font-size: small;"&gt;INT_DMA0&lt;/EM&gt;&lt;SPAN style="font-size: small;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; u32fnNVIC_EnableIRQ(&lt;/SPAN&gt;&lt;EM style=": ; color: #0000c0; font-size: small;"&gt;INT_DMA1&lt;/EM&gt;&lt;SPAN style="font-size: small;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;/*Transfer */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;BITER_ELINKNO&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = DMA_BITER_ELINKNO_BITER(8);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;TCD&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0].&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;CITER_ELINKNO&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = DMA_CITER_ELINKNO_CITER(8);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;DMA0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SERQ&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = DMA_SERQ_SERQ(0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;--------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;Observation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;1.&amp;nbsp; Controller hits exception when I step through &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;DMAMUX_CHCFG_REG(DMAMUX_BASE_PTR,0) = DMAMUX_CHCFG_ENBL_MASK|DMAMUX_CHCFG_SOURCE(0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;2. How I can initiate the transfer on UART ?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Sep 2018 04:31:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186846#M2005</guid>
      <dc:creator>anilrayan</dc:creator>
      <dc:date>2018-09-20T04:31:46Z</dc:date>
    </item>
    <item>
      <title>Re: DMA and UART questions</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186847#M2006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Dee,&lt;/P&gt;&lt;P&gt;I am also writing routines to transmit a buffer out on UART3 via DMA channel 0.&lt;/P&gt;&lt;P&gt;Any breakthrough for the above problem, I am stuck with the same issue. Your input would really help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Sep 2018 04:34:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186847#M2006</guid>
      <dc:creator>anilrayan</dc:creator>
      <dc:date>2018-09-20T04:34:00Z</dc:date>
    </item>
    <item>
      <title>Re: DMA and UART questions</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186848#M2007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Anil&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For UART Tx/Rx DMA on any Kinetis (LPUART/UART) just copy the solution from the free open source uTasker project on Github.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To your questions:&lt;BR /&gt;1) Have you enabled clock gating to the DMAMUX before using it?&lt;BR /&gt;2) If you have the Tx enabled and in DMA Tx mode it will immediately start transfers when the DMA controller is enabled (since it will have a DMA trigger pending).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For less questions and faster, cheaper developments: try uTasker for Kinetis&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Sep 2018 13:59:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-and-UART-questions/m-p/186848#M2007</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2018-09-20T13:59:47Z</dc:date>
    </item>
  </channel>
</rss>

