<?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 Software Development Kit中的主题 frdm-kl43z simple spi</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/frdm-kl43z-simple-spi/m-p/628965#M6667</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;Hi!&lt;/P&gt;&lt;P&gt;I want to test ezport on my board via frdm-kl43. I've tried simple SPI trasnmission and failed.&lt;/P&gt;&lt;P&gt;The code:&lt;/P&gt;&lt;P&gt;&amp;nbsp; ini_spi();&lt;BR /&gt;&amp;nbsp; SPI1_S &amp;amp; (SPI_S_SPRF_MASK); //initial clear of SPRF bit&lt;BR /&gt;&amp;nbsp; while(1)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; OSA_TimeDelay(100);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GPIO_DRV_ClearPinOutput(CS); //CS enable&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; SPI1_DL=0x55;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; while (!(SPI1_S &amp;amp; (SPI_S_SPRF_MASK))); //wait SPRF to be setted up&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GPIO_DRV_SetPinOutput(CS); //CS desable&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;And logic analyzer picture is attached. Chip select goes high before transmit is complete.( SPRF sets)&lt;/P&gt;&lt;P&gt;What is the root of my problem?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 13 Feb 2017 13:21:53 GMT</pubDate>
    <dc:creator>alexeyusoltsev</dc:creator>
    <dc:date>2017-02-13T13:21:53Z</dc:date>
    <item>
      <title>frdm-kl43z simple spi</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/frdm-kl43z-simple-spi/m-p/628965#M6667</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;Hi!&lt;/P&gt;&lt;P&gt;I want to test ezport on my board via frdm-kl43. I've tried simple SPI trasnmission and failed.&lt;/P&gt;&lt;P&gt;The code:&lt;/P&gt;&lt;P&gt;&amp;nbsp; ini_spi();&lt;BR /&gt;&amp;nbsp; SPI1_S &amp;amp; (SPI_S_SPRF_MASK); //initial clear of SPRF bit&lt;BR /&gt;&amp;nbsp; while(1)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; OSA_TimeDelay(100);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GPIO_DRV_ClearPinOutput(CS); //CS enable&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; SPI1_DL=0x55;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; while (!(SPI1_S &amp;amp; (SPI_S_SPRF_MASK))); //wait SPRF to be setted up&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GPIO_DRV_SetPinOutput(CS); //CS desable&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;And logic analyzer picture is attached. Chip select goes high before transmit is complete.( SPRF sets)&lt;/P&gt;&lt;P&gt;What is the root of my problem?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Feb 2017 13:21:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/frdm-kl43z-simple-spi/m-p/628965#M6667</guid>
      <dc:creator>alexeyusoltsev</dc:creator>
      <dc:date>2017-02-13T13:21:53Z</dc:date>
    </item>
    <item>
      <title>Re: frdm-kl43z simple spi</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/frdm-kl43z-simple-spi/m-p/628966#M6668</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;ok,i have done with it.&lt;/P&gt;&lt;P&gt;With the interrupt it worked out:&lt;/P&gt;&lt;P&gt;&amp;nbsp; INT_SYS_InstallHandler(SPI1_IRQn,spi_interrupt_hndler);&lt;BR /&gt;&amp;nbsp; NVIC_EnableIRQ(SPI1_IRQn);&lt;BR /&gt;&amp;nbsp; INT_SYS_EnableIRQGlobal();&lt;BR /&gt;&amp;nbsp; SPI1_S &amp;amp; (SPI_S_SPRF_MASK);&lt;BR /&gt;&amp;nbsp; while(1)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; OSA_TimeDelay(1000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GPIO_DRV_ClearPinOutput(CS); //CS enable&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; spi_cnt=1; //2 symbols to sent&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if(SPI1_S&amp;amp;(1&amp;lt;&amp;lt;SPI_S_SPTEF_SHIFT )) SPI1_DL=0x05; //read status reg&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if(SPI1_S&amp;amp;(1&amp;lt;&amp;lt;SPI_S_SPTEF_SHIFT )) SPI1_DL=0x00; //here will be status reg answer&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and the interrupt code:&lt;/P&gt;&lt;P&gt;void spi_interrupt_hndler(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SPI1_S&amp;amp;SPI_S_SPRF_MASK;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t a=SPI1_DL;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(spi_cnt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;--spi_cnt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIO_DRV_SetPinOutput(CS);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;: for ezport to work you have to reset the CPU and push CS down before un-reset the target CPU. Than read Status register.&lt;/P&gt;&lt;P&gt;I hope it will help anyone.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Best regards, Alexey.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Feb 2017 15:39:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/frdm-kl43z-simple-spi/m-p/628966#M6668</guid>
      <dc:creator>alexeyusoltsev</dc:creator>
      <dc:date>2017-02-15T15:39:55Z</dc:date>
    </item>
  </channel>
</rss>

