<?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>S32KのトピックRe: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
    <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063087#M7183</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/wjandsq"&gt;wjandsq&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;I have just gone through the code briefly and I see one possible issue.&lt;/P&gt;&lt;P&gt;The Transmit Command Register (TCR) is not an ordinary register but a FIFO.&lt;/P&gt;&lt;P&gt;Please don't mask the register but prepare your transmit commands in variables (or use constants) and write the whole register at once whenever you need to change&amp;nbsp;it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are these LPSPI SDK examples:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;lpspi_dma_s32k144&lt;/LI&gt;&lt;LI&gt;lpspi_transfer_s32k144&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The LPSPI max baud rate (Frequency&amp;nbsp;of&amp;nbsp;operation) is specified in the S32K1xx datasheet.&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/data-sheet/S32K-DS.pdf" title="https://www.nxp.com/docs/en/data-sheet/S32K-DS.pdf"&gt;https://www.nxp.com/docs/en/data-sheet/S32K-DS.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table 46. LPSPI electrical specifications&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Jul 2020 08:14:48 GMT</pubDate>
    <dc:creator>danielmartynek</dc:creator>
    <dc:date>2020-07-07T08:14:48Z</dc:date>
    <item>
      <title>S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063082#M7178</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #242729; background-color: #ffffff;"&gt;I am using an external flash memory called &lt;SPAN style="color: #3d3d3d;"&gt;GD25P16,&amp;nbsp;with a &lt;SPAN&gt;S32K144&amp;nbsp;&lt;/SPAN&gt;microcontroler and i am trying to make them communicate through a &lt;SPAN&gt;LPSPI0&amp;nbsp;&lt;/SPAN&gt;bus.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;my problem is, I have no response from the &lt;SPAN style="background-color: #ffffff;"&gt;GD25P16&amp;nbsp;&lt;/SPAN&gt;on my requests.And Flash HOLD pin and WP pin is directly connected 3.3v.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;My LPSPI0 Configuration is&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;CS : GPIO_PTB5&amp;nbsp; &amp;nbsp;PCS1&amp;nbsp; MUX3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;MOSI: GPIO_PTB4 MUX3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;MISO: GPIO_PTB3 MUX3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;CLK: GPIO_PTB2 MUX3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;////////////////////////////////////////////////////////////LPSPI Pin config//////////////////////////////////////////////////////////////&lt;BR /&gt;pin_settings_config_t g_pin_mux_InitConfigArr_SPI0[4] = {&lt;BR /&gt; {&lt;BR /&gt; .base = PORTB,&lt;BR /&gt; .pinPortIdx = 2u,&lt;BR /&gt; .pullConfig = PORT_INTERNAL_PULL_NOT_ENABLED,&lt;BR /&gt; .passiveFilter = false,&lt;BR /&gt; .driveSelect = PORT_LOW_DRIVE_STRENGTH,&lt;BR /&gt; .mux = PORT_MUX_ALT3,&lt;BR /&gt; .pinLock = false,&lt;BR /&gt; .intConfig = PORT_DMA_INT_DISABLED,&lt;BR /&gt; .clearIntFlag = false,&lt;BR /&gt; .gpioBase = NULL,&lt;BR /&gt; },&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; .base = PORTB,&lt;BR /&gt; .pinPortIdx = 3u,&lt;BR /&gt; .pullConfig = &lt;SPAN&gt;PORT_INTERNAL_PULL_NOT_ENABLED&lt;/SPAN&gt;,&lt;BR /&gt; .passiveFilter = false,&lt;BR /&gt; .driveSelect = PORT_LOW_DRIVE_STRENGTH,&lt;BR /&gt; .mux = PORT_MUX_ALT3,&lt;BR /&gt; .pinLock = false,&lt;BR /&gt; .intConfig = PORT_DMA_INT_DISABLED,&lt;BR /&gt; .clearIntFlag = false,&lt;BR /&gt; .gpioBase = NULL,&lt;BR /&gt; },&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; .base = PORTB,&lt;BR /&gt; .pinPortIdx = 4u,&lt;BR /&gt; .pullConfig = PORT_INTERNAL_PULL_NOT_ENABLED,&lt;BR /&gt; .passiveFilter = false,&lt;BR /&gt; .driveSelect = PORT_LOW_DRIVE_STRENGTH,&lt;BR /&gt; .mux = PORT_MUX_ALT3,&lt;BR /&gt; .pinLock = false,&lt;BR /&gt; .intConfig = PORT_DMA_INT_DISABLED,&lt;BR /&gt; .clearIntFlag = false,&lt;BR /&gt; .gpioBase = NULL,&lt;BR /&gt; },&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; .base = PORTB,&lt;BR /&gt; .pinPortIdx = 5u,&lt;BR /&gt; .pullConfig = PORT_INTERNAL_PULL_NOT_ENABLED,&lt;BR /&gt; .passiveFilter = false,&lt;BR /&gt; .driveSelect = PORT_LOW_DRIVE_STRENGTH,&lt;BR /&gt; .mux = PORT_MUX_ALT3,&lt;BR /&gt; .pinLock = false,&lt;BR /&gt; .intConfig = PORT_DMA_INT_DISABLED,&lt;BR /&gt; .clearIntFlag = false,&lt;BR /&gt; .gpioBase = NULL,&lt;BR /&gt; },&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void LPSPI0_Init(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;const lpspi_master_config_t Send_MasterConfig0 =&lt;BR /&gt; {&lt;BR /&gt; .bitsPerSec = 500000U,&lt;BR /&gt; .whichPcs = LPSPI_PCS1,&lt;BR /&gt; .pcsPolarity = LPSPI_ACTIVE_LOW,&lt;/P&gt;&lt;P&gt;.isPcsContinuous = false,&lt;BR /&gt; .bitcount = 8U,&lt;BR /&gt; .lpspiSrcClk = 48000000U,&lt;BR /&gt; .clkPhase = LPSPI_CLOCK_PHASE_2ND_EDGE,&lt;BR /&gt; .clkPolarity = LPSPI_SCK_ACTIVE_LOW,&lt;BR /&gt; .lsbFirst = false,&lt;BR /&gt; .transferType = LPSPI_USING_INTERRUPTS,&lt;BR /&gt; .rxDMAChannel = 255,&lt;BR /&gt; .txDMAChannel = 255,&lt;BR /&gt; .callback = lpspi0_callback,&lt;BR /&gt; .callbackParam = NULL,&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_PORTB_INDEX] |= PCC_PCCn_CGC_MASK; /* Enable clock for PORTB */&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_LPSPI0_INDEX] = 0; /* Disable clocks to modify PCS ( default) */&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_LPSPI0_INDEX] = 0xC6000000; /* Enable PCS=SPLL_DIV2 */&lt;/P&gt;&lt;P&gt;PINS_DRV_Init(4, g_pin_mux_InitConfigArr_SPI0);&lt;/P&gt;&lt;P&gt;lpspistate.callback = lpspi0_callback;&lt;/P&gt;&lt;P&gt;LPSPI_DRV_MasterInit(0, &amp;amp;lpspistate, &amp;amp;Send_MasterConfig0);&lt;BR /&gt; LPSPI_DRV_MasterSetDelay(0, 1, 1, 1);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="47AECB6C289B4876BBC9ACCEFD0C9AB3.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/105463iABC108BE45E45CB8/image-size/large?v=v2&amp;amp;px=999" role="button" title="47AECB6C289B4876BBC9ACCEFD0C9AB3.jpg" alt="47AECB6C289B4876BBC9ACCEFD0C9AB3.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #222222; font-size: 14px; "&gt;I connected the logic analyzer to the chip and i can see SPI signals being generated by the MCU and to me they seem correct.But MISO Pin is always no signal.(MISO PIN is not shorted and isn't used by other)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #222222; font-size: 14px; "&gt;This is S32K and Flash&amp;nbsp;&lt;SPAN&gt;logic analyzer&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="1211CB07C9884F16A5C78B4E86B0B3BD.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/105597iAB479B2B4F7921B3/image-size/large?v=v2&amp;amp;px=999" role="button" title="1211CB07C9884F16A5C78B4E86B0B3BD.jpg" alt="1211CB07C9884F16A5C78B4E86B0B3BD.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;I try connected Flash SPI 4 PIN to STM32&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;microcontroler. Unexpectedly, Flash has response. The SCK Clock goes the same 500KHz.&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;&lt;SPAN style="color: #222222;"&gt;This is STM32 and Flash&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #222222;"&gt;logic analyzer.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="9c5b4fe3a47c458d9203b80841dfce4e.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/106831i65418A4D6EBA704E/image-size/large?v=v2&amp;amp;px=999" role="button" title="9c5b4fe3a47c458d9203b80841dfce4e.jpg" alt="9c5b4fe3a47c458d9203b80841dfce4e.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d; "&gt;I can't find anything on the web to help me so if someone have a solution to this problem, please help me, you are really welcome here ! thanks.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 May 2020 08:45:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063082#M7178</guid>
      <dc:creator>935367276</dc:creator>
      <dc:date>2020-05-22T08:45:44Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063083#M7179</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/935367276@qq.com"&gt;935367276@qq.com&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;Please see the CS signal.&lt;/P&gt;&lt;P&gt;The S32K144 MCU de-asserts the CS&amp;nbsp;after each 8-bit frame.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/106833i157CD81D090C8926/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/107139i43BACBBFF7D50047/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The&amp;nbsp;GD25P16 probably requires 32-bit or 40-bit frames.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 May 2020 10:27:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063083#M7179</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2020-05-25T10:27:13Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063084#M7180</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="1.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/113984i775869DFD04AE75F/image-size/large?v=v2&amp;amp;px=999" role="button" title="1.jpg" alt="1.jpg" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="2.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/113985i524D3C7BD3313B0B/image-size/large?v=v2&amp;amp;px=999" role="button" title="2.jpg" alt="2.jpg" /&gt;&lt;/span&gt;about W25QXX 、GD25QXX、MX25LXX.. SPI FLASH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the transmitted bytes exceed 16&amp;nbsp; bytes (4 WORD),&amp;nbsp; NXP cannot provide a useful LPSPI program, and there are too many bugs about LPSPI.&amp;nbsp;Especially, PCS cannot be controlled by software.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;For STM32F4, without interrupt and DMA, the following code can achieve full duplex. But there is no way for S32K144.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* for 40MHz SPI&amp;nbsp; */&lt;/P&gt;&lt;P&gt;uint8_t RxData;&lt;BR /&gt; while((hspi-&amp;gt;Instance-&amp;gt;SR &amp;amp; SPI_SR_TXE) != SPI_SR_TXE);&lt;BR /&gt; *((__IO uint8_t *)&amp;amp;hspi-&amp;gt;Instance-&amp;gt;DR) = TxData;&lt;BR /&gt; while((hspi-&amp;gt;Instance-&amp;gt;SR &amp;amp; SPI_SR_RXNE) != SPI_SR_RXNE);&lt;BR /&gt; RxData = *((__IO uint8_t *)&amp;amp;hspi-&amp;gt;Instance-&amp;gt;DR); &lt;BR /&gt; return RxData;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 27 Jun 2020 15:53:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063084#M7180</guid>
      <dc:creator>wjandsq</dc:creator>
      <dc:date>2020-06-27T15:53:33Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063085#M7181</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/wjandsq"&gt;wjandsq&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;Although the FIFOs are 4-word long,&amp;nbsp;the LPSPI can transmit more than that in a single frame, this is configurable by&amp;nbsp;the FRAMESZ bit field in the TCR transmit command registers.&lt;/P&gt;&lt;P&gt;Or you can use the continues transfer feature TCR_CONT = 1, then, the PCS stays asserted between frames.&lt;/P&gt;&lt;P&gt;You can also emulated PCS by SW, please have a look at the&amp;nbsp;Status Register, you can use the TCF, FCF flags.&lt;/P&gt;&lt;P&gt;The SDK has a LPSPI driver and there is an example as well (lpspi_transfer_s32k144).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Jun 2020 12:54:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063085#M7181</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2020-06-30T12:54:43Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063086#M7182</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;void spi_simple_bytes_wr(uint8_t *txdata_p, uint8_t * rxdata_p, uint8_t size)&lt;BR /&gt;{&lt;BR /&gt; uint32_t lpspi_tmp;&lt;BR /&gt; uint32_t lpspi_tmp2;&lt;BR /&gt; uint8_t i;&lt;BR /&gt; uint8_t remain_size = size;&lt;BR /&gt; if (size == 1) {&lt;BR /&gt; /* 2020/07/01 SPI FLASH Sequence for 1 bytes is OK */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_BYSW_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;FCR = 0x00000003; /* RXWATER=0 TXWATER=3 */&lt;BR /&gt; lpspi_tmp = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp | (7U &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;/P&gt;&lt;P&gt;PINS_DRV_ClearPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 LOW */&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_TDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_TDF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;TDR = ( uint32_t ) (*txdata_p++);&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) | (LPSPI_TCR_TXMSK_MASK)); /* Start Transmit and Hardware Auto Clear */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_RXMSK_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;SR |= LPSPI_SR_TDF_MASK; /* Clear TDF flag */&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_RDF_SHIFT) == 0);&lt;BR /&gt; lpspi_tmp = LPSPI1-&amp;gt;RDR;&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) (lpspi_tmp &amp;gt;&amp;gt; 24);&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_FCF_MASK) &amp;gt;&amp;gt; LPSPI_SR_FCF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;SR |= LPSPI_SR_RDF_MASK | LPSPI_SR_FCF_MASK;&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_CONTC_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;CR = 0x00000000; /* Module Disable、Debug Disable */&lt;BR /&gt; PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 High */&lt;BR /&gt; } else if (size == 2) {&lt;BR /&gt; /* 2020/07/01 SPI FLASH Sequence for 2 bytes */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_BYSW_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;FCR = 0x00000003; /* RXWATER=0 TXWATER=3 */&lt;BR /&gt; lpspi_tmp = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp | (15U &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; lpspi_tmp = (*txdata_p++);&lt;BR /&gt; lpspi_tmp = lpspi_tmp &amp;lt;&amp;lt; 8;&lt;BR /&gt; lpspi_tmp |= (*txdata_p++);&lt;/P&gt;&lt;P&gt;PINS_DRV_ClearPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 LOW */&lt;/P&gt;&lt;P&gt;while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_TDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_TDF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;TDR = lpspi_tmp;&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) | (LPSPI_TCR_TXMSK_MASK)); /* Start Transmit and Hardware Auto Clear */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_RXMSK_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;SR |= LPSPI_SR_TDF_MASK; /* Clear TDF flag */&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_RDF_SHIFT) == 0);&lt;BR /&gt; lpspi_tmp = LPSPI1-&amp;gt;RDR;&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_FCF_MASK) &amp;gt;&amp;gt; LPSPI_SR_FCF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;SR |= LPSPI_SR_RDF_MASK | LPSPI_SR_FCF_MASK;&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_CONTC_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;CR = 0x00000000; /* Module Disable、Debug Disable */&lt;BR /&gt; PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 High */&lt;/P&gt;&lt;P&gt;*rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 16) &amp;amp; 0x000000FF);&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 24) &amp;amp; 0x000000FF);&lt;BR /&gt; } else if (size == 3) {&lt;BR /&gt; /* 2020/07/01 SPI FLASH Sequence for 3 bytes is OK */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_BYSW_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;FCR = 0x00000003; /* RXWATER=0 TXWATER=3 */&lt;BR /&gt; lpspi_tmp = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp | (23U &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;/P&gt;&lt;P&gt;lpspi_tmp = (*txdata_p++);&lt;BR /&gt; lpspi_tmp = lpspi_tmp &amp;lt;&amp;lt; 8;&lt;BR /&gt; lpspi_tmp |= (*txdata_p++);&lt;BR /&gt; lpspi_tmp = lpspi_tmp &amp;lt;&amp;lt; 8;&lt;BR /&gt; lpspi_tmp |= (*txdata_p++);&lt;/P&gt;&lt;P&gt;PINS_DRV_ClearPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 LOW */&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_TDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_TDF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;TDR = lpspi_tmp;&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) | (LPSPI_TCR_TXMSK_MASK)); /* Start Transmit and Hardware Auto Clear */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_RXMSK_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;SR |= LPSPI_SR_TDF_MASK; /* Clear TDF flag */&lt;/P&gt;&lt;P&gt;while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_RDF_SHIFT) == 0);&lt;BR /&gt; lpspi_tmp = LPSPI1-&amp;gt;RDR;&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_FCF_MASK) &amp;gt;&amp;gt; LPSPI_SR_FCF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;SR |= LPSPI_SR_RDF_MASK | LPSPI_SR_FCF_MASK;&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_CONTC_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;CR = 0x00000000; /* Module Disable、Debug Disable */&lt;BR /&gt; PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 High */&lt;/P&gt;&lt;P&gt;*rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 8) &amp;amp; 0x000000FF);&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 16) &amp;amp; 0x000000FF);&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 24) &amp;amp; 0x000000FF);&lt;/P&gt;&lt;P&gt;} else if (size == 4) {&lt;BR /&gt; /* 4 bytes Transmit and Receive */&lt;BR /&gt; /* 2020/07/01 SPI FLASH Read_Identification_Sequence for 4 bytes is OK */&lt;BR /&gt;// LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_BYSW_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) | (LPSPI_TCR_BYSW_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;FCR = 0x00000002; /* RXWATER=0 TXWATER=2 */&lt;BR /&gt; lpspi_tmp = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp | (31 &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;/P&gt;&lt;P&gt;lpspi_tmp = ( uint32_t ) (*( const uint32_t * ) (txdata_p));&lt;/P&gt;&lt;P&gt;PINS_DRV_ClearPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 LOW */&lt;/P&gt;&lt;P&gt;while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_TDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_TDF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;TDR = lpspi_tmp;&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) | (LPSPI_TCR_TXMSK_MASK)); /* Start Transmit and Hardware Auto Clear */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_RXMSK_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;SR |= LPSPI_SR_TDF_MASK; /* Clear TDF flag */&lt;/P&gt;&lt;P&gt;while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_RDF_SHIFT) == 0);&lt;BR /&gt; lpspi_tmp = LPSPI1-&amp;gt;RDR;&lt;BR /&gt; LPSPI1-&amp;gt;CR = 0x00000000; /* Module Disable、Debug Disable */&lt;BR /&gt; PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 High */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_CONTC_MASK));&lt;/P&gt;&lt;P&gt;/* Big end Receive, store is Little end */&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 0) &amp;amp; 0x000000FF);&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 8) &amp;amp; 0x000000FF);&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 16) &amp;amp; 0x000000FF);&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 24) &amp;amp; 0x000000FF);&lt;BR /&gt; } else {&lt;BR /&gt; if ((size &amp;gt; 5) &amp;amp;&amp;amp; (size &amp;lt;= 8)) {&lt;BR /&gt; /* Clean RX and TX buffers */&lt;BR /&gt; lpspi_tmp = (0x01 &amp;lt;&amp;lt; LPSPI_CR_RRF_SHIFT) | (0x01 &amp;lt;&amp;lt; LPSPI_CR_RTF_SHIFT);&lt;BR /&gt; LPSPI1-&amp;gt;CR |= lpspi_tmp;&lt;/P&gt;&lt;P&gt;/* The second flush command is used to avoid the case when one word is still in shifter. */&lt;BR /&gt; lpspi_tmp = (0x01 &amp;lt;&amp;lt; LPSPI_CR_RRF_SHIFT) | (0x01 &amp;lt;&amp;lt; LPSPI_CR_RTF_SHIFT);&lt;BR /&gt; LPSPI1-&amp;gt;CR |= lpspi_tmp;&lt;/P&gt;&lt;P&gt;/* 5 bytes to 8 bytes Transmit and Receive (Frame_Size 40bit、 48bit、 56bit、64bit) */&lt;BR /&gt; lpspi_tmp = size * 8 - 1;&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) | (LPSPI_TCR_BYSW_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_TXMSK_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_RXMSK_MASK));&lt;BR /&gt; lpspi_tmp2 = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp2 | ((lpspi_tmp) &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;SR |= 0x00003F00U;&lt;/P&gt;&lt;P&gt;lpspi_tmp = (*( const uint32_t * ) (txdata_p));&lt;BR /&gt; txdata_p = txdata_p + 4;&lt;BR /&gt; lpspi_tmp2 = (*( const uint32_t * ) (txdata_p));&lt;BR /&gt; txdata_p = txdata_p + 4;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_TDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_TDF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;TDR = lpspi_tmp;&lt;BR /&gt; LPSPI1-&amp;gt;TDR = lpspi_tmp2;&lt;BR /&gt; LPSPI1-&amp;gt;SR = LPSPI_SR_TDF_MASK; /* Clear TDF flag */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) | (LPSPI_TCR_TXMSK_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_RXMSK_MASK));&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_RDF_SHIFT) == 0);&lt;BR /&gt; lpspi_tmp = LPSPI1-&amp;gt;RDR;&lt;BR /&gt; LPSPI1-&amp;gt;SR = LPSPI_SR_RDF_MASK; /* Clear RDF flag */&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_RDF_SHIFT) == 0);&lt;BR /&gt; lpspi_tmp2 = LPSPI1-&amp;gt;RDR;&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_FCF_MASK) &amp;gt;&amp;gt; LPSPI_SR_FCF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;SR |= LPSPI_SR_RDF_MASK; /* Clear RDF flag */&lt;BR /&gt; PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 High */&lt;BR /&gt; LPSPI1-&amp;gt;CR = 0x00000000; /* Module Disable、Debug Disable */&lt;/P&gt;&lt;P&gt;/* Big end Receive, store is Little end */&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 0) &amp;amp; 0x000000FF);&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 8) &amp;amp; 0x000000FF);&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 16) &amp;amp; 0x000000FF);&lt;BR /&gt; *rxdata_p++ = ( uint8_t ) ((lpspi_tmp &amp;gt;&amp;gt; 24) &amp;amp; 0x000000FF);&lt;BR /&gt; remain_size = size - 4;&lt;BR /&gt; for (i = 0; i &amp;lt; remain_size; ++i) {&lt;BR /&gt; *(rxdata_p + remain_size - 1 - i) = ( uint8_t ) (lpspi_tmp2 &amp;gt;&amp;gt; (24 - i * 8));&lt;BR /&gt; }&lt;BR /&gt; } else if ((size &amp;gt; 8) &amp;amp;&amp;amp; (size &amp;lt;= 16)) {&lt;BR /&gt; // test is OK&lt;/P&gt;&lt;P&gt;} else if ((size &amp;gt; 16)) {&lt;BR /&gt; // is OK ?&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NXP&amp;nbsp; have a&amp;nbsp; SPI&amp;nbsp; Write and Read&amp;nbsp; example&amp;nbsp; for&amp;nbsp; SPI&amp;nbsp; FLASH ?&amp;nbsp; &amp;nbsp;the SPI1&amp;nbsp; interrupt&amp;nbsp; SDK&amp;nbsp; is&amp;nbsp; up&amp;nbsp; 40Mbps ？&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 05 Jul 2020 16:13:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063086#M7182</guid>
      <dc:creator>wjandsq</dc:creator>
      <dc:date>2020-07-05T16:13:58Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063087#M7183</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/wjandsq"&gt;wjandsq&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;I have just gone through the code briefly and I see one possible issue.&lt;/P&gt;&lt;P&gt;The Transmit Command Register (TCR) is not an ordinary register but a FIFO.&lt;/P&gt;&lt;P&gt;Please don't mask the register but prepare your transmit commands in variables (or use constants) and write the whole register at once whenever you need to change&amp;nbsp;it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are these LPSPI SDK examples:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;lpspi_dma_s32k144&lt;/LI&gt;&lt;LI&gt;lpspi_transfer_s32k144&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The LPSPI max baud rate (Frequency&amp;nbsp;of&amp;nbsp;operation) is specified in the S32K1xx datasheet.&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/data-sheet/S32K-DS.pdf" title="https://www.nxp.com/docs/en/data-sheet/S32K-DS.pdf"&gt;https://www.nxp.com/docs/en/data-sheet/S32K-DS.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table 46. LPSPI electrical specifications&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jul 2020 08:14:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063087#M7183</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2020-07-07T08:14:48Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063088#M7184</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't need an interrupt example or DMA example,&amp;nbsp; they can work, but they always make mistakes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Now ,&amp;nbsp; Either &lt;SPAN&gt;&amp;nbsp;TDF&lt;/SPAN&gt;or TDF , it is impossible to judge when the data has been sent&amp;nbsp;finished.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1 to&amp;nbsp; 16 byte ,&amp;nbsp; &amp;nbsp;the pcs3 is ok,&amp;nbsp; &amp;nbsp;but&amp;nbsp; &amp;nbsp;&amp;gt; 16 bytes,&amp;nbsp; &amp;nbsp;the pcs3 always&amp;nbsp; error，before&amp;nbsp; data&amp;nbsp; finishe,&amp;nbsp; the pcs&amp;nbsp; trun&amp;nbsp; high。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;A href="https://community.nxp.com/thread/534414"&gt;S32K144:SPI Transfer&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jul 2020 11:43:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063088#M7184</guid>
      <dc:creator>wjandsq</dc:creator>
      <dc:date>2020-07-07T11:43:16Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063089#M7185</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Could you please describe what exactly you want to achieve?&amp;nbsp;&lt;/P&gt;&lt;P&gt;And why do you need to control CS by GPIO?&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/534505"&gt;S32K144:SPI Transfer with GPIO as CS&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;BR, Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Jul 2020 13:54:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063089#M7185</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2020-07-08T13:54:57Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063090#M7186</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;/*&lt;BR /&gt; * SPI_FLASH_WRITE_READ&lt;BR /&gt; * SPI FLASH : MX25L16xx&lt;BR /&gt; * Author : wjandsq@163.com&lt;BR /&gt; * Date : 2020/06/28&lt;BR /&gt; * Historys : 2020/07/21 fixed some bugs &lt;BR /&gt; * 2020/07/22 SPI FLASH Page Pragram 256 bytes is OK (Wrirt and Read 260 bytes)&lt;BR /&gt; */&lt;BR /&gt;void SPI_FLASH_WRITE_READ(uint8_t *txdata_p, uint8_t * rxdata_p, uint16_t size)&lt;BR /&gt;{&lt;BR /&gt; uint32_t words;&lt;BR /&gt; uint32_t remain_words;&lt;BR /&gt; uint32_t remain_bytes;&lt;/P&gt;&lt;P&gt;uint32_t lpspi_tmp;&lt;BR /&gt; uint32_t lpspi_tmp2;&lt;/P&gt;&lt;P&gt;LPSPI1-&amp;gt;CFGR1 = 0x00000003; /* MASTER、SAMPLE Set */&lt;BR /&gt; LPSPI1-&amp;gt;FCR = 0x00000003; /* RXWATER=0 TXWATER=3 */&lt;BR /&gt; LPSPI1-&amp;gt;CR = 0x00000009; /* Module Enable、Debug Enable */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; ~(LPSPI_TCR_CONTC_MASK | LPSPI_TCR_TXMSK_MASK | LPSPI_TCR_RXMSK_MASK));&lt;/P&gt;&lt;P&gt;if (size % 4) {&lt;BR /&gt; remain_bytes = size - (size / 4) * 4;&lt;BR /&gt; words = (size / 4) + 1;&lt;BR /&gt; } else {&lt;BR /&gt; remain_bytes = 0;&lt;BR /&gt; words = size / 4;&lt;BR /&gt; }&lt;BR /&gt; remain_words = words;&lt;/P&gt;&lt;P&gt;/* When SPI FLASH Page Program Write, n = 1, 2, 3.... 64, 65&lt;BR /&gt; * size = 256 + 4&lt;BR /&gt; * word = 260 / 4 = 65&lt;BR /&gt; */&lt;/P&gt;&lt;P&gt;if (size % 4 == 0) {&lt;BR /&gt; /* size is 4 bytes * n (n = 1 2 3 ... n) */&lt;BR /&gt; lpspi_tmp = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp | (31U &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; PINS_DRV_ClearPins(PTB, 1 &amp;lt;&amp;lt; 17); /*&amp;lt;! Software Control PCS3 : SET PCS3 LOW */&lt;BR /&gt; for (i = 0; i &amp;lt; words; ++i) {&lt;BR /&gt; /* between word delay 3.8 us, between 4 words delay is 5us */&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_TDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_TDF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;TDR = (*( const uint32_t * ) (txdata_p));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) | (LPSPI_TCR_TXMSK_MASK)); /*&amp;lt;! Start Transmit and Hardware Auto Clear */&lt;BR /&gt; LPSPI1-&amp;gt;TCR = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_RXMSK_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;SR = LPSPI_SR_TDF_MASK; /*&amp;lt;! Clear TDF flag */&lt;BR /&gt; txdata_p = txdata_p + 4;&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK) &amp;gt;&amp;gt; LPSPI_SR_RDF_SHIFT) == 0);&lt;BR /&gt; (*( uint32_t * ) (rxdata_p)) = LPSPI1-&amp;gt;RDR;&lt;BR /&gt; LPSPI1-&amp;gt;SR = LPSPI_SR_RDF_MASK; /*&amp;lt;! Clear RDF flag */&lt;BR /&gt; rxdata_p = rxdata_p + 4;&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt; while (((LPSPI1-&amp;gt;SR &amp;amp; LPSPI_SR_FCF_MASK) &amp;gt;&amp;gt; LPSPI_SR_FCF_SHIFT) == 0);&lt;BR /&gt; LPSPI1-&amp;gt;SR |= LPSPI_SR_FCF_MASK; /*&amp;lt;! Clear FCF flag */&lt;BR /&gt; PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /*&amp;lt;! Software Control PCS3 : SET PCS3 High */&lt;BR /&gt; LPSPI1-&amp;gt;CR = 0x00000000; /*&amp;lt;! Module Disable、Debug Disable */&lt;BR /&gt; return;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;if (size == 1) {&lt;BR /&gt; /* send data size is 1 byte */&lt;BR /&gt; lpspi_tmp = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp | (7U &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; PINS_DRV_ClearPins(PTB, 1 &amp;lt;&amp;lt; 17); /*&amp;lt;! Software Control PCS3 : SET PCS3 LOW */&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /*&amp;lt;! Software Control PCS3 : SET PCS3 High */&lt;/P&gt;&lt;P&gt;} else if (size == 2) {&lt;BR /&gt; /* send data size is 2 bytes */&lt;BR /&gt; lpspi_tmp = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp | (15U &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; PINS_DRV_ClearPins(PTB, 1 &amp;lt;&amp;lt; 17); /*&amp;lt;! Software Control PCS3 : SET PCS3 LOW */&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /*&amp;lt;! Software Control PCS3 : SET PCS3 High */&lt;BR /&gt; } else if (size == 3) {&lt;BR /&gt; /* send data size is 3 bytes */&lt;BR /&gt; lpspi_tmp = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp | (23U &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; PINS_DRV_ClearPins(PTB, 1 &amp;lt;&amp;lt; 17); /*&amp;lt;! Software Control PCS3 : SET PCS3 LOW */&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /*&amp;lt;! Software Control PCS3 : SET PCS3 High */&lt;BR /&gt; } else {&lt;BR /&gt; /* send data size is 5、6、7 bytes or size &amp;gt; 8 bytes */&lt;BR /&gt; lpspi_tmp = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp | (31U &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; PINS_DRV_ClearPins(PTB, 1 &amp;lt;&amp;lt; 17); /* Software Control PCS3 : SET PCS3 LOW */&lt;/P&gt;&lt;P&gt;for (uint16_t i = 0; i &amp;lt; words; ) {&lt;BR /&gt; if (remain_words &amp;gt; 2) {&lt;BR /&gt; /* send data size &amp;gt; 8 bytes */&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;--remain_words;&lt;BR /&gt; ++i;&lt;BR /&gt; } else if (remain_words == 2) {&lt;BR /&gt; /* send data size is 5、6、7 bytes */&lt;BR /&gt; lpspi_tmp = remain_bytes * 8 + 31;&lt;BR /&gt; lpspi_tmp2 = ((LPSPI1-&amp;gt;TCR) &amp;amp; (~LPSPI_TCR_FRAMESZ_MASK));&lt;BR /&gt; LPSPI1-&amp;gt;TCR = (lpspi_tmp2 | (lpspi_tmp &amp;amp; LPSPI_TCR_FRAMESZ_MASK));&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;remain_words = remain_words - 2;&lt;BR /&gt; i = i + 2;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; PINS_DRV_SetPins(PTB, 1 &amp;lt;&amp;lt; 17); /*&amp;lt;! Software Control PCS3 : SET PCS3 High */&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Jul 2020 09:14:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063090#M7186</guid>
      <dc:creator>wjandsq</dc:creator>
      <dc:date>2020-07-23T09:14:27Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063091#M7187</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The SPI FLASH&amp;nbsp; PCS need&amp;nbsp; keep Low when Read or Write&amp;nbsp; 260 bytes （or&amp;nbsp; Write 1、2、3、4、5、6 bytes Command）。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Jul 2020 09:18:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063091#M7187</guid>
      <dc:creator>wjandsq</dc:creator>
      <dc:date>2020-07-23T09:18:21Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063092#M7188</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I modified the lpspi_transfer_s32k144 SDK example to send and receive 260 bytes continuously without deasserting the PCS PTB0 (active high).&amp;nbsp;&lt;/P&gt;&lt;P&gt;The LPSPI slave was removed from the project.&lt;/P&gt;&lt;P&gt;Connect PTB4 (MOSI) to PTE1 (MISO) so that the master can receive that transmitted data back.&lt;/P&gt;&lt;P&gt;We don't have any non-SDK LPSPI example that would shows continuous transfer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Daniel&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jul 2020 15:50:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063092#M7188</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2020-07-27T15:50:49Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144 LPSPI0 GD25P16 Flash slave no MISO response</title>
      <link>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063093#M7189</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks a lot!&amp;nbsp; but&amp;nbsp; my code&amp;nbsp; is&amp;nbsp; &amp;nbsp;in 10Mbps or 20Mbps without DMA and interrupt.&amp;nbsp; Write&amp;nbsp;and Read NOR FLASH 256 bytes (260 bytes）test is OK.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 31 Jul 2020 14:59:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144-LPSPI0-GD25P16-Flash-slave-no-MISO-response/m-p/1063093#M7189</guid>
      <dc:creator>wjandsq</dc:creator>
      <dc:date>2020-07-31T14:59:00Z</dc:date>
    </item>
  </channel>
</rss>

