<?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>S12 / MagniV MicrocontrollersのトピックRe: SPI bidirectional</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SPI-bidirectional/m-p/168666#M5548</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Travis,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;The communications protocol for the FOST02 device is not directly compatible with the SPI module, particularly with respect to the special transmission start sequence, and the need to monitor the data line for the completion of the measurement, before data can be returned.&amp;nbsp; It will probably be simpler to "bit-bang" the whole&amp;nbsp;transmission sequence, using GPIO.&amp;nbsp; This will avoid the need to frequently enable and disable the SPI module, with possible side effects.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 30 Nov 2007 10:44:21 GMT</pubDate>
    <dc:creator>bigmac</dc:creator>
    <dc:date>2007-11-30T10:44:21Z</dc:date>
    <item>
      <title>SPI bidirectional</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SPI-bidirectional/m-p/168665#M5547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm trying to understand how SPI works in bidirectional mode using this temp sensor&amp;nbsp; &lt;/SPAN&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.futurlec.com%2FFOST02.shtml" rel="nofollow" target="_blank"&gt;http://www.futurlec.com/FOST02.shtml&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem I think is starting a transmission which requires the data line low on a upper SCK and data line high on the upper part of the next pulse SCK.&amp;nbsp; I can see it sending on a scope, and possiably an ack returned, but I'm not sure.&amp;nbsp; Anything other than that I don't get anything back from the sensor.&amp;nbsp; Somes it looks like I get back whatever I put in.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;here is what I have code wise so far.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void initSPI0(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; SPI0CR1 = 0x58;&amp;nbsp; //set as master and enable SPI&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //and SPTIE(SPI transmit interrupt enable)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; SPI0CR2 = 0x0B;&amp;nbsp; //sets bidirectional mode, stop in wait mode, and serial pin control bit(enables bidirectional)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; SPI0BR&amp;nbsp; = 0x77;&amp;nbsp; //baud rate; 77 is the slowest baud rate at 12.21kHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; WOMS&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00;&amp;nbsp; // pull up pins?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void getTemp(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; SPI0CR2_BIDIROE = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //initalize transmission start&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!(SPI0SR &amp;amp; SPI0SR_SPTEF_MASK)); /* wait until write is permissible */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0DR = 0xFA;&amp;nbsp;&amp;nbsp; /* output the byte to the SPI */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //send temperature measurement command&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!(SPI0SR &amp;amp; SPI0SR_SPTEF_MASK)); /* wait until write is permissible */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0DR = 0x03;&amp;nbsp;&amp;nbsp; /* output the byte to the SPI */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //clears SPIF flag&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!(SPI0SR &amp;amp; SPI0SR_SPIF_MASK));&amp;nbsp; /* wait until write operation is complete */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cx = SPI0DR;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* clear SPIF flag */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; SPI0CR2_BIDIROE = 0;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //recieve first byte&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!(SPI0SR &amp;amp; SPI0SR_SPTEF_MASK)); /* wait until write is permissible */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0DR = 0x00; /* trigger 8 SCK pulses to shift in data */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!(SPI0SR &amp;amp; SPI0SR_SPIF_MASK));&amp;nbsp; /* wait until a byte has been shifted in */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; high = SPI0DR; /* return the character and clear SPIF flag */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Travis&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2007 01:16:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SPI-bidirectional/m-p/168665#M5547</guid>
      <dc:creator>trav</dc:creator>
      <dc:date>2007-11-30T01:16:44Z</dc:date>
    </item>
    <item>
      <title>Re: SPI bidirectional</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SPI-bidirectional/m-p/168666#M5548</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Travis,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;The communications protocol for the FOST02 device is not directly compatible with the SPI module, particularly with respect to the special transmission start sequence, and the need to monitor the data line for the completion of the measurement, before data can be returned.&amp;nbsp; It will probably be simpler to "bit-bang" the whole&amp;nbsp;transmission sequence, using GPIO.&amp;nbsp; This will avoid the need to frequently enable and disable the SPI module, with possible side effects.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2007 10:44:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SPI-bidirectional/m-p/168666#M5548</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2007-11-30T10:44:21Z</dc:date>
    </item>
    <item>
      <title>Re: SPI bidirectional</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SPI-bidirectional/m-p/168667#M5549</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;After some thought, and much reading on SPI it did seem that it was not compatible.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt; This being the first SPI I’ve ever tried, I was at a lost.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt; I asked my teacher to help me out on it, but he hasn’t had time to look at it.&lt;/P&gt;&lt;P&gt;Thanks for the help!&lt;/P&gt;&lt;P&gt;Travis&lt;/P&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2007 14:23:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SPI-bidirectional/m-p/168667#M5549</guid>
      <dc:creator>trav</dc:creator>
      <dc:date>2007-11-30T14:23:45Z</dc:date>
    </item>
  </channel>
</rss>

