<?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のトピックe8011 eDMA errata workaround</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867006#M51752</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;In a K02F based product there have been complication due to the e8011 eDMA errata and the workaround has not yet proved to be successful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DMA Channel 0 is used for memory to memory transfers&lt;BR /&gt;DMA Channel 1 or UART0 Tx operation&lt;BR /&gt;DMA Channel 2 or UART1 Tx operation&lt;BR /&gt;&lt;BR /&gt;With high activity the channel 0 failed occasionally with three main failure types:&lt;BR /&gt;1. The destination pointer would be corrupted (for example it would take one of the UART's pointers) and a channel error flag is set&lt;BR /&gt;2. A configuration error is signaled although the configuration problem is not visible&lt;BR /&gt;3. No error is signaled but the DONE bit is never set&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After applying the workaround where the &lt;SPAN style="left: 230.37px; top: 673.24px; font-size: 16.6667px; font-family: sans-serif; transform: scaleX(1);"&gt;SADDR, DADDR, and NBYTES are checked and re-written if not read back identically the first two failure types are eliminated but the third type still occurs.&lt;BR /&gt;If DMA operation is not used on the UARTs there are no further issues (and the memory to memory transfers are reliable).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="left: 230.37px; top: 673.24px; font-size: 16.6667px; font-family: sans-serif; transform: scaleX(1);"&gt;This gives the following two questions:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="left: 230.37px; top: 673.24px; font-size: 16.6667px; font-family: sans-serif; transform: scaleX(1);"&gt;1. Why doesn't the particular workaround solve the third error type?&lt;BR /&gt;2. Is there reference code as to the typical workaround for verification?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="left: 230.37px; top: 673.24px; font-size: 16.6667px; font-family: sans-serif; transform: scaleX(1);"&gt;The second potential workaround hasn't been tried yet since it is not fully clear:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00268); top: 813.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;1) Halt the DMA via the HALT bit or by disabling each channel.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00281); top: 843.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;2) Verify DMA is inactive via the ACTIVE bit.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00139); top: 873.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;3) Write the TCD information.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;4) Re-enable the DMA (clear the HALT bit or enable each channel).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;Questions:&lt;BR /&gt;- to 2) There is an active bit for each channel - does each channel need to be checked for activity and what needs to be done if it is active? Wait until it no longer signals activity?&lt;BR /&gt;- to 4) Should the new DMA transfer be enabled before or after this step?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;Thanks in advance&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;Regards&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;Mark&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 29 Mar 2019 13:06:41 GMT</pubDate>
    <dc:creator>mjbcswitzerland</dc:creator>
    <dc:date>2019-03-29T13:06:41Z</dc:date>
    <item>
      <title>e8011 eDMA errata workaround</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867006#M51752</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;In a K02F based product there have been complication due to the e8011 eDMA errata and the workaround has not yet proved to be successful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DMA Channel 0 is used for memory to memory transfers&lt;BR /&gt;DMA Channel 1 or UART0 Tx operation&lt;BR /&gt;DMA Channel 2 or UART1 Tx operation&lt;BR /&gt;&lt;BR /&gt;With high activity the channel 0 failed occasionally with three main failure types:&lt;BR /&gt;1. The destination pointer would be corrupted (for example it would take one of the UART's pointers) and a channel error flag is set&lt;BR /&gt;2. A configuration error is signaled although the configuration problem is not visible&lt;BR /&gt;3. No error is signaled but the DONE bit is never set&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After applying the workaround where the &lt;SPAN style="left: 230.37px; top: 673.24px; font-size: 16.6667px; font-family: sans-serif; transform: scaleX(1);"&gt;SADDR, DADDR, and NBYTES are checked and re-written if not read back identically the first two failure types are eliminated but the third type still occurs.&lt;BR /&gt;If DMA operation is not used on the UARTs there are no further issues (and the memory to memory transfers are reliable).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="left: 230.37px; top: 673.24px; font-size: 16.6667px; font-family: sans-serif; transform: scaleX(1);"&gt;This gives the following two questions:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="left: 230.37px; top: 673.24px; font-size: 16.6667px; font-family: sans-serif; transform: scaleX(1);"&gt;1. Why doesn't the particular workaround solve the third error type?&lt;BR /&gt;2. Is there reference code as to the typical workaround for verification?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="left: 230.37px; top: 673.24px; font-size: 16.6667px; font-family: sans-serif; transform: scaleX(1);"&gt;The second potential workaround hasn't been tried yet since it is not fully clear:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00268); top: 813.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;1) Halt the DMA via the HALT bit or by disabling each channel.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00281); top: 843.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;2) Verify DMA is inactive via the ACTIVE bit.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00139); top: 873.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;3) Write the TCD information.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;4) Re-enable the DMA (clear the HALT bit or enable each channel).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;Questions:&lt;BR /&gt;- to 2) There is an active bit for each channel - does each channel need to be checked for activity and what needs to be done if it is active? Wait until it no longer signals activity?&lt;BR /&gt;- to 4) Should the new DMA transfer be enabled before or after this step?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;Thanks in advance&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;Regards&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="transform: scaleX(1.00249); top: 903.24px; left: 230.37px; font-size: 16.6667px; font-family: sans-serif; "&gt;Mark&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Mar 2019 13:06:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867006#M51752</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2019-03-29T13:06:41Z</dc:date>
    </item>
    <item>
      <title>Re: e8011 eDMA errata workaround</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867007#M51753</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;The product development is using both K02F and K12 parts as alternative devices for supply chain purposes and the same code runs on both.&lt;BR /&gt;However the K02F based parts suffer from reliability problems due to the errata, and the errata workaround hasn't proved successful yet.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Can NXP help out since this is not normal code development but needs some insider knowledge to solve.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Apr 2019 02:44:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867007#M51753</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2019-04-05T02:44:46Z</dc:date>
    </item>
    <item>
      <title>Re: e8011 eDMA errata workaround</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867008#M51754</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark,&lt;/P&gt;&lt;P&gt;Sorry for my late reply!&lt;BR /&gt;I will consult our internal team.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Robin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Apr 2019 02:27:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867008#M51754</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2019-04-10T02:27:14Z</dc:date>
    </item>
    <item>
      <title>Re: e8011 eDMA errata workaround</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867009#M51755</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Design team thinks that&amp;nbsp;the only solution is this section:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Ensure that the eDMA is idle before writing TCD values by following this procedure:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;1) Halt the DMA via the HALT bit or by disabling each channel.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;2) Verify DMA is inactive via the ACTIVE bit.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;3) Write the TCD information.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;4) Re-enable the DMA (clear the HALT bit or enable each channel).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;More specifically:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL style="margin-top: 0in;"&gt;&lt;LI&gt;Halt the DMA via the control register&lt;/LI&gt;&lt;LI&gt;Read each TCD word7 bit 6 ACTIVE should be 0 (if not 0 wait for ALL channels to show not active)&lt;/LI&gt;&lt;LI&gt;Write each channel’s TCD&lt;/LI&gt;&lt;LI&gt;Write each channel’s start bit in TCD – word 7 bit0 = 1&lt;/LI&gt;&lt;LI&gt;Clear the halt bit in the control register&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The second solution in the errata is not robust.&amp;nbsp; This has been fixed in future versions of the DMA.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Apr 2019 09:11:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867009#M51755</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2019-04-26T09:11:14Z</dc:date>
    </item>
    <item>
      <title>Re: e8011 eDMA errata workaround</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867010#M51756</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Robin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We will try the alternative workaround.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Apr 2019 16:16:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/e8011-eDMA-errata-workaround/m-p/867010#M51756</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2019-04-29T16:16:39Z</dc:date>
    </item>
  </channel>
</rss>

