<?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>Kinetis MicrocontrollersのトピックK64: SPI Rx FIFO not available in DMA mode?</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-Rx-FIFO-not-available-in-DMA-mode/m-p/629116#M37818</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm stress testing an Ethernet to Serial converter, mostly it works well, but when receiving larger Ethernet frames (bursts of&amp;nbsp;frames)&amp;nbsp;while also receiving SPI Rx data (that are being unloaded via DMA) I am getting SPI Overrun errors occasionally. &lt;/P&gt;&lt;P&gt;Ethernet is 100 mbps, SPI Rx is 2 mbps. As Ethernet frame size is reduced the SPI overrun&amp;nbsp;problem reduces. With a very much slower SPI (300 kbps) speed there is no problem at any Ethernet Frame size.&lt;/P&gt;&lt;P&gt;My presumption is the MAC transfer into RAM is consuming too much bandwidth and I'm running almost flat out now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So my latest test was to play with the SPI Rx FIFO disable setting - to my surprise it did not impact the overrun errors either way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm looking for confirmation that &lt;SPAN style="text-decoration: underline;"&gt;in DMA mode&lt;/SPAN&gt; the SPI &lt;SPAN style="text-decoration: underline;"&gt;does not use&lt;/SPAN&gt; its FIFO.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(I need to convince the hardware folks to change the module to not use the SPI.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Much appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Doug&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Mar 2017 13:31:02 GMT</pubDate>
    <dc:creator>dougprice</dc:creator>
    <dc:date>2017-03-28T13:31:02Z</dc:date>
    <item>
      <title>K64: SPI Rx FIFO not available in DMA mode?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-Rx-FIFO-not-available-in-DMA-mode/m-p/629116#M37818</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm stress testing an Ethernet to Serial converter, mostly it works well, but when receiving larger Ethernet frames (bursts of&amp;nbsp;frames)&amp;nbsp;while also receiving SPI Rx data (that are being unloaded via DMA) I am getting SPI Overrun errors occasionally. &lt;/P&gt;&lt;P&gt;Ethernet is 100 mbps, SPI Rx is 2 mbps. As Ethernet frame size is reduced the SPI overrun&amp;nbsp;problem reduces. With a very much slower SPI (300 kbps) speed there is no problem at any Ethernet Frame size.&lt;/P&gt;&lt;P&gt;My presumption is the MAC transfer into RAM is consuming too much bandwidth and I'm running almost flat out now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So my latest test was to play with the SPI Rx FIFO disable setting - to my surprise it did not impact the overrun errors either way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm looking for confirmation that &lt;SPAN style="text-decoration: underline;"&gt;in DMA mode&lt;/SPAN&gt; the SPI &lt;SPAN style="text-decoration: underline;"&gt;does not use&lt;/SPAN&gt; its FIFO.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(I need to convince the hardware folks to change the module to not use the SPI.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Much appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Doug&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Mar 2017 13:31:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-Rx-FIFO-not-available-in-DMA-mode/m-p/629116#M37818</guid>
      <dc:creator>dougprice</dc:creator>
      <dc:date>2017-03-28T13:31:02Z</dc:date>
    </item>
    <item>
      <title>Re: K64: SPI Rx FIFO not available in DMA mode?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-Rx-FIFO-not-available-in-DMA-mode/m-p/629117#M37819</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Doug Price&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to the Reference Manual for K64F, there isn't anything that could indicate that Rx FIFO is not available when using DMA. Actually the RFDF_DIRS bit in the RSER selects whether a DMA request or an interrupt request is generated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are you using SDK drivers in your project? Also, please verify that you are not setting DIS_RXF in SPIx_MCR register, this bit disable receive FIFO, and the receive part of the module operates as a simplified double-buffered SPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;P&gt;Jorge Alcala&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Apr 2017 17:24:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-Rx-FIFO-not-available-in-DMA-mode/m-p/629117#M37819</guid>
      <dc:creator>jorge_a_vazquez</dc:creator>
      <dc:date>2017-04-11T17:24:14Z</dc:date>
    </item>
    <item>
      <title>Re: K64: SPI Rx FIFO not available in DMA mode?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-Rx-FIFO-not-available-in-DMA-mode/m-p/629118#M37820</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jorge Alcala&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My code is based on Processor Expert drivers. DIS_RXF has no effect either way, although TX operations are impacted by its FIFO disable bit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, I did confirm my suspicion.&amp;nbsp; I cascaded a second DMA (onto the one doing the SPI offloading) to&amp;nbsp;toggle a diagnostic pin using the very cool port toggle register&amp;nbsp;so I was able to monitor my incoming data pattern and see when the SPI was being unloaded. I set a break point and began testing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sure enough an SPI Overrun interrupt triggered, there was a nasty gap just over 9 bytes long at which time only 2 transfers occurred in quick succession (I'm guessing the data register and the shift register) but if the FIFO was connected I'd have gotten 4 or 5 transfers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Something of an undocumented feature I'd say.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But thanks for your comments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Doug&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Apr 2017 20:37:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-Rx-FIFO-not-available-in-DMA-mode/m-p/629118#M37820</guid>
      <dc:creator>dougprice</dc:creator>
      <dc:date>2017-04-12T20:37:16Z</dc:date>
    </item>
  </channel>
</rss>

