<?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 SPI communication on KL25Z in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510168#M32191</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I tried to read an ADXL345 accelerometer, I have written my own SPI read and write because it doesn't work with processor expert.&lt;/P&gt;&lt;P&gt;The initialization of SPI is:&lt;/P&gt;&lt;P&gt;--------------------------------------------------&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; SIM_SCGC5 |= SIM_SCGC5_PORTD_MASK;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;//Turn on clock to D module&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_SPI0_MASK;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;//Enable SPI0 clock&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; PORTD_PCR0 = PORT_PCR_MUX(0x2);&lt;/TD&gt;&lt;TD&gt;//Set PTD0 to mux 2 [SPI0_PCS0]&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; PORTD_PCR1 = PORT_PCR_MUX(0x2);&lt;/TD&gt;&lt;TD&gt;//Set PTD1 to mux 2 [SPI0_SCK]&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; PORTD_PCR2 = PORT_PCR_MUX(0x2);&lt;/TD&gt;&lt;TD&gt;//Set PTD2 to mux 2 [SPI0_MOSI]&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; PORTD_PCR3 = PORT_PCR_MUX(0x2);&lt;/TD&gt;&lt;TD&gt;//Set PTD3 to mux 2 [SPIO_MISO]&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SPI0_C1 = SPI_C1_MSTR_MASK | SPI_C1_SSOE_MASK | SPI_C1_CPHA_MASK | SPI_C1_CPOL_MASK;&amp;nbsp;&amp;nbsp; //Set SPI0 to Master &amp;amp; SS pin to auto SS&lt;/P&gt;&lt;P&gt;&amp;nbsp; SPI0_C2 = SPI_C2_MODFEN_MASK;&amp;nbsp;&amp;nbsp; //Master SS pin acts as slave select output&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; SPI0_BR = (SPI_BR_SPPR(0x02) | SPI_BR_SPR(0x08)); &lt;/TD&gt;&lt;TD&gt;//Set baud rate prescale divisor to 3 &amp;amp; set baud rate divisor to 64 for baud rate of 15625 hz&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; SPI0_C1 |= SPI_C1_SPE_MASK;&lt;/TD&gt;&lt;TD&gt;//Enable SPI0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp; WAIT1_Waitms(500);&lt;/P&gt;&lt;P&gt;------------------------------------------------------------&lt;/P&gt;&lt;P&gt;the read function is quite simple, I write the adress and next read the answer;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;uint8_t retour=0,dummy;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; bool fini=FALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!(SPI_S_SPTEF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //While buffer is not empty do nothing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D =adresse+0x80;&lt;/TD&gt;&lt;TD&gt;//write adress+0x80 (read mode)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI_S_SPRF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; //While received buffer is not full do nothing&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retour=SPI0_D;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retour;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For the test I init the SPI and try to read adress 0x00.&lt;/P&gt;&lt;P&gt;As you can see on the analyzer image, the byte is written, but nothing is read, the KL25Z do nothing. I should have a second set of 8 clock pulses.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="analyser.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/33251i0F3626BE45A7A3C8/image-size/large?v=v2&amp;amp;px=999" role="button" title="analyser.jpg" alt="analyser.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Michel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 30 Dec 2015 13:40:10 GMT</pubDate>
    <dc:creator>michelmeunier</dc:creator>
    <dc:date>2015-12-30T13:40:10Z</dc:date>
    <item>
      <title>SPI communication on KL25Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510168#M32191</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I tried to read an ADXL345 accelerometer, I have written my own SPI read and write because it doesn't work with processor expert.&lt;/P&gt;&lt;P&gt;The initialization of SPI is:&lt;/P&gt;&lt;P&gt;--------------------------------------------------&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; SIM_SCGC5 |= SIM_SCGC5_PORTD_MASK;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;//Turn on clock to D module&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_SPI0_MASK;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;//Enable SPI0 clock&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; PORTD_PCR0 = PORT_PCR_MUX(0x2);&lt;/TD&gt;&lt;TD&gt;//Set PTD0 to mux 2 [SPI0_PCS0]&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; PORTD_PCR1 = PORT_PCR_MUX(0x2);&lt;/TD&gt;&lt;TD&gt;//Set PTD1 to mux 2 [SPI0_SCK]&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; PORTD_PCR2 = PORT_PCR_MUX(0x2);&lt;/TD&gt;&lt;TD&gt;//Set PTD2 to mux 2 [SPI0_MOSI]&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; PORTD_PCR3 = PORT_PCR_MUX(0x2);&lt;/TD&gt;&lt;TD&gt;//Set PTD3 to mux 2 [SPIO_MISO]&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SPI0_C1 = SPI_C1_MSTR_MASK | SPI_C1_SSOE_MASK | SPI_C1_CPHA_MASK | SPI_C1_CPOL_MASK;&amp;nbsp;&amp;nbsp; //Set SPI0 to Master &amp;amp; SS pin to auto SS&lt;/P&gt;&lt;P&gt;&amp;nbsp; SPI0_C2 = SPI_C2_MODFEN_MASK;&amp;nbsp;&amp;nbsp; //Master SS pin acts as slave select output&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; SPI0_BR = (SPI_BR_SPPR(0x02) | SPI_BR_SPR(0x08)); &lt;/TD&gt;&lt;TD&gt;//Set baud rate prescale divisor to 3 &amp;amp; set baud rate divisor to 64 for baud rate of 15625 hz&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp; SPI0_C1 |= SPI_C1_SPE_MASK;&lt;/TD&gt;&lt;TD&gt;//Enable SPI0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp; WAIT1_Waitms(500);&lt;/P&gt;&lt;P&gt;------------------------------------------------------------&lt;/P&gt;&lt;P&gt;the read function is quite simple, I write the adress and next read the answer;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;uint8_t retour=0,dummy;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; bool fini=FALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!(SPI_S_SPTEF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //While buffer is not empty do nothing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D =adresse+0x80;&lt;/TD&gt;&lt;TD&gt;//write adress+0x80 (read mode)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI_S_SPRF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; //While received buffer is not full do nothing&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retour=SPI0_D;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retour;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For the test I init the SPI and try to read adress 0x00.&lt;/P&gt;&lt;P&gt;As you can see on the analyzer image, the byte is written, but nothing is read, the KL25Z do nothing. I should have a second set of 8 clock pulses.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="analyser.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/33251i0F3626BE45A7A3C8/image-size/large?v=v2&amp;amp;px=999" role="button" title="analyser.jpg" alt="analyser.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Michel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Dec 2015 13:40:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510168#M32191</guid>
      <dc:creator>michelmeunier</dc:creator>
      <dc:date>2015-12-30T13:40:10Z</dc:date>
    </item>
    <item>
      <title>Re: SPI communication on KL25Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510169#M32192</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;In order to send an address and then read a further byte you must send two bytes:&lt;/P&gt;&lt;P&gt;- the address&lt;/P&gt;&lt;P&gt;- a 'dummy' one (eg. 0xff) - &lt;EM&gt;this will generate the second 8 clocks&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;- they you will receive the result value back&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;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Dec 2015 19:25:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510169#M32192</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-12-30T19:25:40Z</dc:date>
    </item>
    <item>
      <title>Re: SPI communication on KL25Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510170#M32193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Mark, you have solved a part of my problem.&lt;/P&gt;&lt;P&gt;Now the picture of analyzer seems to be correct, but the SPRF bit seems to be unused. I have add a 5ms wait before to read the answer, I should received 0xe5 but I allways get 0!!.&lt;/P&gt;&lt;P&gt;My read function looks like that:&lt;/P&gt;&lt;P&gt;------------------------------&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;uint8_t retour=0,dummy;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool fini=FALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI_S_SPTEF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //While buffer is not empty do nothing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D =adresse+0x80;&lt;/TD&gt;&lt;TD&gt;//write adress+0x80 (read mode)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI_S_SPTEF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //While buffer is not empty do nothing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D =0x00;&lt;/TD&gt;&lt;TD&gt;//write 0x0 to generate 8 clock pulses&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI_S_SPRF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; //While received buffer is not full do nothing&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WAIT1_Waitms(5);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retour=SPI0_D;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retour;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;----------------------&lt;/P&gt;&lt;P&gt;And the analyzer:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="analyser.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/9085i82F29DC733FE901E/image-size/large?v=v2&amp;amp;px=999" role="button" title="analyser.jpg" alt="analyser.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I think I am that with your help, I am very closed from the solution.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Michel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Dec 2015 21:28:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510170#M32193</guid>
      <dc:creator>michelmeunier</dc:creator>
      <dc:date>2015-12-30T21:28:21Z</dc:date>
    </item>
    <item>
      <title>Re: SPI communication on KL25Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510171#M32194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Michel&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After you configure the SPI interface add&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(void)SPI0_S;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(void)SPI0_D;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will ensure that the status flags start to work correctly.&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;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Dec 2015 22:15:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510171#M32194</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-12-30T22:15:05Z</dc:date>
    </item>
    <item>
      <title>Re: SPI communication on KL25Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510172#M32195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Michel Meunier,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Actually, to KL25Z, you don't need to delay after the SPRF is set, you can read the D register directly, and try again.&lt;/P&gt;&lt;P&gt;&amp;nbsp; If you still not OK, please add the dummy read:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;uint8_t retour=0,dummy;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool fini=FALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI_S_SPTEF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //While buffer is not empty do nothing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D =adresse+0x80;&lt;/TD&gt;&lt;TD&gt;//write adress+0x80 (read mode)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI_S_SPTEF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //While buffer is not empty do nothing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dummy = SPI0_S; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D =0x00;&lt;/TD&gt;&lt;TD&gt;//write 0x0 to generate 8 clock pulses&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI_S_SPRF_MASK &amp;amp; SPI0_S))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; //While received buffer is not full do nothing&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retour=SPI0_D;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retour;&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 let me know!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Jingjing&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>Mon, 04 Jan 2016 08:07:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-communication-on-KL25Z/m-p/510172#M32195</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-01-04T08:07:49Z</dc:date>
    </item>
  </channel>
</rss>

