<?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のトピックsome question about  s32k144'LPSPI</title>
    <link>https://community.nxp.com/t5/S32K/some-question-about-s32k144-LPSPI/m-p/860721#M3713</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;void LPSPIx_init_master(LPSPI_Type *LDSPIx)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;if(LDSPIx == LPSPI0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI0_INDEX] = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable clocks to modify PCS ( default) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI0_INDEX] = 0xC6000000; /* Enable PCS=SPLL_DIV2 (40 MHz func'l clock) */&lt;BR /&gt;&amp;nbsp;}else if(LDSPIx == LPSPI1)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI1_INDEX] = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable clocks to modify PCS ( default) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI1_INDEX] = 0xC6000000; /* Enable PCS=SPLL_DIV2 (40 MHz func'l clock) */&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI2_INDEX] = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable clocks to modify PCS ( default) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI2_INDEX] = 0xC6000000; /* Enable PCS=SPLL_DIV2 (40 MHz func'l clock) */&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp; LDSPIx-&amp;gt;CR&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000302;&amp;nbsp;&amp;nbsp; /* reset module for configuration */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CR&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000000;&amp;nbsp;&amp;nbsp; /* Disable module for configuration */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;IER&amp;nbsp;&amp;nbsp; = 0x00000000;&amp;nbsp;&amp;nbsp; /* Interrupts not used */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;DER&amp;nbsp;&amp;nbsp; = 0x00000000;&amp;nbsp;&amp;nbsp; /* DMA not used */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CFGR0 = 0x00000000;&amp;nbsp;&amp;nbsp; /* Defaults: */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RDM0=0: rec'd data to FIFO as normal */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CIRFIFO=0; Circular FIFO is disabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* HRSEL, HRPOL, HREN=0: Host request disabled */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CFGR1 = 0x00000001;&amp;nbsp;&amp;nbsp; /* Configurations: master mode*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PCSCFG=1: PCS[3:2] are disenabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* OUTCFG=0: Output data retains last value when CS negated */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PINCFG=0: SIN is input, SOUT is output */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MATCFG=0: Match disabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PCSPOL=0: PCS is active low */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* NOSTALL=0: Stall if Tx FIFO empty or Rx FIFO full */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* AUTOPCS=0: does not apply for master mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SAMPLE=0: input data sampled on SCK edge */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MASTER=1: Master mode */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;TCR&amp;nbsp;&amp;nbsp; = 0x10000007;&amp;nbsp;&amp;nbsp; /* Transmit cmd: PCS3, 16 bits, prescale func'l clk by 4, etc*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CPOL=0: SCK inactive state is low */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CPHA=0: Change data on SCK lead'g, capture on trail'g edge*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PRESCALE=2: Functional clock divided by 2**2 = 4 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PCS=0: Transfer using PCS0&amp;nbsp;&amp;nbsp; !!!!!!!!!!!!!*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* LSBF=0: Data is transfered MSB first */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* BYSW=0: Byte swap disabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CONT, CONTC=0: Continuous transfer disabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RXMSK=0: Normal transfer: rx data stored in rx FIFO */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* TXMSK=0: Normal transfer: data loaded from tx FIFO */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* WIDTH=0: Single bit transfer */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FRAMESZ=7: # bits in frame = 7+1=8 */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CCR&amp;nbsp;&amp;nbsp; = 0x04090812;&amp;nbsp;&amp;nbsp; /* Clock dividers based on prescaled func'l clk of 100 nsec */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SCKPCS=4: SCK to PCS delay = 4+1 = 5 (500 nsec) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PCSSCK=4: PCS to SCK delay = 9+1 = 10 (1 usec) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DBT=8: Delay between Transfers = 8+2 = 10 (1 usec) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SCKDIV=18: SCK divider =18+2 = 20 (1 usec: 0.5 MHz baud rate) *///spi_clk=500khz&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;FCR&amp;nbsp;&amp;nbsp; = 0x00000002;&amp;nbsp;&amp;nbsp; /* RXWATER=0: Rx flags set when Rx FIFO &amp;gt;0 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* TXWATER=2: Tx flags set when Tx FIFO &amp;lt;= 3 */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CR&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000009;&amp;nbsp;&amp;nbsp; /* Enable module for operation */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DBGEN=1: module enabled in debug mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DOZEN=0: module enabled in Doze mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RST=0: Master logic not reset */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MEN=1: Module is enabled */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void SPI_init (void) {&lt;/P&gt;&lt;P&gt;//SPI flash&lt;BR /&gt;#if SPI0&lt;BR /&gt;&amp;nbsp;PORTD-&amp;gt;PCR[15] |=PORT_PCR_MUX(4);//LPSPI0_SCK&amp;nbsp; CLK&lt;BR /&gt;&amp;nbsp;PORTD-&amp;gt;PCR[16] |=PORT_PCR_MUX(4);//LPSPI0_SIN&amp;nbsp; MISO&lt;BR /&gt;&amp;nbsp;PORTB-&amp;gt;PCR[1] |=PORT_PCR_MUX(3);//LPSPI0_SOUT MOSI&lt;BR /&gt;&amp;nbsp;PORTB-&amp;gt;PCR[0] |=PORT_PCR_MUX(3);//LPSPI0_PCS0 CS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //OTHER GPIO SETING&lt;BR /&gt;&amp;nbsp; Gpio_Set_Do_TE(PORT_GPIOD, 13, DO_MODE_PP);//RST LOW RESET&lt;/P&gt;&lt;P&gt;&amp;nbsp; Gpio_Set_Do_TE(PORT_GPIOD, 14, DO_MODE_PP);//SOF NOT USE&lt;/P&gt;&lt;P&gt;&amp;nbsp; Gpio_Set_Di_TE(PORT_GPIOD, 12, DI_MODE_NUPULL);//INT&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;uint8_t SPI_TX[20], SPI_RX[20];&lt;BR /&gt;void SPI_WR(uint8_t len)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;uint8_t i = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0; i&amp;lt;len; i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((LPSPI0-&amp;gt;SR &amp;amp; LPSPI_SR_TDF_MASK)&amp;gt;&amp;gt;LPSPI_SR_TDF_SHIFT==0);//sr=0x01&lt;BR /&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for Tx FIFO available */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPSPI0-&amp;gt;TDR = SPI_TX[i];//sr=0x703&amp;nbsp; fsr=0x10000&lt;BR /&gt;&amp;nbsp; // while((LPSPI0-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK)&amp;gt;&amp;gt;LPSPI_SR_RDF_SHIFT==0);&lt;BR /&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; /* Wait at least one RxFIFO entry */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SPI_RX[i]= LPSPI0-&amp;gt;RDR;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Read received data */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; LPSPI0-&amp;gt;SR |= LPSPI_SR_RDF_MASK; /* Clear RDF flag */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; LPSPI0-&amp;gt;SR |= LPSPI_SR_TDF_MASK; /* Clear TDF flag */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;use LPSPI0 , SPI_WR ()funciton&amp;nbsp; read and write many byte one time.but SPI_RX[] is always 0xFF. pin of CLK,CS and SOUT&lt;/P&gt;&lt;P&gt;has a sigal. SIN always high.&lt;/P&gt;&lt;P&gt;&amp;nbsp;while((LPSPI0-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK)&amp;gt;&amp;gt;LPSPI_SR_RDF_SHIFT==0);&amp;nbsp; cannot pass even as SR.RDF ==1.&lt;/P&gt;&lt;P&gt;can you help me?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 28 Mar 2019 00:37:09 GMT</pubDate>
    <dc:creator>annqian</dc:creator>
    <dc:date>2019-03-28T00:37:09Z</dc:date>
    <item>
      <title>some question about  s32k144'LPSPI</title>
      <link>https://community.nxp.com/t5/S32K/some-question-about-s32k144-LPSPI/m-p/860721#M3713</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;void LPSPIx_init_master(LPSPI_Type *LDSPIx)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;if(LDSPIx == LPSPI0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI0_INDEX] = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable clocks to modify PCS ( default) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI0_INDEX] = 0xC6000000; /* Enable PCS=SPLL_DIV2 (40 MHz func'l clock) */&lt;BR /&gt;&amp;nbsp;}else if(LDSPIx == LPSPI1)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI1_INDEX] = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable clocks to modify PCS ( default) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI1_INDEX] = 0xC6000000; /* Enable PCS=SPLL_DIV2 (40 MHz func'l clock) */&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI2_INDEX] = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable clocks to modify PCS ( default) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; PCC-&amp;gt;PCCn[PCC_LPSPI2_INDEX] = 0xC6000000; /* Enable PCS=SPLL_DIV2 (40 MHz func'l clock) */&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp; LDSPIx-&amp;gt;CR&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000302;&amp;nbsp;&amp;nbsp; /* reset module for configuration */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CR&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000000;&amp;nbsp;&amp;nbsp; /* Disable module for configuration */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;IER&amp;nbsp;&amp;nbsp; = 0x00000000;&amp;nbsp;&amp;nbsp; /* Interrupts not used */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;DER&amp;nbsp;&amp;nbsp; = 0x00000000;&amp;nbsp;&amp;nbsp; /* DMA not used */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CFGR0 = 0x00000000;&amp;nbsp;&amp;nbsp; /* Defaults: */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RDM0=0: rec'd data to FIFO as normal */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CIRFIFO=0; Circular FIFO is disabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* HRSEL, HRPOL, HREN=0: Host request disabled */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CFGR1 = 0x00000001;&amp;nbsp;&amp;nbsp; /* Configurations: master mode*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PCSCFG=1: PCS[3:2] are disenabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* OUTCFG=0: Output data retains last value when CS negated */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PINCFG=0: SIN is input, SOUT is output */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MATCFG=0: Match disabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PCSPOL=0: PCS is active low */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* NOSTALL=0: Stall if Tx FIFO empty or Rx FIFO full */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* AUTOPCS=0: does not apply for master mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SAMPLE=0: input data sampled on SCK edge */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MASTER=1: Master mode */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;TCR&amp;nbsp;&amp;nbsp; = 0x10000007;&amp;nbsp;&amp;nbsp; /* Transmit cmd: PCS3, 16 bits, prescale func'l clk by 4, etc*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CPOL=0: SCK inactive state is low */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CPHA=0: Change data on SCK lead'g, capture on trail'g edge*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PRESCALE=2: Functional clock divided by 2**2 = 4 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PCS=0: Transfer using PCS0&amp;nbsp;&amp;nbsp; !!!!!!!!!!!!!*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* LSBF=0: Data is transfered MSB first */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* BYSW=0: Byte swap disabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CONT, CONTC=0: Continuous transfer disabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RXMSK=0: Normal transfer: rx data stored in rx FIFO */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* TXMSK=0: Normal transfer: data loaded from tx FIFO */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* WIDTH=0: Single bit transfer */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FRAMESZ=7: # bits in frame = 7+1=8 */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CCR&amp;nbsp;&amp;nbsp; = 0x04090812;&amp;nbsp;&amp;nbsp; /* Clock dividers based on prescaled func'l clk of 100 nsec */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SCKPCS=4: SCK to PCS delay = 4+1 = 5 (500 nsec) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PCSSCK=4: PCS to SCK delay = 9+1 = 10 (1 usec) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DBT=8: Delay between Transfers = 8+2 = 10 (1 usec) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SCKDIV=18: SCK divider =18+2 = 20 (1 usec: 0.5 MHz baud rate) *///spi_clk=500khz&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;FCR&amp;nbsp;&amp;nbsp; = 0x00000002;&amp;nbsp;&amp;nbsp; /* RXWATER=0: Rx flags set when Rx FIFO &amp;gt;0 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* TXWATER=2: Tx flags set when Tx FIFO &amp;lt;= 3 */&lt;BR /&gt;&amp;nbsp; LDSPIx-&amp;gt;CR&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000009;&amp;nbsp;&amp;nbsp; /* Enable module for operation */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DBGEN=1: module enabled in debug mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DOZEN=0: module enabled in Doze mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RST=0: Master logic not reset */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MEN=1: Module is enabled */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void SPI_init (void) {&lt;/P&gt;&lt;P&gt;//SPI flash&lt;BR /&gt;#if SPI0&lt;BR /&gt;&amp;nbsp;PORTD-&amp;gt;PCR[15] |=PORT_PCR_MUX(4);//LPSPI0_SCK&amp;nbsp; CLK&lt;BR /&gt;&amp;nbsp;PORTD-&amp;gt;PCR[16] |=PORT_PCR_MUX(4);//LPSPI0_SIN&amp;nbsp; MISO&lt;BR /&gt;&amp;nbsp;PORTB-&amp;gt;PCR[1] |=PORT_PCR_MUX(3);//LPSPI0_SOUT MOSI&lt;BR /&gt;&amp;nbsp;PORTB-&amp;gt;PCR[0] |=PORT_PCR_MUX(3);//LPSPI0_PCS0 CS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //OTHER GPIO SETING&lt;BR /&gt;&amp;nbsp; Gpio_Set_Do_TE(PORT_GPIOD, 13, DO_MODE_PP);//RST LOW RESET&lt;/P&gt;&lt;P&gt;&amp;nbsp; Gpio_Set_Do_TE(PORT_GPIOD, 14, DO_MODE_PP);//SOF NOT USE&lt;/P&gt;&lt;P&gt;&amp;nbsp; Gpio_Set_Di_TE(PORT_GPIOD, 12, DI_MODE_NUPULL);//INT&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;uint8_t SPI_TX[20], SPI_RX[20];&lt;BR /&gt;void SPI_WR(uint8_t len)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;uint8_t i = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0; i&amp;lt;len; i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((LPSPI0-&amp;gt;SR &amp;amp; LPSPI_SR_TDF_MASK)&amp;gt;&amp;gt;LPSPI_SR_TDF_SHIFT==0);//sr=0x01&lt;BR /&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for Tx FIFO available */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPSPI0-&amp;gt;TDR = SPI_TX[i];//sr=0x703&amp;nbsp; fsr=0x10000&lt;BR /&gt;&amp;nbsp; // while((LPSPI0-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK)&amp;gt;&amp;gt;LPSPI_SR_RDF_SHIFT==0);&lt;BR /&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; /* Wait at least one RxFIFO entry */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SPI_RX[i]= LPSPI0-&amp;gt;RDR;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Read received data */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; LPSPI0-&amp;gt;SR |= LPSPI_SR_RDF_MASK; /* Clear RDF flag */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; LPSPI0-&amp;gt;SR |= LPSPI_SR_TDF_MASK; /* Clear TDF flag */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;use LPSPI0 , SPI_WR ()funciton&amp;nbsp; read and write many byte one time.but SPI_RX[] is always 0xFF. pin of CLK,CS and SOUT&lt;/P&gt;&lt;P&gt;has a sigal. SIN always high.&lt;/P&gt;&lt;P&gt;&amp;nbsp;while((LPSPI0-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK)&amp;gt;&amp;gt;LPSPI_SR_RDF_SHIFT==0);&amp;nbsp; cannot pass even as SR.RDF ==1.&lt;/P&gt;&lt;P&gt;can you help me?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Mar 2019 00:37:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/some-question-about-s32k144-LPSPI/m-p/860721#M3713</guid>
      <dc:creator>annqian</dc:creator>
      <dc:date>2019-03-28T00:37:09Z</dc:date>
    </item>
    <item>
      <title>Re: some question about  s32k144'LPSPI</title>
      <link>https://community.nxp.com/t5/S32K/some-question-about-s32k144-LPSPI/m-p/860722#M3714</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;I have tested your code on the EVB and it works fine, I think. I see 20 8-bit frames on SPI0. If the SIN pin is not connected 0xFF is received for each frame.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code passed&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;while((LPSPI0-&amp;gt;SR &amp;amp; LPSPI_SR_RDF_MASK)&amp;gt;&amp;gt;LPSPI_SR_RDF_SHIFT==0); statement normally.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Only I see in your code you did not enable clock for PORTD, but maybe you did it somewhere else.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;PCC-&amp;gt;PCCn[PCC_PORTD_INDEX ]|=PCC_PCCn_CGC_MASK; /* Enable clock for PORTD */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;BR, Petr&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Mar 2019 06:00:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/some-question-about-s32k144-LPSPI/m-p/860722#M3714</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2019-03-28T06:00:44Z</dc:date>
    </item>
    <item>
      <title>Re: some question about  s32k144'LPSPI</title>
      <link>https://community.nxp.com/t5/S32K/some-question-about-s32k144-LPSPI/m-p/860723#M3715</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; the clock of PORTD is enable in other function ,and I have figure out the problem.but&amp;nbsp; thank you anyway.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Apr 2019 08:42:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/some-question-about-s32k144-LPSPI/m-p/860723#M3715</guid>
      <dc:creator>annqian</dc:creator>
      <dc:date>2019-04-02T08:42:01Z</dc:date>
    </item>
  </channel>
</rss>

