<?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 with SPI on KL25z with mlx camera</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656352#M40110</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi mahieu lucas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have attached a kl25 spi dma project for your reference.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; The code function is use DMA send the SRAM address 0x20000010 data to SPI , use DMA receive the data from SPI , and transfer it to the SRAM address 0x20000000.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; This code works on my side, you can refer to it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;If you still have question, please contact me!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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>Tue, 15 Nov 2016 03:26:36 GMT</pubDate>
    <dc:creator>kerryzhou</dc:creator>
    <dc:date>2016-11-15T03:26:36Z</dc:date>
    <item>
      <title>DMA with SPI on KL25z with mlx camera</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656351#M40109</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="color: #51626f; border: 0px;"&gt;Hey,&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;I try to make a communication between the spi of kl25z and &amp;nbsp;mlx camera.&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;I have to get the data thanks to DMA.&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;With oscilloscope I succeed to see that I send the right command byte to the mlx.&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;I receive some data from the mlx, but I don't succeed to get it.&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;Can you look at my dam_init, because the software is blocking on the "enable_irq(INT_DMA0 - 16);" fonction call.&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;void dma_init(void){&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;new_dma_data=0;&lt;BR /&gt;// Enable clocks&lt;BR /&gt;SIM_SCGC6 |= SIM_SCGC6_DMAMUX_MASK;&lt;BR /&gt;SIM_SCGC7 |= SIM_SCGC7_DMA_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Config DMA Mux for ADC operation&lt;BR /&gt;// Disable DMA Mux channel first&lt;BR /&gt;DMAMUX0_CHCFG0 = 0x00;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;// Configure DMA&lt;BR /&gt;DMA_SAR0 = (uint32_t) &amp;amp;SPI0_D;&lt;BR /&gt;DMA_DAR0 = (uint32_t) spi_rdata;&lt;BR /&gt;DMA_DSR_BCR0 = DMA_DSR_BCR_BCR(3); // transfert de 3 octets via le DMA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DMA_DCR0 |= (DMA_DCR_EINT_MASK| // Enable interrupt&lt;BR /&gt;DMA_DCR_ERQ_MASK | // Enable peripheral request&lt;BR /&gt;DMA_DCR_SSIZE(1) | // Set source size to 8 bits&lt;BR /&gt;DMA_DCR_DINC_MASK| // Set increments to destination address&lt;BR /&gt;DMA_DCR_DSIZE(1)); // Set destination size of 8 bits&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;// Enable DMA channel and source&lt;BR /&gt;DMAMUX0_CHCFG0 |= DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(16); // Enable DMA channel and set SPI0 receive as source cf doc KL25P80M48SF0RM.pdf p64-65&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;// Enable interrupt&lt;BR /&gt;enable_irq(INT_DMA0 - 16);&lt;BR /&gt;}&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;thanks in advance&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;lucas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 13 Nov 2016 11:00:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656351#M40109</guid>
      <dc:creator>lucasmahieu</dc:creator>
      <dc:date>2016-11-13T11:00:21Z</dc:date>
    </item>
    <item>
      <title>Re: DMA with SPI on KL25z with mlx camera</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656352#M40110</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi mahieu lucas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have attached a kl25 spi dma project for your reference.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; The code function is use DMA send the SRAM address 0x20000010 data to SPI , use DMA receive the data from SPI , and transfer it to the SRAM address 0x20000000.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; This code works on my side, you can refer to it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;If you still have question, please contact me!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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>Tue, 15 Nov 2016 03:26:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656352#M40110</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-11-15T03:26:36Z</dc:date>
    </item>
    <item>
      <title>Re: DMA with SPI on KL25z with mlx camera</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656353#M40111</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="color: #51626f; border: 0px;"&gt;I am confused because I do't succeed to make my SPI connection working with DMA...&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;You gave me so many advice, but I steel have problems.&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;here my code :&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;The main.c&lt;/P&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;int&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;main&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;volatile&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;int&lt;/SPAN&gt; it &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;dma_init&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;for&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;it&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;it &lt;SPAN class="" style="border: 0px;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;100000&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;it&lt;SPAN class="" style="border: 0px;"&gt;++&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;SPI_init&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;camera_send_cmd&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;CR&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;for&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;it&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;it &lt;SPAN class="" style="border: 0px;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;100000&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;it&lt;SPAN class="" style="border: 0px;"&gt;++&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;camera_send_cmd&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;WU&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;TERMINAL_PRINTF&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;"START TEST\n\r"&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;while&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;1&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;test_RT&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;for&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;it&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;it &lt;SPAN class="" style="border: 0px;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;100000&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;it&lt;SPAN class="" style="border: 0px;"&gt;++&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;return&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;The test_RT fonction:&amp;nbsp;&lt;/P&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;extern&lt;/SPAN&gt; uint8_t spi_rdata&lt;SPAN class="" style="border: 0px;"&gt;[&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;3&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;]&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0xf&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="" style="border: 0px;"&gt;#define RT 0b11000011&lt;/SPAN&gt;
