<?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 SPI with FRDM K22F in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/SPI-with-FRDM-K22F/m-p/382971#M1024</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to get 2 EV boards to communicate with each other via SPI. The problem I am having is that there is really no communication happening between the boards. The signals come out fine between the Slave and Master, but when I check the receive buffer, and it is always the same value (0xff).&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I looked at the signals in a scope, and I did notice something weird. In the slave, I am sending 0x55, which should look like 0..001010101, however In the scope I see 0...001010000. The image is attached. The Yellow line is the Master Clock, and the blue line is the Slave SDOUT.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If anyone could help me out sort my problem I would greatly appreciate it. Been battling to get this SPI ready for 2 days now.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the code for the Slave:&lt;/P&gt;&lt;PRE class="c++" name="code"&gt;void slave(){ uint8_t SPI_instance = 1; &amp;nbsp;&amp;nbsp;&amp;nbsp; // uint8_t spi_baseAddr = g_spiBaseAddr[SPI_instance]; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_slave_state_t mstate; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp; calculatedBaudRate; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_status_t statRet; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t sendBuff[8] = {0xFF};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save data sent to i2c slave &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t receiveBuff[8] = {0xFF};&amp;nbsp;&amp;nbsp;&amp;nbsp; // save data received from i2c slave &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t numBytes = 8; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp; instance&amp;nbsp; =&amp;nbsp; 1; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp; bitCount&amp;nbsp; =&amp;nbsp; 16; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int timeOut = 1000; //in uS (total 100mS) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //local variables-----------&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; declare&amp;nbsp; which&amp;nbsp; module&amp;nbsp; instance&amp;nbsp; you&amp;nbsp; want&amp;nbsp; to&amp;nbsp; use &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_slave_state_t&amp;nbsp; dspiSlaveState; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; update&amp;nbsp; configs &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_slave_user_config_t&amp;nbsp; slaveUserConfig; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slaveUserConfig.dataConfig.clkPhase&amp;nbsp; = kDspiClockPhase_FirstEdge; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slaveUserConfig.dataConfig.clkPolarity&amp;nbsp; = kDspiClockPolarity_ActiveHigh; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slaveUserConfig.dataConfig.bitsPerFrame&amp;nbsp; =&amp;nbsp; bitCount; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slaveUserConfig.dummyPattern&amp;nbsp; =&amp;nbsp; DSPI_DEFAULT_DUMMY_PATTERN;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize the operating system &amp;nbsp;&amp;nbsp;&amp;nbsp; OSA_Init(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\nStarting the SPI Test..."); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD4 -&amp;gt; spi1-CS0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD5 -&amp;gt; spi1-SCK &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD6 -&amp;gt; spi1-SOUT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD7 -&amp;gt; SPI1-SIN &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; configure_spi_pins(1);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; init&amp;nbsp; the&amp;nbsp; slave&amp;nbsp; (interrupt&amp;nbsp; driven) &amp;nbsp;&amp;nbsp;&amp;nbsp; DSPI_DRV_SlaveInit(instance,&amp;nbsp; &amp;amp;dspiSlaveState,&amp;nbsp; &amp;amp;slaveUserConfig);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; Perform&amp;nbsp; the&amp;nbsp; transfer &amp;nbsp;&amp;nbsp;&amp;nbsp; sendBuff[0] = 0x55; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; Blocking&amp;nbsp; call&amp;nbsp; example &amp;nbsp;&amp;nbsp;&amp;nbsp; statRet&amp;nbsp; =&amp;nbsp; DSPI_DRV_SlaveTransfer(instance,&amp;nbsp; //&amp;nbsp; number&amp;nbsp; of&amp;nbsp; SPI&amp;nbsp; peripheral &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; sendBuff,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; pointer&amp;nbsp; to&amp;nbsp; transmit&amp;nbsp; buffer,&amp;nbsp; can&amp;nbsp; be&amp;nbsp; NULL &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; receiveBuff,&amp;nbsp; //&amp;nbsp; pointer&amp;nbsp; to&amp;nbsp; receive&amp;nbsp; buffer,&amp;nbsp; can&amp;nbsp; be&amp;nbsp; NULL &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; numBytes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; size&amp;nbsp; of&amp;nbsp; receive&amp;nbsp; and&amp;nbsp; receive&amp;nbsp; data &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; ); }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And here is the code for the master:&lt;/P&gt;&lt;PRE class="c++" name="code"&gt;void startSPITest(){ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //local variables----------- &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t SPI_instance = 1; &amp;nbsp;&amp;nbsp;&amp;nbsp; // uint8_t spi_baseAddr = g_spiBaseAddr[SPI_instance]; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_master_state_t mstate; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp; calculatedBaudRate; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_status_t statRet; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t sendBuff[8] = {0xFF};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save data sent to i2c slave &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t receiveBuff[8] = {0xFF};&amp;nbsp;&amp;nbsp;&amp;nbsp; // save data received from i2c slave &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t numBytes = 8; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t framesComplete = 0; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int timeOut = 100; //in uS (total 100mS)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize the operating system &amp;nbsp;&amp;nbsp;&amp;nbsp; OSA_Init();&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; configure&amp;nbsp; the&amp;nbsp; members&amp;nbsp; of&amp;nbsp; the&amp;nbsp; user&amp;nbsp; config&amp;nbsp; // &amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_master_user_config_t&amp;nbsp; userConfig; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.isChipSelectContinuous = false; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.isSckContinuous = false; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.pcsPolarity = kDspiPcs_ActiveLow; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.whichCtar = kDspiCtar0; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.whichPcs = kDspiPcs0;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //configure the type of device the spi will be communicating with &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_device_t spiDevice; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.dataBusConfig.bitsPerFrame = 16; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.dataBusConfig.clkPhase = kDspiClockPhase_FirstEdge; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.dataBusConfig.clkPolarity = kDspiClockPolarity_ActiveHigh; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.dataBusConfig.direction = kDspiMsbFirst; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.bitsPerSec = 50000;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\nStarting the SPI Test..."); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD4 -&amp;gt; spi1-CS0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD5 -&amp;gt; spi1-SCK &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD6 -&amp;gt; spi1-SOUT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD7 -&amp;gt; SPI1-SIN &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; configure_spi_pins(1);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #if&amp;nbsp; FSL_FEATURE_SPI_16BIT_TRANSFERS &amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.bitCount=&amp;nbsp; kSpi8BitMode;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; set&amp;nbsp; only&amp;nbsp; if&amp;nbsp; SPI&amp;nbsp; module&amp;nbsp; supports&amp;nbsp; bit&amp;nbsp; count&amp;nbsp; feature &amp;nbsp;&amp;nbsp;&amp;nbsp; #endif &amp;nbsp;&amp;nbsp;&amp;nbsp; //init the spi module &amp;nbsp;&amp;nbsp;&amp;nbsp; DSPI_DRV_MasterInit(SPI_instance,&amp;nbsp; &amp;amp;mstate,&amp;nbsp; &amp;amp;userConfig); &amp;nbsp;&amp;nbsp;&amp;nbsp; //SPI_DRV_MasterInit(SPI_instance,&amp;amp;mstate); &amp;nbsp;&amp;nbsp;&amp;nbsp; DSPI_DRV_MasterConfigureBus(SPI_instance,&amp;nbsp; &amp;amp;spiDevice,&amp;nbsp; &amp;amp;calculatedBaudRate); &amp;nbsp;&amp;nbsp;&amp;nbsp; //SPI_DRV_MasterConfigureBus(SPI_instance,&amp;nbsp; &amp;amp;userConfig,&amp;nbsp; &amp;amp;calculatedBaudRate);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; Perform&amp;nbsp; the&amp;nbsp; transfer &amp;nbsp;&amp;nbsp;&amp;nbsp; sendBuff[0] = 10;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //make a transfer using the SPI module. Only transfers 1 data word of up to 16 bits. &amp;nbsp;&amp;nbsp;&amp;nbsp; statRet = DSPI_DRV_MasterTransfer(SPI_instance,NULL, &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; sendBuff,receiveBuff, &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; numBytes); //&amp;nbsp;&amp;nbsp;&amp;nbsp; statRet = DSPI_DRV_MasterTransferBlocking(SPI_instance,NULL, //&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; sendBuff,receiveBuff, //&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; numBytes,1000);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; statRet = DSPI_DRV_MasterGetTransferStatus(SPI_instance, &amp;amp;framesComplete); &amp;nbsp;&amp;nbsp;&amp;nbsp; int transfStart = 0; &amp;nbsp;&amp;nbsp;&amp;nbsp; while(statRet!= kStatus_DSPI_Success ){ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (transfStart == 0){printf("\r\nTransfer started...");} &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; transfStart = 1; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; statRet = DSPI_DRV_MasterGetTransferStatus(SPI_instance, &amp;amp;framesComplete);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //de- initialize the SPI module &amp;nbsp;&amp;nbsp;&amp;nbsp; DSPI_DRV_MasterDeinit(SPI_instance);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (statRet != kStatus_DSPI_Success) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\nSPI communication failed, error code: %d", statRet); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\n... SPI Test Concluded.");&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 28 Jan 2015 00:53:55 GMT</pubDate>
    <dc:creator>coopertrooper</dc:creator>
    <dc:date>2015-01-28T00:53:55Z</dc:date>
    <item>
      <title>SPI with FRDM K22F</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/SPI-with-FRDM-K22F/m-p/382971#M1024</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to get 2 EV boards to communicate with each other via SPI. The problem I am having is that there is really no communication happening between the boards. The signals come out fine between the Slave and Master, but when I check the receive buffer, and it is always the same value (0xff).&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I looked at the signals in a scope, and I did notice something weird. In the slave, I am sending 0x55, which should look like 0..001010101, however In the scope I see 0...001010000. The image is attached. The Yellow line is the Master Clock, and the blue line is the Slave SDOUT.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If anyone could help me out sort my problem I would greatly appreciate it. Been battling to get this SPI ready for 2 days now.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the code for the Slave:&lt;/P&gt;&lt;PRE class="c++" name="code"&gt;void slave(){ uint8_t SPI_instance = 1; &amp;nbsp;&amp;nbsp;&amp;nbsp; // uint8_t spi_baseAddr = g_spiBaseAddr[SPI_instance]; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_slave_state_t mstate; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp; calculatedBaudRate; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_status_t statRet; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t sendBuff[8] = {0xFF};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save data sent to i2c slave &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t receiveBuff[8] = {0xFF};&amp;nbsp;&amp;nbsp;&amp;nbsp; // save data received from i2c slave &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t numBytes = 8; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp; instance&amp;nbsp; =&amp;nbsp; 1; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp; bitCount&amp;nbsp; =&amp;nbsp; 16; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int timeOut = 1000; //in uS (total 100mS) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //local variables-----------&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; declare&amp;nbsp; which&amp;nbsp; module&amp;nbsp; instance&amp;nbsp; you&amp;nbsp; want&amp;nbsp; to&amp;nbsp; use &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_slave_state_t&amp;nbsp; dspiSlaveState; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; update&amp;nbsp; configs &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_slave_user_config_t&amp;nbsp; slaveUserConfig; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slaveUserConfig.dataConfig.clkPhase&amp;nbsp; = kDspiClockPhase_FirstEdge; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slaveUserConfig.dataConfig.clkPolarity&amp;nbsp; = kDspiClockPolarity_ActiveHigh; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slaveUserConfig.dataConfig.bitsPerFrame&amp;nbsp; =&amp;nbsp; bitCount; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slaveUserConfig.dummyPattern&amp;nbsp; =&amp;nbsp; DSPI_DEFAULT_DUMMY_PATTERN;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize the operating system &amp;nbsp;&amp;nbsp;&amp;nbsp; OSA_Init(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\nStarting the SPI Test..."); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD4 -&amp;gt; spi1-CS0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD5 -&amp;gt; spi1-SCK &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD6 -&amp;gt; spi1-SOUT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD7 -&amp;gt; SPI1-SIN &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; configure_spi_pins(1);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; init&amp;nbsp; the&amp;nbsp; slave&amp;nbsp; (interrupt&amp;nbsp; driven) &amp;nbsp;&amp;nbsp;&amp;nbsp; DSPI_DRV_SlaveInit(instance,&amp;nbsp; &amp;amp;dspiSlaveState,&amp;nbsp; &amp;amp;slaveUserConfig);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; Perform&amp;nbsp; the&amp;nbsp; transfer &amp;nbsp;&amp;nbsp;&amp;nbsp; sendBuff[0] = 0x55; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; Blocking&amp;nbsp; call&amp;nbsp; example &amp;nbsp;&amp;nbsp;&amp;nbsp; statRet&amp;nbsp; =&amp;nbsp; DSPI_DRV_SlaveTransfer(instance,&amp;nbsp; //&amp;nbsp; number&amp;nbsp; of&amp;nbsp; SPI&amp;nbsp; peripheral &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; sendBuff,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; pointer&amp;nbsp; to&amp;nbsp; transmit&amp;nbsp; buffer,&amp;nbsp; can&amp;nbsp; be&amp;nbsp; NULL &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; receiveBuff,&amp;nbsp; //&amp;nbsp; pointer&amp;nbsp; to&amp;nbsp; receive&amp;nbsp; buffer,&amp;nbsp; can&amp;nbsp; be&amp;nbsp; NULL &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; numBytes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; size&amp;nbsp; of&amp;nbsp; receive&amp;nbsp; and&amp;nbsp; receive&amp;nbsp; data &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; ); }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And here is the code for the master:&lt;/P&gt;&lt;PRE class="c++" name="code"&gt;void startSPITest(){ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //local variables----------- &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t SPI_instance = 1; &amp;nbsp;&amp;nbsp;&amp;nbsp; // uint8_t spi_baseAddr = g_spiBaseAddr[SPI_instance]; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_master_state_t mstate; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp; calculatedBaudRate; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_status_t statRet; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t sendBuff[8] = {0xFF};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save data sent to i2c slave &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t receiveBuff[8] = {0xFF};&amp;nbsp;&amp;nbsp;&amp;nbsp; // save data received from i2c slave &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t numBytes = 8; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t framesComplete = 0; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int timeOut = 100; //in uS (total 100mS)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize the operating system &amp;nbsp;&amp;nbsp;&amp;nbsp; OSA_Init();&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; configure&amp;nbsp; the&amp;nbsp; members&amp;nbsp; of&amp;nbsp; the&amp;nbsp; user&amp;nbsp; config&amp;nbsp; // &amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_master_user_config_t&amp;nbsp; userConfig; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.isChipSelectContinuous = false; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.isSckContinuous = false; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.pcsPolarity = kDspiPcs_ActiveLow; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.whichCtar = kDspiCtar0; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.whichPcs = kDspiPcs0;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //configure the type of device the spi will be communicating with &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dspi_device_t spiDevice; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.dataBusConfig.bitsPerFrame = 16; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.dataBusConfig.clkPhase = kDspiClockPhase_FirstEdge; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.dataBusConfig.clkPolarity = kDspiClockPolarity_ActiveHigh; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.dataBusConfig.direction = kDspiMsbFirst; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiDevice.bitsPerSec = 50000;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\nStarting the SPI Test..."); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD4 -&amp;gt; spi1-CS0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD5 -&amp;gt; spi1-SCK &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD6 -&amp;gt; spi1-SOUT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTD7 -&amp;gt; SPI1-SIN &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; configure_spi_pins(1);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #if&amp;nbsp; FSL_FEATURE_SPI_16BIT_TRANSFERS &amp;nbsp;&amp;nbsp;&amp;nbsp; userConfig.bitCount=&amp;nbsp; kSpi8BitMode;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; set&amp;nbsp; only&amp;nbsp; if&amp;nbsp; SPI&amp;nbsp; module&amp;nbsp; supports&amp;nbsp; bit&amp;nbsp; count&amp;nbsp; feature &amp;nbsp;&amp;nbsp;&amp;nbsp; #endif &amp;nbsp;&amp;nbsp;&amp;nbsp; //init the spi module &amp;nbsp;&amp;nbsp;&amp;nbsp; DSPI_DRV_MasterInit(SPI_instance,&amp;nbsp; &amp;amp;mstate,&amp;nbsp; &amp;amp;userConfig); &amp;nbsp;&amp;nbsp;&amp;nbsp; //SPI_DRV_MasterInit(SPI_instance,&amp;amp;mstate); &amp;nbsp;&amp;nbsp;&amp;nbsp; DSPI_DRV_MasterConfigureBus(SPI_instance,&amp;nbsp; &amp;amp;spiDevice,&amp;nbsp; &amp;amp;calculatedBaudRate); &amp;nbsp;&amp;nbsp;&amp;nbsp; //SPI_DRV_MasterConfigureBus(SPI_instance,&amp;nbsp; &amp;amp;userConfig,&amp;nbsp; &amp;amp;calculatedBaudRate);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; Perform&amp;nbsp; the&amp;nbsp; transfer &amp;nbsp;&amp;nbsp;&amp;nbsp; sendBuff[0] = 10;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //make a transfer using the SPI module. Only transfers 1 data word of up to 16 bits. &amp;nbsp;&amp;nbsp;&amp;nbsp; statRet = DSPI_DRV_MasterTransfer(SPI_instance,NULL, &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; sendBuff,receiveBuff, &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; numBytes); //&amp;nbsp;&amp;nbsp;&amp;nbsp; statRet = DSPI_DRV_MasterTransferBlocking(SPI_instance,NULL, //&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; sendBuff,receiveBuff, //&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; numBytes,1000);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; statRet = DSPI_DRV_MasterGetTransferStatus(SPI_instance, &amp;amp;framesComplete); &amp;nbsp;&amp;nbsp;&amp;nbsp; int transfStart = 0; &amp;nbsp;&amp;nbsp;&amp;nbsp; while(statRet!= kStatus_DSPI_Success ){ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (transfStart == 0){printf("\r\nTransfer started...");} &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; transfStart = 1; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; statRet = DSPI_DRV_MasterGetTransferStatus(SPI_instance, &amp;amp;framesComplete);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //de- initialize the SPI module &amp;nbsp;&amp;nbsp;&amp;nbsp; DSPI_DRV_MasterDeinit(SPI_instance);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (statRet != kStatus_DSPI_Success) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\nSPI communication failed, error code: %d", statRet); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\n... SPI Test Concluded.");&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Jan 2015 00:53:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/SPI-with-FRDM-K22F/m-p/382971#M1024</guid>
      <dc:creator>coopertrooper</dc:creator>
      <dc:date>2015-01-28T00:53:55Z</dc:date>
    </item>
    <item>
      <title>Re: SPI with FRDM K22F</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/SPI-with-FRDM-K22F/m-p/382972#M1025</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Christian Caicedo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have only one twr-k22F board and one FRDM-K22 board on my side.&lt;/P&gt;&lt;P&gt;So, I've created a SPI Master project for TWR-K22F and a SPI Slave project for FRDM-K22.&lt;/P&gt;&lt;P&gt;The master SPI will sent strings in main loop while slave SPI will receive the string.&lt;/P&gt;&lt;P&gt;These projects work on my side.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;could you please try it on your side?&lt;/P&gt;&lt;P&gt;(in these two projects, I use different SPI pins than that of yours, you can modify it by just change the SPI module settings in Processor Expert SPI module, I'm using KDS on my side)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Jan 2015 07:16:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/SPI-with-FRDM-K22F/m-p/382972#M1025</guid>
      <dc:creator>Rick_Li</dc:creator>
      <dc:date>2015-01-30T07:16:29Z</dc:date>
    </item>
    <item>
      <title>Re: SPI with FRDM K22F</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/SPI-with-FRDM-K22F/m-p/382973#M1026</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Yong,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for getting back to me. I will get back to this particular issue in a couple of days.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Feb 2015 18:33:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/SPI-with-FRDM-K22F/m-p/382973#M1026</guid>
      <dc:creator>coopertrooper</dc:creator>
      <dc:date>2015-02-02T18:33:31Z</dc:date>
    </item>
    <item>
      <title>Re: SPI with FRDM K22F</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/SPI-with-FRDM-K22F/m-p/382974#M1027</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Yong, I'd llike to try your FRDM-K22F SPI slave code to resolve my SPI CS stuck issue.&amp;nbsp; But while trying in KDS to import as archive file, it says the frdmk22spiSlave.zip is not a valid Zip file.&amp;nbsp; Please help.&amp;nbsp; Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 21 Feb 2015 08:51:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/SPI-with-FRDM-K22F/m-p/382974#M1027</guid>
      <dc:creator>josephchamdani</dc:creator>
      <dc:date>2015-02-21T08:51:30Z</dc:date>
    </item>
  </channel>
</rss>

