<?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: LPSPI in MKE18F512VLL16 in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1233347#M59682</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;SPAN&gt;CEPL_Dev,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;Do you mean, just when you modify&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;single byte transfer function&amp;nbsp;&lt;/STRONG&gt;in the SDK, you meet the stuck issues?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;Do you test the SDK code:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SDK_2.8.0_TWR-KE18F\boards\twrke18f\driver_examples\lpspi\polling_b2b_transfer\master&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; directly? Any issues or not?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; Today, I test our SDK code, just the above master project, I modify the renasfer size to 1 byte, it works Ok:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/137542i672748156C35613E/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; You can find, I run over&amp;nbsp;LPSPI_MasterTransferBlocking&amp;nbsp; :&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;while (LPSPI_GetTxFifoCount(base) == fifoSize)&lt;BR /&gt;{&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;BTW, I also test the interrupt code:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SDK_2.8.0_TWR-KE18F\boards\twrke18f\driver_examples\lpspi\interrupt_b2b\master&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/137543i51CF1D9218F68F15/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Even I modify the byte to 1, it also works OK.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;So, you can try the SDK code directly.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;If you still have questions about it, please kindly let me know.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;kerry&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 19 Feb 2021 06:12:08 GMT</pubDate>
    <dc:creator>kerryzhou</dc:creator>
    <dc:date>2021-02-19T06:12:08Z</dc:date>
    <item>
      <title>LPSPI in MKE18F512VLL16</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1232727#M59663</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hello friends,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I'm trying to use the &lt;STRONG&gt;LPSPI&lt;/STRONG&gt; module of Kinetis &lt;STRONG&gt;MKE18F512VLL16 &lt;/STRONG&gt;for making a &lt;STRONG&gt;single byte transfer function&lt;/STRONG&gt;. I tried to drive the peripheral with both the &lt;STRONG&gt;CMSIS LPSPI&lt;/STRONG&gt; driver as well as the &lt;STRONG&gt;NXP Peripheral SDK Library&lt;/STRONG&gt;. Tried example codes for both of the libraries with transfer size set to 1. Every time&amp;nbsp;when I run the code, the data transfer&amp;nbsp;function got stuck&amp;nbsp;in the below mentioned while loop and it's not going forward.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="unnamed.png" style="width: 554px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/137423i041ACC2684F560A2/image-size/large?v=v2&amp;amp;px=999" role="button" title="unnamed.png" alt="unnamed.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I tried debugging step by step, but couldn't find a solution. So I went forward and wrote a bare-metal driver for LPSPI from scratch and that didn't worked either. The bare- metal driver is as follows.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;v&lt;FONT face="verdana,geneva"&gt;oid&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;InitSPI(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;){&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Set&amp;nbsp;pin&amp;nbsp;mux&amp;nbsp;alternative&amp;nbsp;to&amp;nbsp;LPSPI&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PORTB-&amp;gt;PCR[&lt;/SPAN&gt;&lt;SPAN&gt;14&lt;/SPAN&gt;&lt;SPAN&gt;]&amp;nbsp;&amp;nbsp;|=&amp;nbsp;PORT_PCR_MUX(&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PORTB-&amp;gt;PCR[&lt;/SPAN&gt;&lt;SPAN&gt;15&lt;/SPAN&gt;&lt;SPAN&gt;]&amp;nbsp;&amp;nbsp;|=&amp;nbsp;PORT_PCR_MUX(&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PORTB-&amp;gt;PCR[&lt;/SPAN&gt;&lt;SPAN&gt;16&lt;/SPAN&gt;&lt;SPAN&gt;]&amp;nbsp;&amp;nbsp;|=&amp;nbsp;PORT_PCR_MUX(&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PORTB-&amp;gt;PCR[&lt;/SPAN&gt;&lt;SPAN&gt;17&lt;/SPAN&gt;&lt;SPAN&gt;]&amp;nbsp;&amp;nbsp;|=&amp;nbsp;PORT_PCR_MUX(&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PCC-&amp;gt;CLKCFG[PCC_LPSPI1_INDEX]&amp;nbsp;|=&amp;nbsp;PCC_CLKCFG_CGC(&lt;/SPAN&gt;&lt;SPAN&gt;0b1&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Enable&amp;nbsp;Clock&amp;nbsp;for&amp;nbsp;LPSPI&amp;nbsp;Module&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PCC-&amp;gt;CLKCFG[PCC_LPSPI1_INDEX]&amp;nbsp;|=&amp;nbsp;PCC_CLKCFG_PCS(&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; /*&amp;nbsp;FIRC&amp;nbsp;selected&amp;nbsp;as&amp;nbsp;clock&amp;nbsp;source&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CR&amp;nbsp;|=&amp;nbsp;LPSPI_CR_RTF_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Reset&amp;nbsp;Transmit&amp;nbsp;FIFO&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CR&amp;nbsp;|=&amp;nbsp;LPSPI_CR_RRF_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Reset&amp;nbsp;Receive&amp;nbsp;FIFO&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CR&amp;nbsp;|=&amp;nbsp;LPSPI_CR_DBGEN_MASK;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Module&amp;nbsp;is&amp;nbsp;enabled&amp;nbsp;in&amp;nbsp;debug&amp;nbsp;mode&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CFGR1&amp;nbsp;|=&amp;nbsp;LPSPI_CFGR1_OUTCFG_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Output&amp;nbsp;data&amp;nbsp;is&amp;nbsp;tristated&amp;nbsp;when&amp;nbsp;CS&amp;nbsp;is&amp;nbsp;negated&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CFGR1&amp;nbsp;|=&amp;nbsp;LPSPI_CFGR1_MASTER_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Master&amp;nbsp;Mode&amp;nbsp;configured&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CFGR1&amp;nbsp;&amp;amp;=&amp;nbsp;(~LPSPI_CFGR1_NOSTALL_MASK);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;No&amp;nbsp;Stall&amp;nbsp;Disabled&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CCR&amp;nbsp;|=&amp;nbsp;LPSPI_CCR_SCKPCS(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Delay&amp;nbsp;from&amp;nbsp;the&amp;nbsp;last&amp;nbsp;SCK&amp;nbsp;edge&amp;nbsp;to&amp;nbsp;the&amp;nbsp;PCS&amp;nbsp;negation&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CCR&amp;nbsp;|=&amp;nbsp;LPSPI_CCR_PCSSCK(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Delay&amp;nbsp;from&amp;nbsp;the&amp;nbsp;PCS&amp;nbsp;assertion&amp;nbsp;to&amp;nbsp;the&amp;nbsp;first&amp;nbsp;SCK&amp;nbsp;edge&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CCR&amp;nbsp;|=&amp;nbsp;LPSPI_CCR_DBT(&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Delay&amp;nbsp;from&amp;nbsp;the&amp;nbsp;PCS&amp;nbsp;negation&amp;nbsp;to&amp;nbsp;the&amp;nbsp;next&amp;nbsp;PCS&amp;nbsp;assertion&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CCR&amp;nbsp;|=&amp;nbsp;LPSPI_CCR_SCKDIV(&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;SCK&amp;nbsp;Divider&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;FCR&amp;nbsp;|=&amp;nbsp;LPSPI_FCR_RXWATER(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Receive&amp;nbsp;FIFO&amp;nbsp;Watermark&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;FCR&amp;nbsp;|=&amp;nbsp;LPSPI_FCR_TXWATER(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Transmit&amp;nbsp;FIFO&amp;nbsp;Watermark&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;&amp;amp;=&amp;nbsp;~(LPSPI_TCR_TXMSK_MASK);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Trasmit&amp;nbsp;Masked&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;|=&amp;nbsp;LPSPI_TCR_RXMSK(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Receive&amp;nbsp;Masked&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;|=&amp;nbsp;LPSPI_TCR_PRESCALE(&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/* Prescale - 8&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;|=&amp;nbsp;LPSPI_TCR_WIDTH(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;LPSPI&amp;nbsp;in&amp;nbsp;2&amp;nbsp;wire&amp;nbsp;mode&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;|=&amp;nbsp;LPSPI_TCR_PCS(&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Trasfer&amp;nbsp;using&amp;nbsp;PCS&amp;nbsp;3&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;|=&amp;nbsp;LPSPI_TCR_FRAMESZ(&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Frame&amp;nbsp;Size&amp;nbsp;8&amp;nbsp;bits&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;|=&amp;nbsp;LPSPI_TCR_TXMSK_MASK;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Trasmit&amp;nbsp;Unmasked&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;CR&amp;nbsp;|=&amp;nbsp;LPSPI_CR_MEN_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Module&amp;nbsp;is&amp;nbsp;enabled&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Baud&amp;nbsp;Rate&amp;nbsp;=&amp;nbsp;(SrcClk/PRESCALE)/(SCKDIV+2)&amp;nbsp;=&amp;nbsp;(12MHz/8)/(4)&amp;nbsp;=&amp;nbsp;375&amp;nbsp;KHz&amp;nbsp;*/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="verdana,geneva"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;SPISendData(&lt;/SPAN&gt;&lt;SPAN&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;TxData){&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;|=&amp;nbsp;LPSPI_TCR_RXMSK(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Receive&amp;nbsp;Masked&amp;nbsp;*/&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;|=&amp;nbsp;LPSPI_TCR_TXMSK_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Trasmit&amp;nbsp;Unmasked&amp;nbsp;*/&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TDR&amp;nbsp;=&amp;nbsp;TxData;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;SPI_ReadData(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;){&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;&amp;amp;=&amp;nbsp;~LPSPI_TCR_RXMSK(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Receive&amp;nbsp;Unmasked&amp;nbsp;*/&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSPI1-&amp;gt;TCR&amp;nbsp;&amp;amp;=&amp;nbsp;~(LPSPI_TCR_TXMSK_MASK);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;/*&amp;nbsp;Trasmit&amp;nbsp;Masked&amp;nbsp;*/&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(LPSPI1-&amp;gt;RDR);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. What could be the reason behind the NXP LPSPI SDK peripheral library example code getting stuck in the above mentioned while loop for checking FIFO.&lt;/P&gt;&lt;P&gt;2. What could be wrong in the bare metal code which was written for a single byte transfer.&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Prasanth K S&lt;/P&gt;</description>
      <pubDate>Thu, 18 Feb 2021 09:28:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1232727#M59663</guid>
      <dc:creator>CEPL_Dev</dc:creator>
      <dc:date>2021-02-18T09:28:23Z</dc:date>
    </item>
    <item>
      <title>Re: LPSPI in MKE18F512VLL16</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1232876#M59667</link>
      <description>&lt;P&gt;Using '|=' almost everyplace is likely clearing some needed status bit.&lt;BR /&gt;NXP has a bad habit of using |= when it is not needed.&lt;BR /&gt;At best this wastes code space at worse it makes broken code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 18 Feb 2021 13:36:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1232876#M59667</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2021-02-18T13:36:20Z</dc:date>
    </item>
    <item>
      <title>Re: LPSPI in MKE18F512VLL16</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1233347#M59682</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;SPAN&gt;CEPL_Dev,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;Do you mean, just when you modify&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;single byte transfer function&amp;nbsp;&lt;/STRONG&gt;in the SDK, you meet the stuck issues?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;Do you test the SDK code:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SDK_2.8.0_TWR-KE18F\boards\twrke18f\driver_examples\lpspi\polling_b2b_transfer\master&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; directly? Any issues or not?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; Today, I test our SDK code, just the above master project, I modify the renasfer size to 1 byte, it works Ok:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/137542i672748156C35613E/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; You can find, I run over&amp;nbsp;LPSPI_MasterTransferBlocking&amp;nbsp; :&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;while (LPSPI_GetTxFifoCount(base) == fifoSize)&lt;BR /&gt;{&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;BTW, I also test the interrupt code:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SDK_2.8.0_TWR-KE18F\boards\twrke18f\driver_examples\lpspi\interrupt_b2b\master&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/137543i51CF1D9218F68F15/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Even I modify the byte to 1, it also works OK.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;So, you can try the SDK code directly.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;If you still have questions about it, please kindly let me know.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;kerry&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Feb 2021 06:12:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1233347#M59682</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2021-02-19T06:12:08Z</dc:date>
    </item>
    <item>
      <title>Re: LPSPI in MKE18F512VLL16</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1466312#M63193</link>
      <description>&lt;P&gt;Hi!&lt;BR /&gt;I was testing the MKE18F512XXX16 LPSPI example but in a custom&amp;nbsp;MKE16F512XXX16 board (MKE16 SDK didn't came with an example so I copied the example for a TWR board).&lt;/P&gt;&lt;P&gt;I was having the same issue that you, my LPSPI_MasterTransferNonBlocking function got stucked everytime in that exact place&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;while (LPSPI_GetTxFifoCount(base) != 0U)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I was debugging and detected that&amp;nbsp;base-&amp;gt;TCR&amp;nbsp;had a value of 1 and wasnt changing.&lt;/P&gt;&lt;P&gt;At the end I discovered that it was a problem of my clock configuration because the SPI wasn't running.&lt;BR /&gt;If the SPI clock isnt configured correctly it wont run.&lt;/P&gt;&lt;P&gt;At the beginning of my example code I had this:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;srcClock_Hz = LPSPI_MASTER_CLK_FREQ;&lt;BR /&gt;LPSPI_MasterInit(EXAMPLE_LPSPI_MASTER_BASEADDR, &amp;amp;masterConfig, srcClock_Hz);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;And I found that&amp;nbsp;srcClock_Hz&amp;nbsp;got loaded with 0 instead of the real value.&lt;/P&gt;&lt;P&gt;All I did was checking my clock and preescaler config so it is running at correct speed.&lt;/P&gt;&lt;P&gt;This is my configuration:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Definitions&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_BASEADDR LPSPI0&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_CLOCK_NAME kCLOCK_Lpspi0&lt;BR /&gt;#define LPSPI_MASTER_CLK_FREQ (CLOCK_GetIpFreq(EXAMPLE_LPSPI_MASTER_CLOCK_NAME))&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_CLOCK_SOURCE (kCLOCK_IpSrcSircAsync)&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_PCS_FOR_INIT kLPSPI_Pcs2&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_PCS_FOR_TRANSFER kLPSPI_MasterPcs2&lt;/P&gt;&lt;P&gt;#define EXAMPLE_LPSPI_DEALY_COUNT 0xfffff&lt;BR /&gt;#define TRANSFER_SIZE 64U /*! Transfer dataSize */&lt;BR /&gt;#define TRANSFER_BAUDRATE 500000U /*! Transfer baudrate - 500k */&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;And my clock config:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;SIRC DIV1 clock: 8MHz&lt;/P&gt;&lt;P&gt;SIRC DIV2 clock: 4MHz&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;</description>
      <pubDate>Mon, 30 May 2022 13:59:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1466312#M63193</guid>
      <dc:creator>ArmandoPinedaM</dc:creator>
      <dc:date>2022-05-30T13:59:06Z</dc:date>
    </item>
    <item>
      <title>Re: LPSPI in MKE18F512VLL16</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1466429#M63198</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/179276"&gt;@ArmandoPinedaM&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; Any new issues, please create the your own question post, then our kinetis engineer will help you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Best Regards,&lt;/P&gt;
&lt;P&gt;kerry&lt;/P&gt;</description>
      <pubDate>Tue, 31 May 2022 01:30:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/LPSPI-in-MKE18F512VLL16/m-p/1466429#M63198</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2022-05-31T01:30:06Z</dc:date>
    </item>
  </channel>
</rss>

