<?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 buffer to Tx UART on K10DN512</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891604#M52688</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That works, thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 20 Feb 2020 07:12:17 GMT</pubDate>
    <dc:creator>radomir_kozub</dc:creator>
    <dc:date>2020-02-20T07:12:17Z</dc:date>
    <item>
      <title>DMA buffer to Tx UART on K10DN512</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891600#M52684</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using a K10DN512VLQ10 chip in the older Kinetis Design Studio V3.2.0. I am not using any libraries and the drivers are self developed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to start using the DMA controller to transmit variable length messages over UART2. I have tried everything and cannot get it to work. It is either a case of only the first cycle of the minor loop is execute and stops there, or all data is dumped immediately to the UART thereby overrunning it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Only the first character of the buffer is seen on the UART. The DMA done bit is set.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To test I have written this code. The transfer is software triggered and transmits 8 bytes from a 'str' buffer (type&amp;nbsp;char str[]). Only 1 major loop and no linkage.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;UART2_BASE_PTR-&amp;gt;C2 = 0;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; // Enable clock for DMAMUX and DMA&lt;BR /&gt; SIM-&amp;gt;SCGC6 |= SIM_SCGC6_DMAMUX_MASK;&lt;BR /&gt; SIM-&amp;gt;SCGC7 |= SIM_SCGC7_DMA_MASK;&lt;/P&gt;&lt;P&gt;//disable request channels&lt;BR /&gt; DMA0-&amp;gt;ERQ = 0u;&lt;BR /&gt; DMA0-&amp;gt;EEI = 0u;&lt;BR /&gt; DMA0-&amp;gt;SEEI = 0u;&lt;/P&gt;&lt;P&gt;// Clear pending errors and/or the done bit&lt;BR /&gt; DMA0-&amp;gt;ES = 0u;&lt;/P&gt;&lt;P&gt;//set source addr&lt;BR /&gt; DMA0-&amp;gt;TCD[0].SADDR = (__IO uint32_t)str;&lt;BR /&gt; DMA0-&amp;gt;TCD[0].NBYTES_MLNO = 8;&lt;BR /&gt; DMA0-&amp;gt;TCD[0].ATTR = DMA_ATTR_SSIZE(0) | DMA_ATTR_DSIZE(0); //8-bit transfer&lt;BR /&gt; DMA0-&amp;gt;TCD[0].DADDR = (__IO uint32_t)&amp;amp;UART2_BASE_PTR-&amp;gt;D;&lt;BR /&gt; DMA0-&amp;gt;TCD[0].CSR = DMA_CSR_BWC(3) | DMA_CSR_DREQ_MASK&lt;/P&gt;&lt;P&gt;// Adjustment value used to restore the source and destiny address to the initial value&lt;BR /&gt; DMA0-&amp;gt;TCD[0].SLAST = 0;//(-1 * size_of_tx); // Source address adjustment&lt;BR /&gt; DMA0-&amp;gt;TCD[0].DLAST_SGA = 0;//(-1); // Destination address adjustment&lt;BR /&gt; // Set an offset for source and destination address&lt;BR /&gt; DMA0-&amp;gt;TCD[0].SOFF = 0x00; // Source address offset&lt;BR /&gt; DMA0-&amp;gt;TCD[0].DOFF = 0x00; // Destination address&lt;/P&gt;&lt;P&gt;// Current major iteration count (a single iteration of 'size_of_tx' bytes)&lt;BR /&gt; DMA0-&amp;gt;TCD[0].CITER_ELINKNO = DMA_CITER_ELINKNO_CITER(1);&lt;BR /&gt; DMA0-&amp;gt;TCD[0].BITER_ELINKNO = DMA_BITER_ELINKNO_BITER(1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;UART_C1_REG(m_uart) = UART_C1_UARTSWAI_MASK |&amp;nbsp;UART_C1_ILT_MASK;&lt;/P&gt;&lt;P&gt;UART_PFIFO_REG(m_uart) = 0u;&lt;BR /&gt; UART_TWFIFO_REG(m_uart) = 0u;&lt;/P&gt;&lt;P&gt;SetSpeed(baud);&amp;nbsp;&amp;nbsp;&amp;nbsp;//sets baud&lt;/P&gt;&lt;P&gt;UART2_BASE_PTR-&amp;gt;C2 = UART_C2_TIE_MASK;&lt;BR /&gt; UART2_BASE_PTR-&amp;gt;C5 = UART_C5_TDMAS_MASK;&lt;/P&gt;&lt;P&gt;SetIrqStatus(irq, priority);&lt;BR /&gt; m_configured = true;&lt;BR /&gt; uint8_t temp_val = UART2_BASE_PTR-&amp;gt;S1;&lt;BR /&gt; UART2_BASE_PTR-&amp;gt;C2 |= (UART_C2_TE_MASK | UART_C2_RE_MASK);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; DMA0-&amp;gt;CERR = DMA_CERR_CAEI_MASK;&lt;BR /&gt; DMA0-&amp;gt;CERQ = DMA_CERQ_CAER_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Enable request signal for channel 0&lt;BR /&gt; DMAMUX-&amp;gt;CHCFG[0] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(7);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//UART2 TX&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; DMA0-&amp;gt;ERQ = 1;&lt;BR /&gt; DMA0-&amp;gt;TCD[0].CSR |= DMA_CSR_START_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//wait for DMA to complete&lt;/P&gt;&lt;P&gt;while(!(DMA0-&amp;gt;TCD[0].CSR &amp;amp; DMA_CSR_DONE_MASK)); //DMA_CSR_DREQ_MASK&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Apr 2019 07:51:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891600#M52684</guid>
      <dc:creator>gerrieheath</dc:creator>
      <dc:date>2019-04-25T07:51:54Z</dc:date>
    </item>
    <item>
      <title>Re: DMA buffer to Tx UART on K10DN512</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891601#M52685</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;You can use the open source uTasker project as reference for UART (it supports Rx and Tx DMA on all parts - LPUARTs, UART with eDMA or the simpler DMA in KL parts, for example, on all UART instances). It allows the UART, its DMA and interrupt operation to be accurately simulated in Visual Studio to analyse the internal operation and then adjust your solution accordingly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Some ideas/notes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Enable Tx DMA by setting&lt;BR /&gt;UART_C5_TDMAS in UARTx_C5&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. DMA_TCD_SOFF will normally be 1 when transmitting from a buffer to the output&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. DMA_TCD_NBYTES_ML should be 1 (and not 8) to transfer a single byte on each trigger&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. DMA_TCD_CITER_ELINK and DMA_TCD_BITER_ELINK should be 8 to transfer 8 bytes, one on each trigger&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. Don't use the SW start bit to enable the DMA transfer since this is controlled by the Tx interrupt flag in the correct mode&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6. Generally a DMA interrupt is used to signal when the buffer transmission has completed. In the meantime SW can queue further data to be sent that can then be started in the driver so that the user can add data whenever required and it will be sent continuously.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;7. If using low power modes that can change dynamically such switching should be disabled until complete UART transmission has terminated (plus waiting for the final end of transmission interrupt after the final byte transfer) in order to avoid premature transmission freeze.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The uTasker project includes a complete solution (industrially proven in many Kinetis based products since 2011) so can be used to avoid needing to redevelop the wheel or its suported version is available for mission critical requirements. It can also be used inside FreeRTOS with undefined UART reception lengths for very high speed, loss-free DMA based reception. The code and project is compatible with KDS, MCUXpresso, CW, IAR, Keil, Rowley, CooCox, Atollic, GreenHills, Visual Studio, GCC makefile.&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;EM&gt;Open Source Version: &lt;A href="https://github.com/uTasker/uTasker-Kinetis" target="test_blank"&gt;https://github.com/uTasker/uTasker-Kinetis&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Complete Kinetis solutions for professionals, training and support: &lt;A href="http://www.utasker.com/kinetis.html" target="test_blank"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;Kinetis K60/K10:&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/TWR-K60N512.html" target="test_blank"&gt;http://www.utasker.com/kinetis/TWR-K60N512.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/TWR-K60D100M.html" target="test_blank"&gt;http://www.utasker.com/kinetis/TWR-K60D100M.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/TWR-K60F120M.html" target="test_blank"&gt;http://www.utasker.com/kinetis/TWR-K60F120M.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/ELZET80_NET-KBED.html" target="test_blank"&gt;http://www.utasker.com/kinetis/ELZET80_NET-KBED.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/ELZET80_NET-K60.html" target="test_blank"&gt;http://www.utasker.com/kinetis/ELZET80_NET-K60.html&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;UART: &lt;A href="http://www.utasker.com/docs/uTasker/uTaskerUART.PDF" target="test_blank"&gt;http://www.utasker.com/docs/uTasker/uTaskerUART.PDF&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;UART videos:&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="https://www.youtube.com/watch?v=89sZ4nW-mgw&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=2" target="test_blank"&gt;https://www.youtube.com/watch?v=89sZ4nW-mgw&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=2&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="https://www.youtube.com/watch?v=dNZvvouiqis&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=10" target="test_blank"&gt;https://www.youtube.com/watch?v=dNZvvouiqis&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=10&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="https://www.youtube.com/watch?v=GaoWE-tMRq4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=11" target="test_blank"&gt;https://www.youtube.com/watch?v=GaoWE-tMRq4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=11&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Apr 2019 22:14:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891601#M52685</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2019-04-25T22:14:57Z</dc:date>
    </item>
    <item>
      <title>Re: DMA buffer to Tx UART on K10DN512</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891602#M52686</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in such configuration described above, the I got interrupt after 8 bytes are transfered to UART tx buffer, but DMA continues to feed UART TX buffer.&amp;nbsp; How to ensure that DMA stops feeding UART tx without software intervention.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Feb 2020 23:23:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891602#M52686</guid>
      <dc:creator>radomir_kozub</dc:creator>
      <dc:date>2020-02-19T23:23:26Z</dc:date>
    </item>
    <item>
      <title>Re: DMA buffer to Tx UART on K10DN512</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891603#M52687</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;&lt;SPAN style="font-family: courier new, courier, monospace;"&gt;DMAx_TCD_BITER_ELINK&lt;/SPAN&gt; and &lt;SPAN style="font-family: courier new, courier, monospace;"&gt;DMAx_TCD_CITER_ELINK&lt;/SPAN&gt; must be set to the number of bytes to be sent.&lt;BR /&gt;Then &lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace;"&gt;DMAx_TCD_CSR |= DMA_TCD_CSR_DREQ;&lt;/SPAN&gt;&lt;BR /&gt;is required so that the DMA activity stops after the number of characters has been sent, otherwise it will keep repeating.&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;BR /&gt;&lt;EM&gt;[uTasker project developer for Kinetis and i.MX RT]&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Feb 2020 01:40:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891603#M52687</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2020-02-20T01:40:47Z</dc:date>
    </item>
    <item>
      <title>Re: DMA buffer to Tx UART on K10DN512</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891604#M52688</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That works, thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Feb 2020 07:12:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891604#M52688</guid>
      <dc:creator>radomir_kozub</dc:creator>
      <dc:date>2020-02-20T07:12:17Z</dc:date>
    </item>
    <item>
      <title>Re: DMA buffer to Tx UART on K10DN512</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891605#M52689</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark,&lt;/P&gt;&lt;P&gt;I am also trying to send 8 bytes of data with uart0. As soon as i write below line in configuration my 8 byte data is sent.&lt;/P&gt;&lt;P&gt;DMAMUX0_CHCFG(channel) = DMAMUX_CHCFG_ENBL_MASK;&lt;/P&gt;&lt;P&gt;I don't know what is triggering the dma transfer. But I wanna know how should I initiate another transfer.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 May 2020 06:34:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891605#M52689</guid>
      <dc:creator>prashantdev</dc:creator>
      <dc:date>2020-05-25T06:34:46Z</dc:date>
    </item>
    <item>
      <title>Re: DMA buffer to Tx UART on K10DN512</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891606#M52690</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, my UART "flush" function is this&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function Name : UDMASendData&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Description   :  Sends (transmits) data out through the UART-DMA module&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;with resource control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;resource control - waits till PREVIOUS operation is finished. So once&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;you call uart66SendBuf&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and module is not actually sending data, function takes semaphore and&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;starts UART-DMA sending&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and function returns immediatelly. Consequent calling will block the&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;task (wait for semaphore)&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;till previous message is sent out, or semaphore timeout.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; ***************************************************************************/&lt;/P&gt;&lt;P&gt;uint32_t uart66SendBuf(const uint8_t * txBuff, uint32_t txSize, uint32_t&lt;/P&gt;&lt;P&gt;timeout)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;    portBASE_TYPE semaphoreStat;&lt;/P&gt;&lt;P&gt;    if (uart66.txIrqSync == NULL)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        LOGM66P(6, logmDebug, "M66portuart66SendBuf() semaphore NULL\n");&lt;/P&gt;&lt;P&gt;        return kStatus_UART_NullParameter;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    semaphoreStat =  xSemaphoreTake(uart66.txIrqSync, timeout);&lt;/P&gt;&lt;P&gt;    if(semaphoreStat == pdFALSE) // timeout&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        LOGM66P(7, logmDebug, "M66portuart66SendBuf() semaphore take&lt;/P&gt;&lt;P&gt;FAIL\n");&lt;/P&gt;&lt;P&gt;        return (kStatus_UART_Timeout);&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    /* Update txBuff and txSize. */&lt;/P&gt;&lt;P&gt;    DMA0-&amp;gt;TCD[TXDMACH].SADDR = (uint32_t)txBuff;&lt;/P&gt;&lt;P&gt;    DMA0-&amp;gt;TCD[TXDMACH].BITER_ELINKNO = txSize;&lt;/P&gt;&lt;P&gt;    DMA0-&amp;gt;TCD[TXDMACH].CITER_ELINKNO = txSize;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    /* Enable DMA major loop interrupt */&lt;/P&gt;&lt;P&gt;    DMA0-&amp;gt;TCD[TXDMACH].CSR = DMA_CSR_INTMAJOR_MASK | DMA_CSR_DREQ_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    /* Start DMA channel */&lt;/P&gt;&lt;P&gt;    DMA0-&amp;gt;SERQ = 1;&lt;/P&gt;&lt;P&gt;    LOGM66P(8, logmDebug, "M66portuart 66SendBuf() UART Tx started\n");&lt;/P&gt;&lt;P&gt;    return (kStatus_UART_Success);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Radomir&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;po 25. 5. 2020 v 8:36 odesílatel prashantdev &amp;lt;admin@community.nxp.com&amp;gt;&lt;/P&gt;&lt;P&gt;napsal:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE level="1"&gt;&lt;P&gt;NXP Community&lt;/P&gt;&lt;P&gt;&amp;lt;https://community.freescale.com/resources/statics/1000/35400-NXP-Community-Email-banner-600x75.jpg&amp;gt;&lt;/P&gt;&lt;P&gt;Re: DMA buffer to Tx UART on K10DN512&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reply from prashantdev&lt;/P&gt;&lt;P&gt;&amp;lt;https://community.nxp.com/people/prashantdev?et=watches.email.thread&amp;gt; in *Kinetis&lt;/P&gt;&lt;P&gt;Microcontrollers* - View the full discussion&lt;/P&gt;&lt;P&gt;&amp;lt;https://community.nxp.com/message/1316554?commentID=1316554&amp;amp;et=watches.email.thread#comment-1316554&amp;gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 May 2020 07:49:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891606#M52690</guid>
      <dc:creator>radomir_kozub</dc:creator>
      <dc:date>2020-05-25T07:49:41Z</dc:date>
    </item>
    <item>
      <title>Re: DMA buffer to Tx UART on K10DN512</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891607#M52691</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanx for the help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 May 2020 15:03:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-buffer-to-Tx-UART-on-K10DN512/m-p/891607#M52691</guid>
      <dc:creator>prashantdev</dc:creator>
      <dc:date>2020-05-25T15:03:51Z</dc:date>
    </item>
  </channel>
</rss>

