<?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 Using PCS1/2/3 on SPI0 - K64F Board in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-PCS1-2-3-on-SPI0-K64F-Board/m-p/470565#M3765</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;I have a sensor that gives readings to the controller via SPI. It's working fine when I am using SPI0_PCS0, but I need more Chip Selects for multiple sensors, which gives me trouble.&lt;/P&gt;&lt;P&gt;I am using the SPI0, in my slightly altered KSDK dspi loopback example.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In main.c there is the masterUserConfig, that selects the Peripheral Chip Select (,of which SPI0 has 5, apparantly). It looks like this:&lt;/P&gt;&lt;P&gt;dspi_master_user_config_t masterUserConfig = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .isChipSelectContinuous&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .isSckContinuous&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .pcsPolarity&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = kDspiPcs_ActiveLow,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .whichCtar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = kDspiCtar0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .whichPcs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = kDspiPcs0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now I would assume, that changing kDspiPcs0 to kDspiPcs1 for example changes the used chip select and there is also the appropriate enum.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Next, I have to set the pin mux of the pinout, that is SPI0_PCS1. I found an excel sheet that lists all the different mux options for the K64F Board.&lt;/P&gt;&lt;P&gt;In the init, there is the command&lt;/P&gt;&lt;P&gt;PORT_HAL_SetMuxMode(PORTD,0u,kPortMuxAlt2);&lt;/P&gt;&lt;P&gt;which works fine and sets the mux mode of PortD0 to SPI0_PCS0.&lt;/P&gt;&lt;P&gt;When I insert&lt;/P&gt;&lt;P&gt;PORT_HAL_SetMuxMode(PORTC,3u,kPortMuxAlt2);&lt;/P&gt;&lt;P&gt;in my main or in the spi_configure function, which should activate the SPI0_PCS1 on PORTC3, without even changing anything else in the otherwise working code. The program doesn't run.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After this lengthy explanation, my question is:&lt;/P&gt;&lt;P&gt;Why doesn't this work as expected? Are not all mux modes on the processor available on the K64F Board?&lt;/P&gt;&lt;P&gt;Or do I miss something else?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would assume it should be possible to communicate with multiple slaves with the SPI0 in master mode.&lt;/P&gt;&lt;P&gt;Best regards, any information helps,&lt;/P&gt;&lt;P&gt;Michael&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 22 Apr 2016 13:01:32 GMT</pubDate>
    <dc:creator>michaelkoller</dc:creator>
    <dc:date>2016-04-22T13:01:32Z</dc:date>
    <item>
      <title>Using PCS1/2/3 on SPI0 - K64F Board</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-PCS1-2-3-on-SPI0-K64F-Board/m-p/470565#M3765</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;I have a sensor that gives readings to the controller via SPI. It's working fine when I am using SPI0_PCS0, but I need more Chip Selects for multiple sensors, which gives me trouble.&lt;/P&gt;&lt;P&gt;I am using the SPI0, in my slightly altered KSDK dspi loopback example.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In main.c there is the masterUserConfig, that selects the Peripheral Chip Select (,of which SPI0 has 5, apparantly). It looks like this:&lt;/P&gt;&lt;P&gt;dspi_master_user_config_t masterUserConfig = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .isChipSelectContinuous&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .isSckContinuous&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .pcsPolarity&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = kDspiPcs_ActiveLow,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .whichCtar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = kDspiCtar0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .whichPcs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = kDspiPcs0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now I would assume, that changing kDspiPcs0 to kDspiPcs1 for example changes the used chip select and there is also the appropriate enum.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Next, I have to set the pin mux of the pinout, that is SPI0_PCS1. I found an excel sheet that lists all the different mux options for the K64F Board.&lt;/P&gt;&lt;P&gt;In the init, there is the command&lt;/P&gt;&lt;P&gt;PORT_HAL_SetMuxMode(PORTD,0u,kPortMuxAlt2);&lt;/P&gt;&lt;P&gt;which works fine and sets the mux mode of PortD0 to SPI0_PCS0.&lt;/P&gt;&lt;P&gt;When I insert&lt;/P&gt;&lt;P&gt;PORT_HAL_SetMuxMode(PORTC,3u,kPortMuxAlt2);&lt;/P&gt;&lt;P&gt;in my main or in the spi_configure function, which should activate the SPI0_PCS1 on PORTC3, without even changing anything else in the otherwise working code. The program doesn't run.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After this lengthy explanation, my question is:&lt;/P&gt;&lt;P&gt;Why doesn't this work as expected? Are not all mux modes on the processor available on the K64F Board?&lt;/P&gt;&lt;P&gt;Or do I miss something else?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would assume it should be possible to communicate with multiple slaves with the SPI0 in master mode.&lt;/P&gt;&lt;P&gt;Best regards, any information helps,&lt;/P&gt;&lt;P&gt;Michael&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Apr 2016 13:01:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-PCS1-2-3-on-SPI0-K64F-Board/m-p/470565#M3765</guid>
      <dc:creator>michaelkoller</dc:creator>
      <dc:date>2016-04-22T13:01:32Z</dc:date>
    </item>
    <item>
      <title>Re: Using PCS1/2/3 on SPI0 - K64F Board</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-PCS1-2-3-on-SPI0-K64F-Board/m-p/470566#M3766</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Michael,&lt;/P&gt;&lt;P&gt;Firstly, for the macro&amp;nbsp; PORT_HAL_SetMuxMode(PORTC,3u,kPortMuxAlt2);, you have to enable the PORTC gated clock in SIM_SCGC5 register before you call the macro.&lt;/P&gt;&lt;P&gt;I think it is okay that you use the same SPI0 module to select multiple slave spi devices with different PCSx. From hardware perspective, the SPIx_PUSHR register includes the PCS index, when you write all 32 bits register which includes PCS index, the corresponding PCS pin will be valid when the SPI transfer data.&lt;/P&gt;&lt;P&gt;If you call the KSDK function, you can define multiple dspi_master_user_config_t masterUserConfig, for example:&lt;/P&gt;&lt;P&gt;dspi_master_user_config_t masterUserConfig0 with .whichPcs = kDspiPcs0&lt;/P&gt;&lt;P&gt; dspi_master_user_config_t masterUserConfig1 with .whichPcs = kDspiPcs1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you switch the PCSx, you have call the DSPI_DRV_MasterInit() with the new masterUserConfigx structure. Before you call the function, you have to configure the corresponding PCSx as PCS function as you have done.&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;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Apr 2016 08:22:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-PCS1-2-3-on-SPI0-K64F-Board/m-p/470566#M3766</guid>
      <dc:creator>xiangjunrong</dc:creator>
      <dc:date>2016-04-26T08:22:55Z</dc:date>
    </item>
    <item>
      <title>Re: Using PCS1/2/3 on SPI0 - K64F Board</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-PCS1-2-3-on-SPI0-K64F-Board/m-p/470567#M3767</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for the great explanation! It works now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Michael&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Apr 2016 09:25:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Using-PCS1-2-3-on-SPI0-K64F-Board/m-p/470567#M3767</guid>
      <dc:creator>michaelkoller</dc:creator>
      <dc:date>2016-04-27T09:25:15Z</dc:date>
    </item>
  </channel>
</rss>

