<?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>MQX Software SolutionsのトピックRe: MQX: How SPI driver Tx/Rx questions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-How-SPI-driver-Tx-Rx-questions/m-p/359002#M11726</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check the below thread and let me know if this helps!!!&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/331576"&gt;migrating SPI driver to MQX&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt; Sol &lt;BR /&gt; &lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 01 Apr 2015 21:02:42 GMT</pubDate>
    <dc:creator>soledad</dc:creator>
    <dc:date>2015-04-01T21:02:42Z</dc:date>
    <item>
      <title>MQX: How SPI driver Tx/Rx questions</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-How-SPI-driver-Tx-Rx-questions/m-p/359001#M11725</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I just upgraded my SPI driver to MQX4.1.1 from legacy SPI driver from MQX3.8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I debugging through the failure when calling function fread() in my application, I noticed that function _dspi_tx_rx() inside spi_dspi.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="color: #ff0000;"&gt; data = dspi_info_ptr-&amp;gt;&lt;/SPAN&gt;DUMMY_PATTERN;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx_len = tx_len = len;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Optimized loop for single byte frames */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (rx_len)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (tx_len) {&lt;BR /&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; if ((dspi_ptr-&amp;gt;SR &amp;amp; DSPI_SR_TFFF_MASK) &amp;amp;&amp;amp; ((rx_len-tx_len)&amp;lt;&lt;SPAN style="color: #ff0000;"&gt;DSPI_FIFO_DEPTH&lt;/SPAN&gt;))&lt;BR /&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; {&lt;BR /&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;&amp;nbsp; if (txbuf)&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = *txbuf++;&lt;BR /&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;&amp;nbsp; dspi_ptr-&amp;gt;PUSHR = DSPI_PUSHR_TXDATA(data);&lt;BR /&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;&amp;nbsp; dspi_ptr-&amp;gt;SR = DSPI_SR_TFFF_MASK;&lt;BR /&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;&amp;nbsp; tx_len--;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The &lt;SPAN style="color: #ff0000;"&gt;data&lt;/SPAN&gt; above is supposed to hold the dummy pattern to be sent out when fread() is called. However, it is never used in this function. &lt;STRONG&gt;Can someone tell me why and how to make dummy pattern work?&lt;/STRONG&gt; Actually fread() will call _io_spi_read_write(fd_ptr, &lt;SPAN style="color: #ff0000;"&gt;NULL&lt;/SPAN&gt;, data_ptr, n); in which Tx buffer is set to NULL and in this function:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if ((&lt;SPAN style="color: #ff0000;"&gt;wrbuf == NULL&lt;/SPAN&gt;) &amp;amp;&amp;amp; (dev_data-&amp;gt;FLAGS &amp;amp; SPI_FLAG_FULL_DUPLEX))&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;wrbuf = rdbuf;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wrbuf is made share same buffer with rdbuf. Seems like &lt;STRONG&gt;half-duplex in MQX3.8 is not supported anymore&lt;/STRONG&gt; (by _dspi_polled_rx())?.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In addition, no matter what value I set to &lt;SPAN style="color: #ff0000;"&gt;DSPI_FIFO_DEPTH,&lt;SPAN style="color: #000000;"&gt; I can't get ISR to run. The code in _dspi_tx_rx() simply works in polling mode. &lt;STRONG&gt;How can I enable interrupt mode?&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;Thanks!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;Hui&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Mar 2015 23:22:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-How-SPI-driver-Tx-Rx-questions/m-p/359001#M11725</guid>
      <dc:creator>huishao2</dc:creator>
      <dc:date>2015-03-27T23:22:57Z</dc:date>
    </item>
    <item>
      <title>Re: MQX: How SPI driver Tx/Rx questions</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-How-SPI-driver-Tx-Rx-questions/m-p/359002#M11726</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check the below thread and let me know if this helps!!!&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/331576"&gt;migrating SPI driver to MQX&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt; Sol &lt;BR /&gt; &lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Apr 2015 21:02:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-How-SPI-driver-Tx-Rx-questions/m-p/359002#M11726</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2015-04-01T21:02:42Z</dc:date>
    </item>
    <item>
      <title>Re: MQX: How SPI driver Tx/Rx questions</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-How-SPI-driver-Tx-Rx-questions/m-p/359003#M11727</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp; Sol&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the link above. The interrupt I am looking at are the ones within SPI driver and they should have been properly installed &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static _mqx_int _dspi_init ( )&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;for (i=0; i&amp;lt;dspi_info_ptr-&amp;gt;NUM_VECTORS; i++)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;_int_install_isr(vectors[i], _dspi_isr, dspi_info_ptr);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;_bsp_int_init((PSP_INTERRUPT_TABLE_INDEX)vectors[i], BSP_DSPI_INT_LEVEL, 0, TRUE);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Seems like the ISR is called only under condition where (rx_len-tx_len) greater or equal DSPI_FIFO_DEPTH?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Besides, how to make the DUMMY_PATTERN work? I can't find anywhere it is set to SPI hardware.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Apr 2015 21:28:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX-How-SPI-driver-Tx-Rx-questions/m-p/359003#M11727</guid>
      <dc:creator>huishao2</dc:creator>
      <dc:date>2015-04-01T21:28:31Z</dc:date>
    </item>
  </channel>
</rss>