&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;test_RT&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;volatile&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;int&lt;/SPAN&gt; i&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint8_t read&lt;SPAN class="" style="border: 0px;"&gt;[&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;3&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;]&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;RT&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0x00&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0x00&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;TERMINAL_PRINTF&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;"TEST_RT - new_dma_data=%u\n\r"&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;new_dma_data&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&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; &lt;SPAN class="" style="border: 0px;"&gt;SPI_write&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;read&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;3&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;for&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;i&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;i&lt;SPAN class="" style="border: 0px;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;1000000&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;i&lt;SPAN class="" style="border: 0px;"&gt;++&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;if&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;new_dma_data&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;TERMINAL_PRINTF&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;"SB=%u\n\r"&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;spi_rdata&lt;SPAN class="" style="border: 0px;"&gt;[&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;]&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;TERMINAL_PRINTF&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;"Threshold=%u\n\r"&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;spi_rdata&lt;SPAN class="" style="border: 0px;"&gt;[&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;1&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;]&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;TERMINAL_PRINTF&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;"Zero=%u\n\r"&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt;spi_rdata&lt;SPAN class="" style="border: 0px;"&gt;[&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;2&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;]&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;TERMINAL_PRINTF&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;"----------------\n\r"&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;I will give you me 2 init fonction :&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;volatile&lt;/SPAN&gt; uint8_t new_dma_data&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;DMA_IRQHandler&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;static&lt;/SPAN&gt; uint8_t nb_int &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nb_int &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;if&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;nb_int&lt;SPAN class="" style="border: 0px;"&gt;%&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;3&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;==&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="" style="border: 0px;"&gt;// Clear pending errors and/or the done bit &lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="" style="border: 0px;"&gt;if&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; DMA_DSR_BCR_DONE_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;==&lt;/SPAN&gt; DMA_DSR_BCR_DONE_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&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;&lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; DMA_DSR_BCR_BES_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;==&lt;/SPAN&gt; DMA_DSR_BCR_BES_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&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;&lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; DMA_DSR_BCR_BED_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;==&lt;/SPAN&gt; DMA_DSR_BCR_BED_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&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;&lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; DMA_DSR_BCR_CE_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;==&lt;/SPAN&gt; DMA_DSR_BCR_CE_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; DMA_DSR_BCR_DONE_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_SAR0 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;uint32_t&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt;SPI0_D&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DAR0 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;uint32_t&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt;spi_rdata&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;DMA_DSR_BCR_BCR&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;3&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; DMA_DCR_ERQ_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_dma_data&lt;SPAN class="" style="border: 0px;"&gt;++&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;TERMINAL_PRINTF&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;"IRQ_DMA\n"&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;dma_init&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new_dma_data&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Enable clocks&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SIM_SCGC6 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; SIM_SCGC6_DMAMUX_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SIM_SCGC7 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; SIM_SCGC7_DMA_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Config DMA Mux for ADC operation&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Disable DMA Mux channel first&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMAMUX0_CHCFG0 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;0x00&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Clear pending errors and/or the done bit &lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;if&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; DMA_DSR_BCR_DONE_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;==&lt;/SPAN&gt; DMA_DSR_BCR_DONE_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&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;&lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; DMA_DSR_BCR_BES_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;==&lt;/SPAN&gt; DMA_DSR_BCR_BES_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&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;&lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; DMA_DSR_BCR_BED_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;==&lt;/SPAN&gt; DMA_DSR_BCR_BED_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&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;&lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; DMA_DSR_BCR_CE_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;==&lt;/SPAN&gt; DMA_DSR_BCR_CE_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; DMA_DSR_BCR_DONE_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Configure DMA&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_SAR0 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;uint32_t&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt;SPI0_D&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DAR0 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;uint32_t&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt;spi_rdata&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DSR_BCR0 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;DMA_DSR_BCR_BCR&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;3&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;// transfert de 3 octets via le DMA&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Clear Source size and Destination size fields.&amp;nbsp; &lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;~&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;DMA_DCR_SSIZE_MASK &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; DMA_DCR_DSIZE_MASK&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;DMA_DCR_DSIZE&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;1&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Set destination size of 8 bits &lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;DMA_DCR_SSIZE&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;1&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Set source size to 8 bits&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; DMA_DCR_DINC_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Set increments to destination address&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;DMA_DCR_DMOD&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;1&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// destination adress modulo 16 bytes&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; DMA_DCR_CS_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// 1 transfert per request &lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; DMA_DCR_EINT_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Enable interrupt&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Enable DMA channel and source&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Enable DMA channel and set SPI0 receive as source cf doc KL25P80M48SF0RM.pdf p64-65&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMAMUX0_CHCFG0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; DMAMUX_CHCFG_ENBL_MASK &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;DMAMUX_CHCFG_SOURCE&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;16&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; DMA_DCR_ERQ_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;// Enable peripheral request&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Enable interrupt&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;enable_irq&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;INT_DMA0 &lt;SPAN class="" style="border: 0px;"&gt;-&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;16&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;and for the spi :&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;uint8_t spi_rdata&lt;SPAN class="" style="border: 0px;"&gt;[&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;3&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;]&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0xFF&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;SPI_init&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Enable clock network to SPI0&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SIM_SCGC4 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; SIM_SCGC4_SPI0_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SIM_SCGC5 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; SIM_SCGC5_PORTC_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SIM_SCGC5 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; SIM_SCGC5_PORTD_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PORTD_PCR0 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;PORT_PCR_MUX&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;2&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="" style="border: 0px;"&gt;// PCS&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PORTC_PCR5 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;PORT_PCR_MUX&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;2&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="" style="border: 0px;"&gt;// SCK&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PORTC_PCR6 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;PORT_PCR_MUX&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;2&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="" style="border: 0px;"&gt;// MOSI&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PORTC_PCR7 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;PORT_PCR_MUX&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;2&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="" style="border: 0px;"&gt;// MISO&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// disable SPI&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI0_C1 &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;~&lt;/SPAN&gt;SPI_C1_SPE_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI0_C1 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; SPI_C1_MSTR_MASK &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; SPI_C1_SSOE_MASK &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; SPI_C1_CPHA_MASK &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; SPI_C1_CPOL_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&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;SPI0_C2 &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; SPI_C2_MODFEN_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="" style="border: 0px;"&gt;//Master SS pin acts as slave select output&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// Pour activer le DMA en réception&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI0_C2 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; SPI_C2_RXDMAE_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI0_BR &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;SPI_BR_SPPR&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;0b000&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;SPI_BR_SPR&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;0b0011&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&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;SPI0_C1 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; SPI_C1_SPE_MASK&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="" style="border: 0px;"&gt;/* Enable SPI module */&lt;/SPAN&gt;
&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;SPI_write&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;uint8_t&lt;SPAN class="" style="border: 0px;"&gt;*&lt;/SPAN&gt; p&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt; uint8_t size&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint8_t i&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;for&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;i&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt; i&lt;SPAN class="" style="border: 0px;"&gt;&amp;lt;&lt;/SPAN&gt;size&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt; i&lt;SPAN class="" style="border: 0px;"&gt;++&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;while&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;!&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;SPI_S_SPTEF_MASK &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; SPI_status&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI0_D &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; p&lt;SPAN class="" style="border: 0px;"&gt;[&lt;/SPAN&gt;i&lt;SPAN class="" style="border: 0px;"&gt;]&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;sorry for the french comment in the code ^^&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;I give you lot of work, but your help would be very very very useful because I really donc understand what is the problem.&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;I use an oscilloscope to see the signal. All signal are right the MOSI, the MISO also.&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;BUT :&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;-&amp;gt; if the interrupt of the DMA is disable (DMA_DCR_EINT_MASK not used), all works fine. But I receive 0 in spi_rdata[0], 0 in&amp;nbsp;spi_rdata[1], 0 in&amp;nbsp;spi_rdata[2]. I initialise&amp;nbsp;spi_rdata[] with 0xFF, and in the printf I can see that there are 0 in&amp;nbsp;spi_rdata[i]. But the problem is that on MISO I don't have 0 ... So Why ? Really don't understand this point.&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;-&amp;gt; if I enable the interrupt in the DMA init : the spi_write() is blocking. The program block in the spi_write fonction I donc know why ...&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; border: 0px;"&gt;REALLY thanks in advance !&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Nov 2016 20:45:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656353#M40111</guid>
      <dc:creator>lucasmahieu</dc:creator>
      <dc:date>2016-11-24T20:45:01Z</dc:date>
    </item>
    <item>
      <title>Re: DMA with SPI on KL25z with mlx camera</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656354#M40112</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mahieu,&lt;/P&gt;&lt;P&gt;1. Please delete the following code in dma initial:&lt;/P&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;DMA_DCR_DMOD&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;1&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// destination adress modulo 16 bytes&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;2.&amp;nbsp; You said when DMA interrupt is disabled, the receive data is 0, and the MISO is not 0, what the data in the MISO line?&lt;/P&gt;&lt;P&gt;&amp;nbsp; You can post some wave picture.&lt;/P&gt;&lt;P&gt;&amp;nbsp; About the code testing in the main, you can use break point to test :&lt;/P&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;
