<?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: SPI linking to DMA Channel without trigger in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1379285#M61964</link>
    <description>&lt;P&gt;Hello&lt;BR /&gt;I apologize for my delayed reply. &lt;BR /&gt;After some tests with the DMA example using multiple channels, DMA_TX was successfully used in all channels while DMA_RX was limited to channels from 0 to 3. &lt;BR /&gt;I apologize for the inconvenience this is causing you. &lt;BR /&gt;&lt;BR /&gt;If you have more questions do not hesitate to ask me.&lt;BR /&gt;Best regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
    <pubDate>Wed, 01 Dec 2021 01:52:22 GMT</pubDate>
    <dc:creator>Omar_Anguiano</dc:creator>
    <dc:date>2021-12-01T01:52:22Z</dc:date>
    <item>
      <title>SPI linking to DMA Channel without trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1354695#M61686</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;We are working SPI DMA. As we know MKE15z is having 8 DMA channel with 59 sources. We can see example&amp;nbsp;SDK_2_10_0_FRDM-KE15Z\boards\frdmke15z\driver_examples\lpspi\edma_b2b_transfer\master where SPI0 is linked to DMA channel 0 and channel 1 which is trigger based. But when I configure SPI0 DMA with channel 4 and 5 which not trigger based, it is not working.&amp;nbsp;&lt;/P&gt;&lt;P&gt;What all configuration we need to do to link SPI0 DMA with channel 4,5,6 and 7. Do you have any example which you can share to us.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Shailesh&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Oct 2021 06:59:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1354695#M61686</guid>
      <dc:creator>shaileshnsec</dc:creator>
      <dc:date>2021-10-13T06:59:38Z</dc:date>
    </item>
    <item>
      <title>Re: SPI linking to DMA Channel without trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1358147#M61731</link>
      <description>&lt;P&gt;Hello&lt;BR /&gt;Hope you are well.&lt;/P&gt;
