<?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: Flexbus performance issue in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500213#M31270</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;Please refer attached code about Flexbus burst transfer, which is using DMA to transfer 16 bytes data from/to Flexbus.&lt;/P&gt;&lt;P&gt;The DMA setting of SOFF and DOFF must be aligned to 16-byte address, otherwise the transfer is not started.&lt;/P&gt;&lt;P&gt;Please check below code about SOFF and DOFF setting:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void K70_DMA_init(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_DMAMUX0_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC7 |= SIM_SCGC7_DMA_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Enable DMA MUX ch 0*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //DMAMUX0_CHCFG0 |= DMAMUX_CHCFG_ENBL_MASK;// | DMAMUX_CHCFG_SOURCE(63);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX0_CHCFG0 =&amp;nbsp; DMAMUX_CHCFG_SOURCE(63);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Start the sequence*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_ERQ |= DMA_ERQ_ERQ0_MASK;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*** Initialize CH0, MRAM -&amp;gt; FlexBus, transfer 16 bytes ***/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the Source Address*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_SADDR = (uint32_t)(&amp;amp;RAM_START_ADDRESS);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Destination address */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_DADDR = (uint32_t)(&amp;amp;MRAM_START_ADDRESS);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Source offset*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_SOFF = 0x16; // 1 byte&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Modulo off and port sizes*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_ATTR = DMA_ATTR_SSIZE(4) | DMA_ATTR_SMOD(0) | DMA_ATTR_DSIZE(4) | DMA_ATTR_DMOD(0);&amp;nbsp; //source 8 bits, Destination size is&amp;nbsp; 16-byte burst&amp;nbsp;&amp;nbsp;&amp;nbsp; //DMA_TCD0_ATTR = DMA_ATTR_SSIZE(2) | DMA_ATTR_DSIZE(2);&amp;nbsp;&amp;nbsp;&amp;nbsp; //source and destination size 2 = 32 bits&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Transfer size */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_NBYTES_MLNO = 16; //16 bytes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* No adjustment to&amp;nbsp;&amp;nbsp;&amp;nbsp; source address */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_SLAST = -32;//-32&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Destination offset*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_DOFF = 0x16; //16 bytes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* No link channel, transactions */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_CITER_ELINKNO = 2; //2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Adjustment to&amp;nbsp;&amp;nbsp;&amp;nbsp; destination address */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_DLASTSGA = -32;//-32&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* No link channel, transactions */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_BITER_ELINKNO = 2; //2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_CSR = DMA_CSR_DREQ_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //DMA_TCD0_CSR = 0;&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;BR /&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;BR /&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, 06 Jun 2016 04:27:18 GMT</pubDate>
    <dc:creator>Hui_Ma</dc:creator>
    <dc:date>2016-06-06T04:27:18Z</dc:date>
    <item>
      <title>Flexbus performance issue</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500206#M31263</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi! I am working Flexbus connection between mk22 micro and FPGA and trying to achieve maximum throughput in both directions. The configuration is 32 bit address and 32 bit data multiplexed, no wait states, auto-acknowledge.&lt;/P&gt;&lt;P&gt;First I have configured it to run at 40 MHz with core clocked at 120MHz. By looking on signals with logic analyzer I have recognized that instead of theoretical 4 cycles for read or write I am achieving only 5 cycles for read and 6 cycles for write. &lt;/P&gt;&lt;P&gt;When I clocked down the processor to 100 MHz and Flexbus speed to 50 MHz it runs 6 cycles for read and 7 cycles for write.&lt;/P&gt;&lt;P&gt;I have also confirmed that control register values are what I expect them to be.&lt;/P&gt;&lt;P&gt;Any consideration why this would be happening?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Addition: while running at 40MHz/120MHz if I add 1 wait state it runs at 5 cycles read or write (as expected).&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, 25 May 2016 11:11:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500206#M31263</guid>
      <dc:creator>v_snicarevs</dc:creator>
      <dc:date>2016-05-25T11:11:45Z</dc:date>
    </item>
    <item>
      <title>Re: Flexbus performance issue</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500207#M31264</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;Could you provide the Flexbus register configuration and logic analyzer signal scope pictures?&lt;/P&gt;&lt;P&gt;The Flexbus clock could up to 50MHz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;BR /&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, 30 May 2016 04:33:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500207#M31264</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2016-05-30T04:33:09Z</dc:date>
    </item>
    <item>
      <title>Re: Flexbus performance issue</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500208#M31265</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;The register configuration is following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14646859662931270 jive_text_macro" data-renderedposition="86_8_1192_224" jivemacro_uid="_14646859662931270" modifiedtitle="true"&gt;&lt;P&gt;FB_CSAR0 = (uint32)&amp;amp;MRAM_START_ADDRESS;&lt;/P&gt;&lt;P&gt;FB_CSCR0 = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FB_CSCR0&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FB_CSCR_ASET(0x0);&amp;nbsp; // assert chip select on second clock edge after address is asserted&lt;/P&gt;&lt;P&gt;FB_CSCR0&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FB_CSCR_RDAH(0x0);&amp;nbsp; // Read Address Hold or Deselect&lt;/P&gt;&lt;P&gt;FB_CSCR0&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FB_CSCR_WRAH(0x0);&amp;nbsp; // Write Address Hold or Deselect&lt;/P&gt;&lt;P&gt;FB_CSCR0&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FB_CSCR_WS(0x0);&amp;nbsp;&amp;nbsp;&amp;nbsp; // 0 wait state - may need a wait state depending on the bus speed&lt;/P&gt;&lt;P&gt;FB_CSCR0&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FB_CSCR_AA_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; // auto-acknowledge&lt;/P&gt;&lt;P&gt;FB_CSCR0&amp;nbsp;&amp;nbsp;&amp;nbsp; |= FB_CSCR_PS(0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 32-bit port&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FB_CSMR0&amp;nbsp; |=&amp;nbsp; FB_CSMR_BAM(0x7);&amp;nbsp; //Set base address mask for 512K address space&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Enable cs signal&lt;/P&gt;&lt;P&gt;FB_CSMR0&amp;nbsp; |= FB_CSMR_V_MASK;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="flexbus_50Hz_w.PNG"&gt;&lt;IMG alt="flexbus_50Hz_w.PNG" src="https://community.nxp.com/t5/image/serverpage/image-id/59655iF8318B3674EC8763/image-size/large?v=v2&amp;amp;px=999" title="flexbus_50Hz_w.PNG" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 13:28:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500208#M31265</guid>
      <dc:creator>v_snicarevs</dc:creator>
      <dc:date>2020-11-02T13:28:10Z</dc:date>
    </item>
    <item>
      <title>Re: Flexbus performance issue</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500209#M31266</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;Sorry for the later reply.&lt;/P&gt;&lt;P&gt;If you could provide the test code?&lt;/P&gt;&lt;P&gt;From the logic analyzer signal, after the Flexbus doing the 32-bit write, then it waiting for the instruction(code execution) to start the next 32-bit data write.&lt;/P&gt;&lt;P&gt;Customer could try with the burst transfer mode, there could do 16 byte burst transfer to enhance Flexbus performance.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;BR /&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, 02 Jun 2016 09:12:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500209#M31266</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2016-06-02T09:12:51Z</dc:date>
    </item>
    <item>
      <title>Re: Flexbus performance issue</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500210#M31267</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;The test code could not be simpler:&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14648644574601005 jive_text_macro" data-renderedposition="86_8_1192_64" jivemacro_uid="_14648644574601005"&gt;&lt;P&gt;for(n=0x0000;n&amp;lt;0x00400;n+=4)&amp;nbsp; //address offset&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; *(vuint32*)(&amp;amp;MRAM_START_ADDRESS + n) = 0x1234;&amp;nbsp; //write&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With DMA it managed to write first value in 4 cycles and following in 6, which is obviously better, but still not 4 cycles constantly.&lt;/P&gt;&lt;P&gt;What is your estimation for burst 16 bit writes? 5 cycles?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks, Viktor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Jun 2016 11:05:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500210#M31267</guid>
      <dc:creator>v_snicarevs</dc:creator>
      <dc:date>2016-06-02T11:05:20Z</dc:date>
    </item>
    <item>
      <title>Re: Flexbus performance issue</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500211#M31268</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;The burst 16 bytes (one line) data read just need using 7 cycles and write need using 8 cycles for 32-bit port.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;BR /&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, 03 Jun 2016 09:20:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500211#M31268</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2016-06-03T09:20:49Z</dc:date>
    </item>
    <item>
      <title>Re: Flexbus performance issue</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500212#M31269</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;Sounds cool, could you please send me register set-up and some test code for this please?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks, Viktor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Jun 2016 10:15:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500212#M31269</guid>
      <dc:creator>v_snicarevs</dc:creator>
      <dc:date>2016-06-03T10:15:14Z</dc:date>
    </item>
    <item>
      <title>Re: Flexbus performance issue</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500213#M31270</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;Please refer attached code about Flexbus burst transfer, which is using DMA to transfer 16 bytes data from/to Flexbus.&lt;/P&gt;&lt;P&gt;The DMA setting of SOFF and DOFF must be aligned to 16-byte address, otherwise the transfer is not started.&lt;/P&gt;&lt;P&gt;Please check below code about SOFF and DOFF setting:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void K70_DMA_init(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_DMAMUX0_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC7 |= SIM_SCGC7_DMA_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Enable DMA MUX ch 0*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //DMAMUX0_CHCFG0 |= DMAMUX_CHCFG_ENBL_MASK;// | DMAMUX_CHCFG_SOURCE(63);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX0_CHCFG0 =&amp;nbsp; DMAMUX_CHCFG_SOURCE(63);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Start the sequence*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_ERQ |= DMA_ERQ_ERQ0_MASK;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*** Initialize CH0, MRAM -&amp;gt; FlexBus, transfer 16 bytes ***/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the Source Address*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_SADDR = (uint32_t)(&amp;amp;RAM_START_ADDRESS);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Destination address */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_DADDR = (uint32_t)(&amp;amp;MRAM_START_ADDRESS);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Source offset*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_SOFF = 0x16; // 1 byte&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Modulo off and port sizes*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_ATTR = DMA_ATTR_SSIZE(4) | DMA_ATTR_SMOD(0) | DMA_ATTR_DSIZE(4) | DMA_ATTR_DMOD(0);&amp;nbsp; //source 8 bits, Destination size is&amp;nbsp; 16-byte burst&amp;nbsp;&amp;nbsp;&amp;nbsp; //DMA_TCD0_ATTR = DMA_ATTR_SSIZE(2) | DMA_ATTR_DSIZE(2);&amp;nbsp;&amp;nbsp;&amp;nbsp; //source and destination size 2 = 32 bits&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Transfer size */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_NBYTES_MLNO = 16; //16 bytes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* No adjustment to&amp;nbsp;&amp;nbsp;&amp;nbsp; source address */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_SLAST = -32;//-32&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Destination offset*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_DOFF = 0x16; //16 bytes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* No link channel, transactions */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_CITER_ELINKNO = 2; //2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Adjustment to&amp;nbsp;&amp;nbsp;&amp;nbsp; destination address */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_DLASTSGA = -32;//-32&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* No link channel, transactions */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_BITER_ELINKNO = 2; //2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_TCD0_CSR = DMA_CSR_DREQ_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //DMA_TCD0_CSR = 0;&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;BR /&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;BR /&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, 06 Jun 2016 04:27:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Flexbus-performance-issue/m-p/500213#M31270</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2016-06-06T04:27:18Z</dc:date>
    </item>
  </channel>
</rss>

