<?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>Wireless MCUのトピックRe: QN9020  UART RX by DMA</title>
    <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097180#M10023</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use hardware TIMER0, I do not use ke_timer_set because I was thinking it was 10ms precision&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void app_timer_init(void)&lt;BR /&gt;{&lt;BR /&gt; midi_uart_env.mytimer = 0;&lt;BR /&gt; timer_init(QN_TIMER0, timer_callback_1ms);&lt;BR /&gt;timer_config(QN_TIMER0, 10, TIMER_COUNT_MS(1, 10));&lt;BR /&gt; timer_enable(QN_TIMER0, MASK_ENABLE);&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;Olivier&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Aug 2020 15:14:11 GMT</pubDate>
    <dc:creator>olivierm</dc:creator>
    <dc:date>2020-08-25T15:14:11Z</dc:date>
    <item>
      <title>QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097172#M10015</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;QN9020 DMA Documentation&lt;/P&gt;&lt;P&gt;I am using DMA_RX to access to the UART RX (1Mb).&lt;/P&gt;&lt;P&gt;The problem I have is that I lost some buffer.&lt;/P&gt;&lt;P&gt;The FIFO of UART_RX is 8bits and I receive information by packet of 4/8/16/bytes.&lt;/P&gt;&lt;P&gt;So I read the DMA by 4 bytes in the IRQ.&lt;/P&gt;&lt;P&gt;But even If i ask for a new DMA request in the IRQ , I lost some bytes.&lt;/P&gt;&lt;P&gt;I put the DMA priority to 1 and others to 3&lt;/P&gt;&lt;P&gt;I cannot find any information on the DMA register that can help me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thx&lt;/P&gt;&lt;P&gt;Oliver&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Aug 2020 07:47:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097172#M10015</guid>
      <dc:creator>olivierm</dc:creator>
      <dc:date>2020-08-17T07:47:33Z</dc:date>
    </item>
    <item>
      <title>Re: QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097173#M10016</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Oliver,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope you are doing great.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How are you implementing the reading of the DMA on the IRQ?&lt;/P&gt;&lt;P&gt;Just to confirm, did you look at the DMA example that we provide in our SDK?&lt;/P&gt;&lt;P&gt;C:\NXP\QN902x_SDK_1.4.0\Projects\Driver\dma\&lt;/P&gt;&lt;P&gt;Please look at the DMA configuration, Peripheral (UART0) to memory.&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt; &lt;SPAN class="token function"&gt;dma_rx&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;DMA_TRANS_BYTE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; DMA_UART0_RX&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uint32_t&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;rxbuffer&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;20&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; dma_done&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;You have 3 different transfer modes.&amp;nbsp;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;enum&lt;/SPAN&gt; DMA_TRANS_MODE
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
    DMA_TRANS_BYTE      &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;        &lt;SPAN class="comment token"&gt;/*!&amp;lt; Set DMA transfer mode as byte transfer */&lt;/SPAN&gt;
    DMA_TRANS_HALF_WORD &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;        &lt;SPAN class="comment token"&gt;/*!&amp;lt; Set DMA transfer mode as half word transfer */&lt;/SPAN&gt;
    DMA_TRANS_WORD      &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;         &lt;SPAN class="comment token"&gt;/*!&amp;lt; Set DMA transfer mode as word transfer */&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Aug 2020 16:45:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097173#M10016</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2020-08-18T16:45:03Z</dc:date>
    </item>
    <item>
      <title>Re: QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097174#M10017</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;Thank you for your feedback&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As I am using UART1 with 8bits FIFO, I use&amp;nbsp;DMA_TRANS_BYTE. Note that UART1 is set at 1Mb and I receive a lot of traffic&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void init_dma()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;dma_rx(DMA_TRANS_BYTE, DMA_UART1_RX, (uint32_t)midi_uart_env.buf_rx,200, midi_uart_rx_done);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void midi_uart_rx_done(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;if(&lt;SPAN&gt;midi_uart_env.buf_rx[0] != 0x09)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;QPRINTF("I LOST ONE BYTE OR MORE");&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;dma_rx(DMA_TRANS_BYTE, DMA_UART1_RX, (uint32_t)midi_uart_env.buf_rx,&lt;/SPAN&gt;&lt;SPAN&gt;200&lt;/SPAN&gt;&lt;SPAN&gt;, midi_uart_rx_done);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem is that sometimes I lost one bytes between two DMA call and I cannot lost 1 bytes otherwise by buffers are Shifted.&lt;/P&gt;&lt;P&gt;And unfortunatley I do not see any option for using circular buffer.&lt;/P&gt;&lt;P&gt;If I use bigger buffer I not have any bytes lost during the transfer, but only during two request even If I ask for a new DMA request as soon as possible.&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;Oliver&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Aug 2020 08:49:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097174#M10017</guid>
      <dc:creator>olivierm</dc:creator>
      <dc:date>2020-08-19T08:49:06Z</dc:date>
    </item>
    <item>
      <title>Re: QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097175#M10018</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Oliver,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a specific reason why are calling again the&amp;nbsp;dma_rx()?&lt;/P&gt;&lt;P&gt;Are you calling the dma_init()?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;However, could you please try with the DMA driver example?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;"C:\NXP\QN902x_SDK_1.4.0\Projects\Driver\dma\src\dma_example.c"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;    &lt;SPAN class="comment token"&gt;/* Peripheral(UART0) to Memory */&lt;/SPAN&gt;
    done &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; FALSE&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;dma_rx&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;DMA_TRANS_BYTE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; DMA_UART1_RX&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uint32_t&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;rxbuffer&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;200&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; dma_done&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;done &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; FALSE&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The callback dma_done.&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;dma_done&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
    done &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; TRUE&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After, all this process you could look at the buffer and be sure that your data is there.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Aug 2020 20:16:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097175#M10018</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2020-08-19T20:16:53Z</dc:date>
    </item>
    <item>
      <title>Re: QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097176#M10019</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;I am calling again the dma_rx because I still receive data on the UART, and I cannot allocate a buffer more than 2047 bytes ( according nxp documentation ).&lt;/P&gt;&lt;P&gt;So I ask for a new DMA request.&lt;/P&gt;&lt;P&gt;The best will be to have a DMA that allows circular buffer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried the dma_example, and I well receive my data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I wait for dma_done in main loop and do not lost any buffer, but the problem is that it blocks all other event and especially BLE.&lt;/P&gt;&lt;P&gt;while(1)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;done = FALSE;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;dma_rx(DMA_TRANS_BYTE, DMA_UART1_RX, (uint32_t)rxbuffer,4, dma_done); &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;while(done == FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(rxbuffer[0] != FIRST_MARKER_BYTE)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uart_printf(QN_UART0, (uint8_t *)"Lost BYTES!!!\n");&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if I do the second request in the call_back,&lt;/P&gt;&lt;P&gt;void dma_done(void)&lt;BR /&gt;{&lt;BR /&gt; dma_rx(DMA_TRANS_BYTE, DMA_UART1_RX, (uint32_t)&lt;SPAN&gt;rxbuffer&lt;/SPAN&gt;, 4, dma_done);&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if(rxbuffer[0] != FIRST_MARKER_BYTE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;uart_printf(QN_UART0, (uint8_t *)"Lost BYTES!!!\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I lost some bytes between the requests. If I use huge DMA buffer, I do not have any data lost on the requested buffer, it's only between the requests&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;Regards,&lt;/P&gt;&lt;P&gt;Oliver&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Aug 2020 13:04:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097176#M10019</guid>
      <dc:creator>olivierm</dc:creator>
      <dc:date>2020-08-20T13:04:37Z</dc:date>
    </item>
    <item>
      <title>Re: QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097177#M10020</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Oliver,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to add the DMA routing to the scheduler and it will provide the resources without bocking the Bluetooth communication.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The example provides this implementation depending on the UART 0 or 1 and if you want to use DMA or not.&lt;/P&gt;&lt;P&gt;by default, the example doesn't have defined this feature. driver_config.h&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="property macro token"&gt;#define UART_DMA_EN         FALSE       &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*!&amp;lt; Enable/Disable UART DMA function */&lt;/SPAN&gt;‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;You could define as true and look for the UART_RX_DMA_EN, you could call the uart_read included in the app_sys.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Aug 2020 15:58:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097177#M10020</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2020-08-20T15:58:55Z</dc:date>
    </item>
    <item>
      <title>Re: QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097178#M10021</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Marco,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think , I have found the reason of my issue but unfortunateley not the solution.&lt;/P&gt;&lt;P&gt;It seems it's related to My TIMER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a TIMER2 at 1ms and if I disable this TIMER&amp;nbsp; all the DMA request are OK,&lt;/P&gt;&lt;P&gt;Even if I set the DMA Priority to 1 and TIMER2 Priority to 3 and still have the problem.&lt;/P&gt;&lt;P&gt;Is there another way to do a 1ms timer or a reason why this TIMER disturn so much the DMA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Oliver&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Aug 2020 13:47:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097178#M10021</guid>
      <dc:creator>olivierm</dc:creator>
      <dc:date>2020-08-21T13:47:05Z</dc:date>
    </item>
    <item>
      <title>Re: QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097179#M10022</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Oliver,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The timer should not disturb the DMA, the DMA is not using the MCU, but when you try to read out this information the timer or the Bluetooth could avoid entering this routine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I recommend adding the peripheral configuration to the scheduler, it will provide all the resources to the task in the running process.&lt;/P&gt;&lt;P&gt;How are you adding this timer? are you calling the ke_timer_set to get this 1 ms?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Aug 2020 15:12:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097179#M10022</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2020-08-24T15:12:24Z</dc:date>
    </item>
    <item>
      <title>Re: QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097180#M10023</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use hardware TIMER0, I do not use ke_timer_set because I was thinking it was 10ms precision&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void app_timer_init(void)&lt;BR /&gt;{&lt;BR /&gt; midi_uart_env.mytimer = 0;&lt;BR /&gt; timer_init(QN_TIMER0, timer_callback_1ms);&lt;BR /&gt;timer_config(QN_TIMER0, 10, TIMER_COUNT_MS(1, 10));&lt;BR /&gt; timer_enable(QN_TIMER0, MASK_ENABLE);&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;Olivier&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2020 15:14:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1097180#M10023</guid>
      <dc:creator>olivierm</dc:creator>
      <dc:date>2020-08-25T15:14:11Z</dc:date>
    </item>
    <item>
      <title>Re: QN9020  UART RX by DMA</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1160910#M10212</link>
      <description>&lt;P&gt;Hi Oliver,&lt;/P&gt;
&lt;P&gt;I hope you are doing great.&lt;/P&gt;
&lt;P&gt;The UART baud rate could be taking all the CPU, and the timer could not get the exact time that you set.&lt;/P&gt;
&lt;P&gt;Is it possible that you could use a&amp;nbsp;&lt;SPAN&gt;higher 32M OSC and set the AHB clock to 32M?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Mario&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Sep 2020 20:45:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9020-UART-RX-by-DMA/m-p/1160910#M10212</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2020-09-29T20:45:59Z</dc:date>
    </item>
  </channel>
</rss>