&lt;/CODE&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;
&lt;/CODE&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;void&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;SPI_write&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;uint8_t&lt;SPAN class="" style="border: 0px;"&gt;*&lt;/SPAN&gt; p&lt;SPAN class="" style="border: 0px;"&gt;,&lt;/SPAN&gt; uint8_t size&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint8_t i&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;for&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;i&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt; i&lt;SPAN class="" style="border: 0px;"&gt;&amp;lt;&lt;/SPAN&gt;size&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt; i&lt;SPAN class="" style="border: 0px;"&gt;++&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;while&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;!&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;SPI_S_SPTEF_MASK &lt;SPAN class="" style="border: 0px;"&gt;&amp;amp;&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;SPI1_S)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI0_D &lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; p&lt;SPAN class="" style="border: 0px;"&gt;[&lt;/SPAN&gt;i&lt;SPAN class="" style="border: 0px;"&gt;]&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="" style="border: 0px;"&gt;}&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;
 
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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>Tue, 29 Nov 2016 06:13:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656354#M40112</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-11-29T06:13:20Z</dc:date>
    </item>
    <item>
      <title>Re: DMA with SPI on KL25z with mlx camera</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656355#M40113</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey kerry,&amp;nbsp;&lt;/P&gt;&lt;P&gt;At first REALY thanks you for your reply !&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 :&amp;nbsp;&lt;/P&gt;&lt;PRE class="" style="color: #51626f; border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;DMA_DCR0 &lt;SPAN class="" style="border: 0px;"&gt;|&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;DMA_DCR_DMOD&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;1&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;// destination adress modulo 16 bytes&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Ok,it is removed&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have checked all wire on me dev board and the kl25z, I have checked my code thanks to you,&lt;/P&gt;&lt;P&gt;and it works !!!!!!!!!!!&lt;/P&gt;&lt;P&gt;I am really really happy to succeed. Thanks again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For now I can receive several time 3 bytes through the spi + dma.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I steal have a problem, The interrupt of the dma doen't work.&lt;/P&gt;&lt;P&gt;I had this line in the dma configuration&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="" style="color: #51626f; border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;