&lt;P&gt;Because of the mux, there is not a hard correlation between any of the DMA request sources and a specific DMA channel. So changing the macro EXAMPLE_LPSPI_MASTER_DMA_RX_CHANNEL and EXAMPLE_LPSPI_MASTER_DMA_TX_CHANNEL set a different channel with the functions "DMAMUX_SetSource()" and "DMAMUX_EnableChannel()".&lt;/P&gt;
&lt;P&gt;Does this issue happen in channels 1 and 2?&lt;/P&gt;
&lt;P&gt;If you have more questions do not hesitate to ask me.&lt;BR /&gt;Best regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
      <pubDate>Tue, 19 Oct 2021 22:53:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1358147#M61731</guid>
      <dc:creator>Omar_Anguiano</dc:creator>
      <dc:date>2021-10-19T22:53:36Z</dc:date>
    </item>
    <item>
      <title>Re: SPI linking to DMA Channel without trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1364822#M61807</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thank you for reply.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Does this issue happen in channels 1 and 2? -&amp;gt; No , with this SPI is working fine since these&amp;nbsp;channel&amp;nbsp;are trigger based.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;But our requirement is to use non trigger channel like 4 or 5 for SPI, but with this example code did not work. I see all example given by NXP is using 0 or 1. So for which purpose we can use non trigger channel, how to use and what all configuration do we need to do.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please provide any example which uses non trigger DMA channel (4,5,6,7).&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Shailesh Kumar&lt;/P&gt;</description>
      <pubDate>Tue, 02 Nov 2021 05:09:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1364822#M61807</guid>
      <dc:creator>shaileshnsec</dc:creator>
      <dc:date>2021-11-02T05:09:18Z</dc:date>
    </item>
    <item>
      <title>Re: SPI linking to DMA Channel without trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1370005#M61846</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I tried to configure SPI0 to with Channel 4 and channel 5 using LPIT trigger. But not able to get result. May be I am wrong in this.&lt;/P&gt;&lt;P&gt;Kindly let me know how to resolve this ?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_BASEADDR LPSPI0&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_CLOCK_NAME kCLOCK_Lpspi0&lt;BR /&gt;#define LPSPI_MASTER_CLK_FREQ (CLOCK_GetIpFreq(EXAMPLE_LPSPI_MASTER_CLOCK_NAME))&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_CLOCK_SOURCE (kCLOCK_IpSrcFircAsync)&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_PCS_FOR_INIT kLPSPI_Pcs3&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_PCS_FOR_TRANSFER kLPSPI_MasterPcs3&lt;/P&gt;&lt;P&gt;#define EXAMPLE_LPSPI_MASTER_DMA_MUX_BASE DMAMUX&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_DMA_RX_REQUEST_SOURCE kDmaRequestMux0LPSPI0Rx&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_DMA_TX_REQUEST_SOURCE kDmaRequestMux0LPSPI0Tx&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_DMA_BASE DMA0&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_DMA_RX_CHANNEL 4U&lt;BR /&gt;#define EXAMPLE_LPSPI_MASTER_DMA_TX_CHANNEL 5U&lt;/P&gt;&lt;P&gt;#define EXAMPLE_LPSPI_DEALY_COUNT 0xfffff&lt;BR /&gt;#define TRANSFER_SIZE 64U /* Transfer dataSize */&lt;BR /&gt;#define TRANSFER_BAUDRATE 500000U /* Transfer baudrate - 500k */&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Prototypes&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;/* LPSPI user callback */&lt;BR /&gt;void LPSPI_MasterUserCallback(LPSPI_Type *base, lpspi_master_edma_handle_t *handle, status_t status, void *userData);&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Variables&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;AT_NONCACHEABLE_SECTION_INIT(uint8_t masterRxData[TRANSFER_SIZE]) = {0};&lt;BR /&gt;AT_NONCACHEABLE_SECTION_INIT(uint8_t masterTxData[TRANSFER_SIZE]) = {0};&lt;/P&gt;&lt;P&gt;AT_NONCACHEABLE_SECTION_INIT(lpspi_master_edma_handle_t g_m_edma_handle) = {0};&lt;BR /&gt;edma_handle_t lpspiEdmaMasterRxRegToRxDataHandle;&lt;BR /&gt;edma_handle_t lpspiEdmaMasterTxDataToTxRegHandle;&lt;/P&gt;&lt;P&gt;volatile bool isTransferCompleted = false;&lt;BR /&gt;volatile uint32_t g_systickCounter = 20U;&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Code&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;#define DEMO_LPIT_USER_CHANNEL kLPIT_Chnl_0&lt;BR /&gt;#define DEMO_LPIT_USER_TIMER_CH kLPIT_Trigger_TimerChn0&lt;BR /&gt;#define DEMO_LPIT_SOURCECLOCK CLOCK_GetIpFreq(kCLOCK_Lpit0)&lt;BR /&gt;/* LPIT triggers ADC every LPIT_TRIGGER_TIME us*/&lt;BR /&gt;#define LPIT_TRIGGER_TIME (1000000U)&lt;BR /&gt;static void DEMO_InitLpitTrigger(void)&lt;BR /&gt;{&lt;BR /&gt;/* Structure of initialize LPIT */&lt;BR /&gt;lpit_config_t lpitConfig;&lt;BR /&gt;lpit_chnl_params_t lpitChannelConfig;&lt;/P&gt;&lt;P&gt;LPIT_GetDefaultConfig(&amp;amp;lpitConfig);&lt;BR /&gt;/* Init lpit module */&lt;BR /&gt;LPIT_Init(LPIT0, &amp;amp;lpitConfig);&lt;/P&gt;&lt;P&gt;lpitChannelConfig.chainChannel = false;&lt;BR /&gt;lpitChannelConfig.enableReloadOnTrigger = false;&lt;BR /&gt;lpitChannelConfig.enableStartOnTrigger = false;&lt;BR /&gt;lpitChannelConfig.enableStopOnTimeout = false;&lt;BR /&gt;lpitChannelConfig.timerMode = kLPIT_PeriodicCounter;&lt;BR /&gt;/* Set default values for the trigger source */&lt;BR /&gt;lpitChannelConfig.triggerSelect = DEMO_LPIT_USER_TIMER_CH;&lt;BR /&gt;lpitChannelConfig.triggerSource = kLPIT_TriggerSource_External;&lt;/P&gt;&lt;P&gt;/* Init lpit channel 0 */&lt;BR /&gt;LPIT_SetupChannel(LPIT0, DEMO_LPIT_USER_CHANNEL, &amp;amp;lpitChannelConfig);&lt;/P&gt;&lt;P&gt;/* Set timer period for channel 0 */&lt;BR /&gt;LPIT_SetTimerPeriod(LPIT0, DEMO_LPIT_USER_CHANNEL, USEC_TO_COUNT(LPIT_TRIGGER_TIME, DEMO_LPIT_SOURCECLOCK));&lt;/P&gt;&lt;P&gt;/* Disable timer interrupts for channel 0 */&lt;BR /&gt;// LPIT_DisableInterrupts(LPIT0, kLPIT_Channel0TimerInterruptEnable);&lt;/P&gt;&lt;P&gt;/* Start the timer */&lt;BR /&gt;// LPIT_StartTimer(LPIT0, kLPIT_Chnl_0);&lt;BR /&gt;&lt;BR /&gt;TRGMUX_SetTriggerSource(TRGMUX0, kTRGMUX_Dmamux0, kTRGMUX_TriggerInput0, kTRGMUX_SourceLpit0Ch0); // Connect the LPIT trigger source to the DMAMUX&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void SysTick_Handler(void)&lt;BR /&gt;{&lt;BR /&gt;if (g_systickCounter != 0U)&lt;BR /&gt;{&lt;BR /&gt;g_systickCounter--;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void LPSPI_MasterUserCallback(LPSPI_Type *base, lpspi_master_edma_handle_t *handle, status_t status, void *userData)&lt;BR /&gt;{&lt;BR /&gt;if (status == kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;PRINTF("This is LPSPI master edma transfer completed callback. \r\n\r\n");&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;isTransferCompleted = true;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/*!&lt;BR /&gt;* @brief Main function&lt;BR /&gt;*/&lt;BR /&gt;int main(void)&lt;BR /&gt;{&lt;BR /&gt;uint32_t srcClock_Hz;&lt;BR /&gt;uint32_t errorCount;&lt;BR /&gt;uint32_t loopCount = 1U;&lt;BR /&gt;uint32_t i;&lt;BR /&gt;lpspi_master_config_t masterConfig;&lt;BR /&gt;lpspi_transfer_t masterXfer;&lt;BR /&gt;edma_config_t userConfig;&lt;/P&gt;&lt;P&gt;BOARD_InitBootPins();&lt;BR /&gt;BOARD_InitBootClocks();&lt;BR /&gt;BOARD_InitDebugConsole();&lt;BR /&gt;/* Set the source for the LPIT module */&lt;BR /&gt;CLOCK_SetIpSrc(kCLOCK_Lpit0, kCLOCK_IpSrcSircAsync);&lt;BR /&gt;/* Configure the lpit to trigger ADC periodically */&lt;BR /&gt;DEMO_InitLpitTrigger();&lt;BR /&gt;/*Set clock source for LPSPI and get master clock source*/&lt;BR /&gt;CLOCK_SetIpSrc(EXAMPLE_LPSPI_MASTER_CLOCK_NAME, EXAMPLE_LPSPI_MASTER_CLOCK_SOURCE);&lt;/P&gt;&lt;P&gt;PRINTF("LPSPI board to board edma example.\r\n");&lt;BR /&gt;PRINTF("This example use one board as master and another as slave.\r\n");&lt;BR /&gt;PRINTF("Master and slave uses EDMA way. Slave should start first. \r\n");&lt;BR /&gt;PRINTF("Please make sure you make the correct line connection. Basically, the connection is: \r\n");&lt;BR /&gt;PRINTF("LPSPI_master -- LPSPI_slave \r\n");&lt;BR /&gt;PRINTF(" CLK -- CLK \r\n");&lt;BR /&gt;PRINTF(" PCS -- PCS \r\n");&lt;BR /&gt;PRINTF(" SOUT -- SIN \r\n");&lt;BR /&gt;PRINTF(" SIN -- SOUT \r\n");&lt;BR /&gt;PRINTF(" GND -- GND \r\n");&lt;/P&gt;&lt;P&gt;/*DMA Mux setting and EDMA init*/&lt;BR /&gt;#if defined(FSL_FEATURE_SOC_DMAMUX_COUNT) &amp;amp;&amp;amp; FSL_FEATURE_SOC_DMAMUX_COUNT&lt;BR /&gt;/* DMA MUX init*/&lt;BR /&gt;DMAMUX_Init(EXAMPLE_LPSPI_MASTER_DMA_MUX_BASE);&lt;/P&gt;&lt;P&gt;DMAMUX_SetSource(EXAMPLE_LPSPI_MASTER_DMA_MUX_BASE, EXAMPLE_LPSPI_MASTER_DMA_RX_CHANNEL,&lt;BR /&gt;EXAMPLE_LPSPI_MASTER_DMA_RX_REQUEST_SOURCE);&lt;BR /&gt;DMAMUX_EnableChannel(EXAMPLE_LPSPI_MASTER_DMA_MUX_BASE, EXAMPLE_LPSPI_MASTER_DMA_RX_CHANNEL);&lt;/P&gt;&lt;P&gt;DMAMUX_SetSource(EXAMPLE_LPSPI_MASTER_DMA_MUX_BASE, EXAMPLE_LPSPI_MASTER_DMA_TX_CHANNEL,&lt;BR /&gt;EXAMPLE_LPSPI_MASTER_DMA_TX_REQUEST_SOURCE);&lt;BR /&gt;DMAMUX_EnableChannel(EXAMPLE_LPSPI_MASTER_DMA_MUX_BASE, EXAMPLE_LPSPI_MASTER_DMA_TX_CHANNEL);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;DMAMUX_EnablePeriodTrigger(EXAMPLE_LPSPI_MASTER_DMA_MUX_BASE, EXAMPLE_LPSPI_MASTER_DMA_RX_CHANNEL);&lt;BR /&gt;DMAMUX_EnablePeriodTrigger(EXAMPLE_LPSPI_MASTER_DMA_MUX_BASE, EXAMPLE_LPSPI_MASTER_DMA_TX_CHANNEL);&lt;BR /&gt;&lt;BR /&gt;//TRGMUX_SetTriggerSource(TRGMUX0, kTRGMUX_ExtOut4_7, kTRGMUX_TriggerInput0, kTRGMUX_SourceLpit0Ch0);&lt;BR /&gt;//TRGMUX_SetTriggerSource(TRGMUX0, kTRGMUX_Lpspi0, kTRGMUX_TriggerInput0, kTRGMUX_SourceLpspi0Frame);&lt;/P&gt;&lt;P&gt;/* EDMA init*/&lt;BR /&gt;/*&lt;BR /&gt;* userConfig.enableRoundRobinArbitration = false;&lt;BR /&gt;* userConfig.enableHaltOnError = true;&lt;BR /&gt;* userConfig.enableContinuousLinkMode = false;&lt;BR /&gt;* userConfig.enableDebugMode = false;&lt;BR /&gt;*/&lt;BR /&gt;EDMA_GetDefaultConfig(&amp;amp;userConfig);&lt;BR /&gt;EDMA_Init(EXAMPLE_LPSPI_MASTER_DMA_BASE, &amp;amp;userConfig);&lt;/P&gt;&lt;P&gt;/*Master config*/&lt;BR /&gt;LPSPI_MasterGetDefaultConfig(&amp;amp;masterConfig);&lt;BR /&gt;masterConfig.baudRate = TRANSFER_BAUDRATE;&lt;BR /&gt;masterConfig.whichPcs = EXAMPLE_LPSPI_MASTER_PCS_FOR_INIT;&lt;/P&gt;&lt;P&gt;srcClock_Hz = LPSPI_MASTER_CLK_FREQ;&lt;BR /&gt;LPSPI_MasterInit(EXAMPLE_LPSPI_MASTER_BASEADDR, &amp;amp;masterConfig, srcClock_Hz);&lt;/P&gt;&lt;P&gt;/*Set up lpspi master*/&lt;BR /&gt;memset(&amp;amp;(lpspiEdmaMasterRxRegToRxDataHandle), 0, sizeof(lpspiEdmaMasterRxRegToRxDataHandle));&lt;BR /&gt;memset(&amp;amp;(lpspiEdmaMasterTxDataToTxRegHandle), 0, sizeof(lpspiEdmaMasterTxDataToTxRegHandle));&lt;/P&gt;&lt;P&gt;EDMA_CreateHandle(&amp;amp;(lpspiEdmaMasterRxRegToRxDataHandle), EXAMPLE_LPSPI_MASTER_DMA_BASE,&lt;BR /&gt;EXAMPLE_LPSPI_MASTER_DMA_RX_CHANNEL);&lt;BR /&gt;EDMA_CreateHandle(&amp;amp;(lpspiEdmaMasterTxDataToTxRegHandle), EXAMPLE_LPSPI_MASTER_DMA_BASE,&lt;BR /&gt;EXAMPLE_LPSPI_MASTER_DMA_TX_CHANNEL);&lt;BR /&gt;#if defined(FSL_FEATURE_EDMA_HAS_CHANNEL_MUX) &amp;amp;&amp;amp; FSL_FEATURE_EDMA_HAS_CHANNEL_MUX&lt;BR /&gt;EDMA_SetChannelMux(EXAMPLE_LPSPI_MASTER_DMA_BASE, EXAMPLE_LPSPI_MASTER_DMA_TX_CHANNEL,&lt;BR /&gt;DEMO_LPSPI_TRANSMIT_EDMA_CHANNEL);&lt;BR /&gt;EDMA_SetChannelMux(EXAMPLE_LPSPI_MASTER_DMA_BASE, EXAMPLE_LPSPI_MASTER_DMA_RX_CHANNEL,&lt;BR /&gt;DEMO_LPSPI_RECEIVE_EDMA_CHANNEL);&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;EDMA_EnableChannelRequest(EXAMPLE_LPSPI_MASTER_DMA_BASE, EXAMPLE_LPSPI_MASTER_DMA_RX_CHANNEL);&lt;BR /&gt;EDMA_EnableChannelRequest(EXAMPLE_LPSPI_MASTER_DMA_BASE, EXAMPLE_LPSPI_MASTER_DMA_TX_CHANNEL);&lt;BR /&gt;&lt;BR /&gt;LPIT_StartTimer(LPIT0, kLPIT_Chnl_0);&lt;/P&gt;&lt;P&gt;LPSPI_MasterTransferCreateHandleEDMA(EXAMPLE_LPSPI_MASTER_BASEADDR, &amp;amp;g_m_edma_handle, LPSPI_MasterUserCallback,&lt;BR /&gt;NULL, &amp;amp;lpspiEdmaMasterRxRegToRxDataHandle,&lt;BR /&gt;&amp;amp;lpspiEdmaMasterTxDataToTxRegHandle);&lt;/P&gt;&lt;P&gt;while (1)&lt;BR /&gt;{&lt;BR /&gt;/* Set up the transfer data */&lt;BR /&gt;for (i = 0U; i &amp;lt; TRANSFER_SIZE; i++)&lt;BR /&gt;{&lt;BR /&gt;masterTxData[i] = (i + loopCount) % 256U;&lt;BR /&gt;masterRxData[i] = 0U;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Print out transmit buffer */&lt;BR /&gt;PRINTF("\r\n Master transmit:\r\n");&lt;BR /&gt;for (i = 0; i &amp;lt; TRANSFER_SIZE; i++)&lt;BR /&gt;{&lt;BR /&gt;/* Print 16 numbers in a line */&lt;BR /&gt;if ((i &amp;amp; 0x0FU) == 0U)&lt;BR /&gt;{&lt;BR /&gt;PRINTF("\r\n");&lt;BR /&gt;}&lt;BR /&gt;PRINTF(" %02X", masterTxData[i]);&lt;BR /&gt;}&lt;BR /&gt;PRINTF("\r\n");&lt;/P&gt;&lt;P&gt;/*Start master transfer*/&lt;BR /&gt;masterXfer.txData = masterTxData;&lt;BR /&gt;masterXfer.rxData = NULL;&lt;BR /&gt;masterXfer.dataSize = TRANSFER_SIZE;&lt;BR /&gt;masterXfer.configFlags =&lt;BR /&gt;EXAMPLE_LPSPI_MASTER_PCS_FOR_TRANSFER | kLPSPI_MasterByteSwap | kLPSPI_MasterPcsContinuous;&lt;/P&gt;&lt;P&gt;isTransferCompleted = false;&lt;BR /&gt;LPSPI_MasterTransferEDMA(EXAMPLE_LPSPI_MASTER_BASEADDR, &amp;amp;g_m_edma_handle, &amp;amp;masterXfer);&lt;/P&gt;&lt;P&gt;/* Wait until transfer completed */&lt;BR /&gt;while (!isTransferCompleted)&lt;BR /&gt;{&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Delay to wait slave is ready */&lt;BR /&gt;if (SysTick_Config(SystemCoreClock / 1000U))&lt;BR /&gt;{&lt;BR /&gt;while (1)&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;/* Delay 20 ms */&lt;BR /&gt;g_systickCounter = 20U;&lt;BR /&gt;while (g_systickCounter != 0U)&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;/* Start master transfer, receive data from slave */&lt;BR /&gt;isTransferCompleted = false;&lt;BR /&gt;masterXfer.txData = NULL;&lt;BR /&gt;masterXfer.rxData = masterRxData;&lt;BR /&gt;masterXfer.dataSize = TRANSFER_SIZE;&lt;BR /&gt;masterXfer.configFlags =&lt;BR /&gt;EXAMPLE_LPSPI_MASTER_PCS_FOR_TRANSFER | kLPSPI_MasterByteSwap | kLPSPI_MasterPcsContinuous;&lt;/P&gt;&lt;P&gt;LPSPI_MasterTransferEDMA(EXAMPLE_LPSPI_MASTER_BASEADDR, &amp;amp;g_m_edma_handle, &amp;amp;masterXfer);&lt;/P&gt;&lt;P&gt;/* Wait until transfer completed */&lt;BR /&gt;while (!isTransferCompleted)&lt;BR /&gt;{&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;errorCount = 0;&lt;BR /&gt;for (i = 0; i &amp;lt; TRANSFER_SIZE; i++)&lt;BR /&gt;{&lt;BR /&gt;if (masterTxData[i] != masterRxData[i])&lt;BR /&gt;{&lt;BR /&gt;errorCount++;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;if (errorCount == 0)&lt;BR /&gt;{&lt;BR /&gt;PRINTF(" \r\nLPSPI transfer all data matched! \r\n");&lt;BR /&gt;/* Print out receive buffer */&lt;BR /&gt;PRINTF("\r\n Master received:\r\n");&lt;BR /&gt;for (i = 0; i &amp;lt; TRANSFER_SIZE; i++)&lt;BR /&gt;{&lt;BR /&gt;/* Print 16 numbers in a line */&lt;BR /&gt;if ((i &amp;amp; 0x0FU) == 0U)&lt;BR /&gt;{&lt;BR /&gt;PRINTF("\r\n");&lt;BR /&gt;}&lt;BR /&gt;PRINTF(" %02X", masterRxData[i]);&lt;BR /&gt;}&lt;BR /&gt;PRINTF("\r\n");&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;PRINTF(" \r\nError occurred in LPSPI transfer ! \r\n");&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Wait for press any key */&lt;BR /&gt;PRINTF("\r\n Press any key to run again\r\n");&lt;BR /&gt;GETCHAR();&lt;BR /&gt;/* Increase loop count to change transmit buffer */&lt;BR /&gt;loopCount++;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Shailesh&lt;/P&gt;</description>
      <pubDate>Thu, 11 Nov 2021 14:28:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1370005#M61846</guid>
      <dc:creator>shaileshnsec</dc:creator>
      <dc:date>2021-11-11T14:28:34Z</dc:date>
    </item>
    <item>
      <title>Re: SPI linking to DMA Channel without trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1379285#M61964</link>
      <description>&lt;P&gt;Hello&lt;BR /&gt;I apologize for my delayed reply. &lt;BR /&gt;After some tests with the DMA example using multiple channels, DMA_TX was successfully used in all channels while DMA_RX was limited to channels from 0 to 3. &lt;BR /&gt;I apologize for the inconvenience this is causing you. &lt;BR /&gt;&lt;BR /&gt;If you have more questions do not hesitate to ask me.&lt;BR /&gt;Best regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
      <pubDate>Wed, 01 Dec 2021 01:52:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1379285#M61964</guid>
      <dc:creator>Omar_Anguiano</dc:creator>
      <dc:date>2021-12-01T01:52:22Z</dc:date>
    </item>
    <item>
      <title>Re: SPI linking to DMA Channel without trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1381644#M61990</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thank you for the reply.&lt;/P&gt;&lt;P&gt;Can we use DMA TX and RX transmission for SPI DMA using channel 4-7 in DMA Normal mode?&lt;/P&gt;&lt;P&gt;or Do you have example where we can use SPI DMA in normal mode?&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Shailesh Kumar&lt;/P&gt;</description>
      <pubDate>Mon, 06 Dec 2021 04:29:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1381644#M61990</guid>
      <dc:creator>shaileshnsec</dc:creator>
      <dc:date>2021-12-06T04:29:57Z</dc:date>
    </item>
    <item>
      <title>Re: SPI linking to DMA Channel without trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1385959#M62069</link>
      <description>&lt;P&gt;Unfortunately, DMA_RX is limited to channels from 0 to 3. If you want to use SPI with DMA it is necessary to assign these first channels to DMA_RX while DMA_TX can be assigned to all the available channels.&lt;BR /&gt;The SDK example is the best example alternative, unfortunately,&amp;nbsp; the module has those limitations.&lt;/P&gt;
&lt;P&gt;I apologize for the inconvenience this may cause you, If you have more questions do not hesitate to ask me.&lt;BR /&gt;Best regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
      <pubDate>Tue, 14 Dec 2021 02:05:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SPI-linking-to-DMA-Channel-without-trigger/m-p/1385959#M62069</guid>
      <dc:creator>Omar_Anguiano</dc:creator>
      <dc:date>2021-12-14T02:05:55Z</dc:date>
    </item>
  </channel>
</rss>

