<?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: LPC54102 and SPI SSEL in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868081#M56081</link>
    <description>&lt;P&gt;I already have that set. &amp;nbsp;The way I read the documentation that causes the chip select to be deasserted at the end of the transfer and that is what it appears to do.&lt;BR /&gt;&lt;BR /&gt;I need the chip select deasserted for each frame (16 bits) as shown in the figure I quoted.&lt;BR /&gt;&lt;BR /&gt;I have the SPI working by doing a transfer for each frame but that takes about 5ms to read the data from the sensors. That's about a 1000 times longer than doing it in a single transfer which is what I need to do.&lt;/P&gt;&lt;P&gt;See my added post with pictures.&lt;/P&gt;</description>
    <pubDate>Fri, 17 May 2024 17:54:00 GMT</pubDate>
    <dc:creator>JBM</dc:creator>
    <dc:date>2024-05-17T17:54:00Z</dc:date>
    <item>
      <title>LPC54102 and SPI SSEL</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1867336#M56070</link>
      <description>&lt;P&gt;I am working on custom hardware with an LPC54102 using MCUXpresso version 11.9.1. &amp;nbsp;I am using FreeRTOS and doing the transfers with the&amp;nbsp;SPI_RTOS_Transfer function.&lt;/P&gt;&lt;P&gt;I am interfacing to a sensor that uses SPI with 16 bit frames and it requires CPOL=0, CPHA=1 and SSEL deassertion between frames. &amp;nbsp;The issue I'm having with the LPC chip is trying to get the SSEL to deassert between frames.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've interfaced with this chip before using a Kinetis chip and didn't have any problems but that chip has (in my opinion) easier control of the chip select pin.&lt;/P&gt;&lt;P&gt;For reference, there is a drawing in the User Manual (UM10850, Rev 2.6, August 2019), Section 24.7.2.3, Figure 52. &amp;nbsp;The lower drawing (CPHA=1) shows what I'm trying to do.&lt;/P&gt;&lt;P&gt;I just don't see anyway with the peripherals tool to configure the SSEL to deassert after every frame. &amp;nbsp;Even reading through the reference manual, I don't see any way to do meet this configuration.&lt;/P&gt;&lt;P&gt;This configuration from the peripherals tool looks like this:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;spi_rtos_handle_t SPI0_rtosHandle;
