<?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: Ping Pong EDMA in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ping-Pong-EDMA/m-p/715230#M43932</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jing Pan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your help. I can now use the ping pong edma with flexio and save the data to the SD card. The speed rate dépends mostly to the SD card quality that is used!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Patrice&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 27 Oct 2017 14:37:29 GMT</pubDate>
    <dc:creator>lacouturepatric</dc:creator>
    <dc:date>2017-10-27T14:37:29Z</dc:date>
    <item>
      <title>Ping Pong EDMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ping-Pong-EDMA/m-p/715228#M43930</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to store&amp;nbsp;flexio data (FLEXIO_CAMERA_GetRxBufferAddress) into 2 buffers (Ping pong) with Flexio + EDMA:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- The First&amp;nbsp;buffer will contain the first N data (step 1) when&amp;nbsp;the buffer 1 is full, data will be written into buffer 2&lt;/P&gt;&lt;P&gt;- &amp;nbsp;the second buffer will contain N+1 data to 2*N &amp;nbsp;(step 2), when&amp;nbsp;the buffer&amp;nbsp;2 is full, data will be written into buffer 1 ...&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using MCUXpresso IDE v10.0.0_344 and SDK_2.2_TWR-K80F150M.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I succeed to write into the first buffer but not into the second buffer.&lt;/STRONG&gt; Do you know why I can not write into the second buffer or have any example ?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you in advance&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Patrice&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Bellow my code&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;__attribute__((aligned(32))) uint32_t FrameBuffer1[BUFF_LENGTH] = {0U};&lt;BR /&gt;__attribute__((aligned(32))) uint32_t FrameBuffer2[BUFF_LENGTH] = {0U};&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* User callback function for EDMA transfer. */&lt;BR /&gt;&amp;nbsp;void EDMA_Callback(edma_handle_t *handle, void *param, bool transferDone, uint32_t tcds)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (transferDone)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; isTransferCompleted = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;void Max2769_Init_V2(void)&lt;BR /&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;uint32_t errCount;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;edma_transfer_config_t transferConfig;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; edma_config_t edmaConfig;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;edma_handle_t g_edmaHandle;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;flexio_camera_edma_handle_t g_cameraEdmaHandle;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;flexio_camera_transfer_t cameraTransfer;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;isTransferCompleted = false;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Init the flexio to the camera mode */&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; FLEXIO_MAX2769Init();&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure DMAMUX */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_Init(DMAMUX0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_SetSource(DMAMUX0, DMA_CHN_FLEXIO_TO_FRAMEBUFF, (s_FlexioMax2769Device. shifterStartIdx + 1U));&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; DMAMUX_EnableChannel(DMAMUX0, DMA_CHN_FLEXIO_TO_FRAMEBUFF);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure DMA */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_GetDefaultConfig(&amp;amp;edmaConfig);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_Init(DMA0, &amp;amp;edmaConfig);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //First TCD ( to FrameBuffer1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].SADDR = FLEXIO_CAMERA_GetRxBufferAddress(&amp;amp;s_FlexioMax2769Device);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].SOFF = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].ATTR =&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_ATTR_SSIZE(kEDMA_TransferSize32Bytes) | DMA_ATTR_DSIZE(kEDMA_TransferSize32Bytes);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].NBYTES = 32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].SLAST = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].DADDR = (uint32_t)&amp;amp;FrameBuffer1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].DOFF = 32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].CITER = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].DLAST_SGA = (uint32_t) &amp;amp;s_TcdMemoryPtrFlexioToFrame[1];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].CSR = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[0].BITER = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //First TCD ( to FrameBuffer2)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].SADDR = FLEXIO_CAMERA_GetRxBufferAddress(&amp;amp;s_FlexioMax2769Device);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].SOFF = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].ATTR =&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_ATTR_SSIZE(kEDMA_TransferSize32Bytes) | DMA_ATTR_DSIZE(kEDMA_TransferSize32Bytes);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].NBYTES = 32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].SLAST = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].DADDR = (uint32_t)&amp;amp;FrameBuffer2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].DOFF = 32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].CITER = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].DLAST_SGA = (uint32_t) &amp;amp;s_TcdMemoryPtrFlexioToFrame[0];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].CSR = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_TcdMemoryPtrFlexioToFrame[1].BITER = 1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DMA INIT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_CreateHandle(&amp;amp;g_edmaHandle, DMA0, DMA_CHN_FLEXIO_TO_FRAMEBUFF);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_SetCallback(&amp;amp;g_edmaHandle, EDMA_Callback, NULL);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_TcdSetTransferConfig(&amp;amp;s_TcdMemoryPtrFlexioToFrame[0], &amp;amp;transferConfig, &amp;amp;s_TcdMemoryPtrFlexioToFrame[1]);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_InstallTCDMemory(&amp;amp;g_edmaHandle, s_TcdMemoryPtrFlexioToFrame, 2);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_PrepareTransfer(&amp;amp;transferConfig, (void *)FLEXIO_CAMERA_GetRxBufferAddress(&amp;amp;s_FlexioMax2769Device), 32,&amp;nbsp; FrameBuffer1,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 32, 32, sizeof(FrameBuffer1) , kEDMA_PeripheralToMemory);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_SubmitTransfer(&amp;amp;g_edmaHandle, &amp;amp;transferConfig);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_StartTransfer(&amp;amp;g_edmaHandle);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLEXIO_CAMERA_EnableRxDMA(&amp;amp;s_FlexioMax2769Device, true);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;while (!(isTransferCompleted))&lt;BR /&gt;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; sTransferCompleted= false;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; /* debug */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;for(uint32_t i=0;i&amp;lt;64;i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;printf("0x%08X\n", FrameBuffer1[i]);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;errCount =0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;for(uint32_t i=0;i&amp;lt;BUFF_LENGTH;i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (FrameBuffer1[i] != i+1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;errCount++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; printf("errorCount == %d\n", errCount);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;nbsp;while (!(isTransferCompleted))&lt;BR /&gt;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp; &amp;nbsp;PRINTF("isTransferCompleted : \n");&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* debug */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;for(uint32_t i=0;i&amp;lt;64;i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;printf("0x%08X\n", FrameBuffer2[i]);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;errCount =0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;for(uint32_t i=0;i&amp;lt;BUFF_LENGTH;i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (FrameBuffer1[i] != i+1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;errCount++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; printf("errorCount == %d\n", errCount);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-337616"&gt;code.c.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Sep 2017 16:10:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ping-Pong-EDMA/m-p/715228#M43930</guid>
      <dc:creator>lacouturepatric</dc:creator>
      <dc:date>2017-09-27T16:10:25Z</dc:date>
    </item>
    <item>
      <title>Re: Ping Pong EDMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ping-Pong-EDMA/m-p/715229#M43931</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lacouture,&lt;/P&gt;&lt;P&gt;Sorry for reply you so late.&lt;/P&gt;&lt;P&gt;What I get from your code is you use scatter/gather mode to transfer data. You should set TCD-&amp;gt;CSR.ESG bit to enable scatter/gather processing. Reference manual Page 638 is the detail. You can try to refer to the example_edma_scatter_gather. &lt;BR /&gt;Here is an example which use another way to play ping-pong. &lt;A href="https://www.nxp.com/docs/en/application-note/AN4520.pdf?fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1"&gt;&lt;SPAN style="color: #0066cc; text-decoration: underline;"&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;A href="https://www.nxp.com/docs/en/application-note/AN4520.pdf?fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1" target="test_blank"&gt;https://www.nxp.com/docs/en/application-note/AN4520.pdf?fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1&lt;/A&gt;&lt;BR /&gt;Btw, I'm a bit confused that MAX2769 is a GPS chip, it use SPI like bus, the Flex_IO_camera use I2C like bus. So...&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;Jing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Oct 2017 08:20:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ping-Pong-EDMA/m-p/715229#M43931</guid>
      <dc:creator>jingpan</dc:creator>
      <dc:date>2017-10-25T08:20:47Z</dc:date>
    </item>
    <item>
      <title>Re: Ping Pong EDMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ping-Pong-EDMA/m-p/715230#M43932</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jing Pan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your help. I can now use the ping pong edma with flexio and save the data to the SD card. The speed rate dépends mostly to the SD card quality that is used!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Patrice&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Oct 2017 14:37:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ping-Pong-EDMA/m-p/715230#M43932</guid>
      <dc:creator>lacouturepatric</dc:creator>
      <dc:date>2017-10-27T14:37:29Z</dc:date>
    </item>
  </channel>
</rss>

