<?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 Can K26 perform hardware CRC within its DMA engine? in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475524#M28909</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is it possible to perform a CRC within the DMA engine of an SPI read on the K26 or similar Kinetis MCU?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I currently use the KSDK to issue a `&lt;SPAN style="font-family: 'courier new', courier;"&gt;DSPI_DRV_EdmaMasterTransfer()&lt;/SPAN&gt;` followed by a `&lt;SPAN style="font-family: 'courier new', courier;"&gt;CRC_DRV_GetCrcBlock()&lt;/SPAN&gt;` to validate the data. It would be ideal if the KSDK `&lt;SPAN style="font-family: 'courier new', courier;"&gt;DSPI_DRV_EdmaMasterGetTransferStatus()&lt;/SPAN&gt;` could be augmented to return not only the number of frames transferred but also a CRC result. i.e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;dspi_status_t DSPI_DRV_EdmaMasterGetTransferStatus(uint32_t instance, uint32_t * framesTransferred, &lt;SPAN style="text-decoration: underline;"&gt;&lt;SPAN style="color: #303030; text-decoration: underline;"&gt;uint16_t * crcResult&lt;/SPAN&gt;&lt;/SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have read through the &lt;A href="http://cache.nxp.com/files/32bit/doc/ref_manual/K26P169M180SF5RM.pdf?fpsp=1&amp;amp;WT_TYPE=Reference%20Manuals&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;fileExt=.pdf"&gt;K26 reference manual&lt;/A&gt; but could not find a configuration option for the DMA engine or a way to feed the output of a DMA transfer through the CRC data register.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is this possible? Does the ARM Kinetis support this optimization? I am more than happy to add support for this to the KSDK drivers as necessary.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the advice.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 07 Jan 2016 20:25:57 GMT</pubDate>
    <dc:creator>lucasrangit</dc:creator>
    <dc:date>2016-01-07T20:25:57Z</dc:date>
    <item>
      <title>Can K26 perform hardware CRC within its DMA engine?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475524#M28909</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is it possible to perform a CRC within the DMA engine of an SPI read on the K26 or similar Kinetis MCU?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I currently use the KSDK to issue a `&lt;SPAN style="font-family: 'courier new', courier;"&gt;DSPI_DRV_EdmaMasterTransfer()&lt;/SPAN&gt;` followed by a `&lt;SPAN style="font-family: 'courier new', courier;"&gt;CRC_DRV_GetCrcBlock()&lt;/SPAN&gt;` to validate the data. It would be ideal if the KSDK `&lt;SPAN style="font-family: 'courier new', courier;"&gt;DSPI_DRV_EdmaMasterGetTransferStatus()&lt;/SPAN&gt;` could be augmented to return not only the number of frames transferred but also a CRC result. i.e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;dspi_status_t DSPI_DRV_EdmaMasterGetTransferStatus(uint32_t instance, uint32_t * framesTransferred, &lt;SPAN style="text-decoration: underline;"&gt;&lt;SPAN style="color: #303030; text-decoration: underline;"&gt;uint16_t * crcResult&lt;/SPAN&gt;&lt;/SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have read through the &lt;A href="http://cache.nxp.com/files/32bit/doc/ref_manual/K26P169M180SF5RM.pdf?fpsp=1&amp;amp;WT_TYPE=Reference%20Manuals&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;fileExt=.pdf"&gt;K26 reference manual&lt;/A&gt; but could not find a configuration option for the DMA engine or a way to feed the output of a DMA transfer through the CRC data register.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is this possible? Does the ARM Kinetis support this optimization? I am more than happy to add support for this to the KSDK drivers as necessary.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the advice.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jan 2016 20:25:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475524#M28909</guid>
      <dc:creator>lucasrangit</dc:creator>
      <dc:date>2016-01-07T20:25:57Z</dc:date>
    </item>
    <item>
      <title>Re: Can K26 perform hardware CRC within its DMA engine?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475525#M28910</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Lucas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am sorry to tell you that there are no such functions in KSDK1.3 and KSDK2.0(not released yet).&lt;/P&gt;&lt;P&gt;The DMA can &lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;transfer &lt;/SPAN&gt;spi data into the receiveBuffer , but the DMA can't transfer the spi data into CRC module at the same time.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;You need &lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;transfer the receiveBuffer into CRC module manually , for example using &lt;SPAN style="color: #51626f; font-family: 'courier new', courier;"&gt;CRC_DRV_GetCrcBlock.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Best Regard&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Robin&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jan 2016 08:49:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475525#M28910</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2016-01-13T08:49:30Z</dc:date>
    </item>
    <item>
      <title>Re: Can K26 perform hardware CRC within its DMA engine?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475526#M28911</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lucas.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can do this by chaining 2 DMA channels together. The first DMA channel is set up to transfer the data from the SPI to a reception buffer. This DMA transfer then triggers the chained DMA channel to copy the data from the reception buffer into the CRC generator.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Norm Davies&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jan 2016 15:06:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475526#M28911</guid>
      <dc:creator>ndavies</dc:creator>
      <dc:date>2016-01-13T15:06:42Z</dc:date>
    </item>
    <item>
      <title>Re: Can K26 perform hardware CRC within its DMA engine?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475527#M28912</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/ndavies"&gt;ndavies&lt;/A&gt;​​! I'll try that once I figure out how to link two DMA channels using the KSDK&lt;SPAN style="line-height: 1.5;"&gt;. I ran into some issues and posted a question to &lt;/SPAN&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-329546#comment-33681" style="line-height: 1.5;" title="https://community.freescale.com/docs/DOC-329546#comment-33681"&gt;https://community.freescale.com/docs/DOC-329546#comment-33681&lt;/A&gt;&lt;SPAN style="line-height: 1.5;"&gt;​ . After that I will add the code to configure the CRC engine with the destination address of the chained DMA transfer and report back.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jan 2016 19:30:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475527#M28912</guid>
      <dc:creator>lucasrangit</dc:creator>
      <dc:date>2016-01-14T19:30:21Z</dc:date>
    </item>
    <item>
      <title>Re: Can K26 perform hardware CRC within its DMA engine?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475528#M28913</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry, I can't help you with the SDK side of it. We're not using the SDK. I just wanted to point out that the hardware is capable of doing what you need. You'll probably have to write additional SDK compatible code to get it to work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have an in-house designed peripheral that needs 5 DMA channels all chained together. It's needed to provide timing, command processing, intensive data IO transfers and CRC generation. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There's an app Note on using the ADC with chained DMA channels that may help you with the DMA chaining. It's where I started when I needed to get my peripheral up. AN4590.pdf "Using DMA to Emulate ADCFlexible Scan Mode on Kinetis KSeries"&lt;/P&gt;&lt;P&gt;&lt;A href="http://cache.nxp.com/files/32bit/doc/app_note/AN4590.pdf?fpsp=1&amp;amp;WT_TYPE=Application"&gt;http://cache.nxp.com/files/32bit/doc/app_note/AN4590.pdf?fpsp=1&amp;amp;WT_TYPE=Application&lt;/A&gt; Notes&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;fileExt=.pdf&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jan 2016 20:00:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Can-K26-perform-hardware-CRC-within-its-DMA-engine/m-p/475528#M28913</guid>
      <dc:creator>ndavies</dc:creator>
      <dc:date>2016-01-14T20:00:34Z</dc:date>
    </item>
  </channel>
</rss>