const spi_master_config_t SPI0_config = {
  .polarity = kSPI_ClockPolarityActiveHigh,
  .phase = kSPI_ClockPhaseSecondEdge,
  .direction = kSPI_MsbFirst,
  .baudRate_Bps = 2000000UL,
  .dataWidth = kSPI_Data16Bits,
  .sselNum = kSPI_Ssel0,
  .sselPol = kSPI_SpolActiveAllLow,
  .enableLoopback = false,
  .enableMaster = true,
  .fifoConfig = {
    .enableTxFifo = true,
    .txFifoSize = 8U,
    .txFifoThreshold = 1U,
    .enableRxFifo = true,
    .rxFifoSize = 8U,
    .rxFifoThreshold = 1U
  },
  .delayConfig = {
    .preDelay = 0U,
    .postDelay = 0U,
    .frameDelay = 0U,
    .transferDelay = 0U
  }
};
uint8_t SPI0_txBuffer[SPI0_BUFFER_SIZE];
uint8_t SPI0_rxBuffer[SPI0_BUFFER_SIZE];
spi_transfer_t SPI0_transfer = {
  .txData = SPI0_txBuffer,
  .rxData = SPI0_rxBuffer,
  .dataSize = 10U,
  .configFlags = kSPI_FrameAssert
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there anyway to do this?&lt;/P&gt;</description>
      <pubDate>Thu, 16 May 2024 16:56:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1867336#M56070</guid>
      <dc:creator>JBM</dc:creator>
      <dc:date>2024-05-16T16:56:57Z</dc:date>
    </item>
    <item>
      <title>Re: LPC54102 and SPI SSEL</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1867743#M56077</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;From hardware perspective, if you set the EOT bit in the spi TXCTL or TXDATCTL register, the TX_sselx pin will be asserted for each transfer.&lt;/P&gt;
&lt;P&gt;in the driver, I suppose it is okay:&lt;/P&gt;
&lt;PRE class="lia-code-sample  language-markup"&gt;&lt;CODE&gt;spi_transfer_t SPI0_transfer = {
  .txData = SPI0_txBuffer,
  .rxData = SPI0_rxBuffer,
  .dataSize = 10U,
  .configFlags = kSPI_FrameAssert
};&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV style="background-color: #ffffff; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #ffffff; font-family: 'Consolas'; font-size: 10pt; white-space: pre;"&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt; SPI_MASTER_IRQHandler(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* read data to avoid rxOverflow */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;while&lt;/SPAN&gt;&lt;SPAN&gt; (SPI_GetStatusFlags(EXAMPLE_SPI_MASTER) &amp;amp; &lt;/SPAN&gt;&lt;SPAN&gt;kSPI_RxNotEmptyFlag&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; SPI_ReadData(EXAMPLE_SPI_MASTER);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* send data if buffer is not full */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (SPI_GetStatusFlags(EXAMPLE_SPI_MASTER) &amp;amp; &lt;/SPAN&gt;&lt;SPAN&gt;kSPI_TxNotFullFlag&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;masterIndex&lt;/SPAN&gt;&lt;SPAN&gt; == 1)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* need to disable interrupts before write last data */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; SPI_DisableInterrupts(EXAMPLE_SPI_MASTER, &lt;/SPAN&gt;&lt;SPAN&gt;kSPI_TxLvlIrq&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; SPI_WriteData(EXAMPLE_SPI_MASTER, (&lt;/SPAN&gt;&lt;SPAN&gt;uint16_t&lt;/SPAN&gt;&lt;SPAN&gt;)(srcBuff[BUFFER_SIZE - &lt;/SPAN&gt;&lt;SPAN&gt;masterIndex&lt;/SPAN&gt;&lt;SPAN&gt;]), &lt;/SPAN&gt;&lt;SPAN&gt;kSPI_FrameAssert&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//Rong modification begin:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; SPI_WriteData(EXAMPLE_SPI_MASTER, (&lt;/SPAN&gt;&lt;SPAN&gt;uint16_t&lt;/SPAN&gt;&lt;SPAN&gt;)(srcBuff[BUFFER_SIZE - &lt;/SPAN&gt;&lt;SPAN&gt;masterIndex&lt;/SPAN&gt;&lt;SPAN&gt;]), &lt;FONT color="#FF0000"&gt;kSPI_FrameAssert&lt;/FONT&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;////////////////////////&lt;STRONG&gt;&lt;SPAN&gt;Rong modification end:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;masterIndex&lt;/SPAN&gt;&lt;SPAN&gt;--;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;masterIndex&lt;/SPAN&gt;&lt;SPAN&gt; == 0U)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterFinished = true;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; SDK_ISR_EXIT_BARRIER;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="xiangjun_rong_0-1715926889750.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/279298iAF439385DC83EDA5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="xiangjun_rong_0-1715926889750.png" alt="xiangjun_rong_0-1715926889750.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Pls have&amp;nbsp; try&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2024 06:28:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1867743#M56077</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-05-17T06:28:37Z</dc:date>
    </item>
    <item>
      <title>Re: LPC54102 and SPI SSEL</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868081#M56081</link>
      <description>&lt;P&gt;I already have that set. &amp;nbsp;The way I read the documentation that causes the chip select to be deasserted at the end of the transfer and that is what it appears to do.&lt;BR /&gt;&lt;BR /&gt;I need the chip select deasserted for each frame (16 bits) as shown in the figure I quoted.&lt;BR /&gt;&lt;BR /&gt;I have the SPI working by doing a transfer for each frame but that takes about 5ms to read the data from the sensors. That's about a 1000 times longer than doing it in a single transfer which is what I need to do.&lt;/P&gt;&lt;P&gt;See my added post with pictures.&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2024 17:54:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868081#M56081</guid>
      <dc:creator>JBM</dc:creator>
      <dc:date>2024-05-17T17:54:00Z</dc:date>
    </item>
    <item>
      <title>Re: LPC54102 and SPI SSEL</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868123#M56082</link>
      <description>&lt;P&gt;There may be some confusion (maybe on my part) as to what the terms frame and transfer mean. &amp;nbsp;The figure I'm quoting (see attached document for figure 52) says that the Transfer_Delay value controls the minimum amount of time that the SSEL is deasserted between transfers, but the figure shows the frame delay between frames - not transfers. &amp;nbsp;I am assuming that a transfer is multiple frames since the NXP function for doing a transfer,&amp;nbsp;SPI_RTOS_Transfer(), transfers multiple frames.&lt;/P&gt;&lt;P&gt;I've tried removing the&amp;nbsp;kSPI_FrameAssert flag and you can see it just removes the deassert of the chip select at the end of the transfer of four frames (CSN stays low):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="RigolDS3.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/279418iFBE58CE1758CAA73/image-size/large?v=v2&amp;amp;px=999" role="button" title="RigolDS3.png" alt="RigolDS3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;If I add the kSPI_FrameAssert flag, you can see that the chip select is deasserted at the end of the transfer (CSN goes high):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RigolDS2.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/279419i823385AF841E744E/image-size/large?v=v2&amp;amp;px=999" role="button" title="RigolDS2.png" alt="RigolDS2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Note that in neither of these does the chip select deassert between the four frames. &amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, it's not clear to me why there are long waits between frames since all the delays are zero. &amp;nbsp;Maybe that is interrupt timing in FreeRTOS?&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2024 14:55:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868123#M56082</guid>
      <dc:creator>JBM</dc:creator>
      <dc:date>2024-05-17T14:55:01Z</dc:date>
    </item>
    <item>
      <title>Re: LPC54102 and SPI SSEL</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868525#M56091</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Pls try to modify the following parameters, and have a try.&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;DIV style="background-color: #ffffff; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #ffffff; font-family: 'Consolas'; font-size: 10pt; white-space: pre;"&gt;
&lt;DIV style="background-color: #ffffff; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #ffffff; font-family: 'Consolas'; font-size: 10pt; white-space: pre;"&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;master_task&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt; *pvParameters)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;spi_master_config_t&lt;/SPAN&gt;&lt;SPAN&gt; masterConfig;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;spi_rtos_handle_t&lt;/SPAN&gt;&lt;SPAN&gt; master_rtos_handle;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;spi_transfer_t&lt;/SPAN&gt;&lt;SPAN&gt; masterXfer = {0};&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; sourceClock;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;status_t&lt;/SPAN&gt;&lt;SPAN&gt; status;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; errorCount;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; i;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; NVIC_SetPriority(EXAMPLE_SPI_MASTER_IRQ, SPI_NVIC_PRIO + 1);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; SPI_MasterGetDefaultConfig(&amp;amp;masterConfig);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterConfig.&lt;/SPAN&gt;&lt;SPAN&gt;baudRate_Bps&lt;/SPAN&gt;&lt;SPAN&gt; = 500000;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterConfig.&lt;/SPAN&gt;&lt;SPAN&gt;sselNum&lt;/SPAN&gt;&lt;SPAN&gt; = EXAMPLE_SPI_SSEL;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterConfig.&lt;/SPAN&gt;&lt;SPAN&gt;sselPol&lt;/SPAN&gt;&lt;SPAN&gt; = (&lt;/SPAN&gt;&lt;SPAN&gt;spi_spol_t&lt;/SPAN&gt;&lt;SPAN&gt;)EXAMPLE_MASTER_SPI_SPOL;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;Rong&lt;/SPAN&gt;&lt;SPAN&gt; wrote&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterConfig.&lt;/SPAN&gt;&lt;SPAN&gt;delayConfig&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;preDelay&lt;/SPAN&gt;&lt;SPAN&gt;=2;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterConfig.&lt;/SPAN&gt;&lt;SPAN&gt;delayConfig&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;postDelay&lt;/SPAN&gt;&lt;SPAN&gt; =2;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterConfig.&lt;/SPAN&gt;&lt;SPAN&gt;delayConfig&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;frameDelay&lt;/SPAN&gt;&lt;SPAN&gt; =2;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterConfig.&lt;/SPAN&gt;&lt;SPAN&gt;delayConfig&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;transferDelay&lt;/SPAN&gt;&lt;SPAN&gt; =2;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;///&lt;/SPAN&gt;&lt;SPAN&gt;Rong&lt;/SPAN&gt;&lt;SPAN&gt; writing ending&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; sourceClock = 12000000;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; status = SPI_RTOS_Init(&amp;amp;master_rtos_handle, EXAMPLE_SPI_MASTER, &amp;amp;masterConfig, sourceClock);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (status != &lt;/SPAN&gt;&lt;SPAN&gt;kStatus_Success&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"SPI master: error during initialization. \r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; vTaskSuspend(NULL);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/*Start master transfer*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterXfer.&lt;/SPAN&gt;&lt;SPAN&gt;txData&lt;/SPAN&gt;&lt;SPAN&gt; = masterSendBuffer;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//Wrong write:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterXfer.&lt;/SPAN&gt;&lt;SPAN&gt;dataSize&lt;/SPAN&gt;&lt;SPAN&gt; = 1; &lt;/SPAN&gt;&lt;SPAN&gt;//TRANSFER_SIZE;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;Rong&lt;/SPAN&gt; &lt;SPAN&gt;wtiting&lt;/SPAN&gt;&lt;SPAN&gt; ends&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterXfer.&lt;/SPAN&gt;&lt;SPAN&gt;rxData&lt;/SPAN&gt;&lt;SPAN&gt; = masterReceiveBuffer;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; masterXfer.&lt;/SPAN&gt;&lt;SPAN&gt;configFlags&lt;/SPAN&gt;&lt;SPAN&gt; |= &lt;/SPAN&gt;&lt;SPAN&gt;kSPI_FrameAssert&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; status = SPI_RTOS_Transfer(&amp;amp;master_rtos_handle, &amp;amp;masterXfer);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"Master &lt;/SPAN&gt;&lt;SPAN&gt;transmited&lt;/SPAN&gt;&lt;SPAN&gt;:"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (i = 0; i &amp;lt; TRANSFER_SIZE; i++)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (i % 8 == 0)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"0x%2x "&lt;/SPAN&gt;&lt;SPAN&gt;, masterSendBuffer[i]);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"\r\n\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"Slave received:"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (i = 0; i &amp;lt; TRANSFER_SIZE; i++)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (i % 8 == 0)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"0x%2x "&lt;/SPAN&gt;&lt;SPAN&gt;, slaveReceiveBuffer[i]);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"\r\n\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"Slave &lt;/SPAN&gt;&lt;SPAN&gt;transmited&lt;/SPAN&gt;&lt;SPAN&gt;:"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (i = 0; i &amp;lt; TRANSFER_SIZE; i++)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (i % 8 == 0)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"0x%2x "&lt;/SPAN&gt;&lt;SPAN&gt;, slaveSendBuffer[i]);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"\r\n\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"Master received:"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (i = 0; i &amp;lt; TRANSFER_SIZE; i++)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (i % 8 == 0)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"0x%2x "&lt;/SPAN&gt;&lt;SPAN&gt;, masterReceiveBuffer[i]);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"\r\n\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (status == &lt;/SPAN&gt;&lt;SPAN&gt;kStatus_Success&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"SPI master transfer completed successfully.\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"SPI master transfer completed with error.\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; errorCount = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (i = 0; i &amp;lt; TRANSFER_SIZE; i++)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (masterReceiveBuffer[i] != slaveSendBuffer[i])&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; errorCount++;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (errorCount == 0)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"Slave-to-master data verified &lt;/SPAN&gt;&lt;SPAN&gt;ok&lt;/SPAN&gt;&lt;SPAN&gt;.\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"Mismatch in slave-to-master data!\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; vTaskSuspend(NULL);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 20 May 2024 03:29:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868525#M56091</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-05-20T03:29:10Z</dc:date>
    </item>
    <item>
      <title>Re: LPC54102 and SPI SSEL</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868935#M56097</link>
      <description>&lt;P&gt;I will try this. &amp;nbsp;Also, it would be a lot easier to read your posts if you used the code formatting function "&amp;lt;/&amp;gt;" from the toolbar.&lt;/P&gt;</description>
      <pubDate>Mon, 20 May 2024 13:56:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868935#M56097</guid>
      <dc:creator>JBM</dc:creator>
      <dc:date>2024-05-20T13:56:09Z</dc:date>
    </item>
    <item>
      <title>Re: LPC54102 and SPI SSEL</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868940#M56098</link>
      <description>&lt;P&gt;Setting the data size to 1 and adding the delays, set to 2, (which I've tried before) doesn't work at all. &amp;nbsp;The sensor doesn't even see the data.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RigolDS3.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/279646iE75A8385078573A8/image-size/large?v=v2&amp;amp;px=999" role="button" title="RigolDS3.png" alt="RigolDS3.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 20 May 2024 14:00:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC54102-and-SPI-SSEL/m-p/1868940#M56098</guid>
      <dc:creator>JBM</dc:creator>
      <dc:date>2024-05-20T14:00:56Z</dc:date>
    </item>
  </channel>
</rss>