&lt;/CODE&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;CODE style="border: 0px;"&gt;
&lt;/CODE&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;// Enable interrupt&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="" style="border: 0px;"&gt;enable_irq&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;INT_DMA0 &lt;SPAN class="" style="border: 0px;"&gt;-&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;16&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;
I think this line is the problem.&lt;/PRE&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;
But I never have any interrupt a the end of the DMA BCR = 0.

Do you have an idea ? according to me code posted here ?
&lt;/SPAN&gt;Best reagard, and thanks again&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2016 09:00:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656355#M40113</guid>
      <dc:creator>lucasmahieu</dc:creator>
      <dc:date>2016-12-01T09:00:23Z</dc:date>
    </item>
    <item>
      <title>Re: DMA with SPI on KL25z with mlx camera</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656356#M40114</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi mahieu,&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Enable interrupt code should be:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; enable_irq(0);&lt;/P&gt;&lt;P&gt;Because your INT_DMA0 =16, then&lt;/P&gt;&lt;PRE class="" style="color: #51626f; border: 0px;"&gt;&lt;PRE class="" style="border: 0px;"&gt;&lt;CODE style="border: 0px;"&gt;&lt;SPAN class="" style="border: 0px;"&gt;enable_irq&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;(&lt;/SPAN&gt;INT_DMA0 &lt;SPAN class="" style="border: 0px;"&gt;-&lt;/SPAN&gt; &lt;SPAN class="" style="border: 0px;"&gt;16&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="" style="border: 0px;"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/PRE&gt;&lt;P&gt;is correct.&lt;/P&gt;&lt;P&gt;&amp;nbsp; You can put an break point in the ISR, check whether the code enter it.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Besides, don't do clear DMA done code in your main code, after send and receive the data, check the DONE bit, whether it is set.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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, 02 Dec 2016 07:54:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/DMA-with-SPI-on-KL25z-with-mlx-camera/m-p/656356#M40114</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-12-02T07:54:45Z</dc:date>
    </item>
  </channel>
</rss>

