<?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 Re: SDK Bug in MMC code with DDR device in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/SDK-Bug-in-MMC-code-with-DDR-device/m-p/904995#M36274</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much for the valuable information, I agree with you that this is a bug in the SDK code,&amp;nbsp; your recommendation seems fine to me,&amp;nbsp; I am going to pass down your feedback to our developers, so they can take care in the next release of the SDK. Again thank you for your collaboration.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Sol&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 14 May 2019 17:23:33 GMT</pubDate>
    <dc:creator>soledad</dc:creator>
    <dc:date>2019-05-14T17:23:33Z</dc:date>
    <item>
      <title>SDK Bug in MMC code with DDR device</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SDK-Bug-in-MMC-code-with-DDR-device/m-p/904994#M36273</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm using a LPC54608 with an external IS21ES04G eMMC memory device (which supports DDR) and I believe there is a bug in the SDK code (see fragment below) which causes the incorrect eMMC bus interface to be selected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When setting up an eMMC/MMC device the default card-&amp;gt;busWidth value is &lt;STRONG&gt;kMMC_DataBusWidth1bit&lt;/STRONG&gt;, therefore the switch statement below will always attempt to firstly select a DDR interface and because the eMMC device flags indicate that it does support DDR this configuration is selected. The subsequent MMC_TestDataBuswidth() and MMC_SetDataBusWidth() functions succeed and the interface is consequently set for DDR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, to the best of my knowledge the LPC546xx does not support DDR on the SD/MMC and SDIO interface, therefore data access to the external device will not function beyond this point.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The same problem arises for both 8-bit and 4-bit interfaces.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 15px;"&gt;One work-around for this problem is to set the card-&amp;gt;busWidth before calling the &lt;SPAN style="color: #000000;"&gt;MMC_SetMaxDataBusWidth()&lt;/SPAN&gt; function thereby forcing the&lt;/SPAN&gt; switch/case statement to bypass the offending code and set the bus correctly to non-DDR mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BUT I would expect that the code should not allow an unsupported option to be selected in the first place.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Padraig&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="text-align: left;"&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;static status_t &lt;STRONG&gt;MMC_SetMaxDataBusWidth&lt;/STRONG&gt;(mmc_card_t *card, mmc_high_speed_timing_t targetTiming)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert(card);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left;"&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; status_t error = kStatus_Fail;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #008000;"&gt;&lt;STRONG&gt;switch&lt;/STRONG&gt; (card-&amp;gt;busWidth)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #008000;"&gt; &lt;STRONG&gt;case kMMC_DataBusWidth1bit:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kMMC_DataBusWidth8bitDDR:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Test and set the data bus width for card. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((SDMMCHOST_NOT_SUPPORT != &lt;SPAN style="color: #008000;"&gt;kSDMMCHOST_Support8BitBusWidth&lt;/SPAN&gt;) &amp;amp;&amp;amp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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; (card-&amp;gt;flags &amp;amp; (&lt;SPAN style="color: #008000;"&gt;kMMC_SupportHighSpeedDDR52MHZ180V300VFlag&lt;/SPAN&gt; | kMMC_SupportHighSpeedDDR52MHZ120VFlag)) &amp;amp;&amp;amp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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;SPAN style="color: #008000;"&gt;targetTiming&lt;/SPAN&gt; == kMMC_HighSpeedTiming) || (targetTiming == kMMC_HighSpeed400Timing)))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&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 style="font-size: 12px; color: #000000;"&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; SDMMCHOST_SET_CARD_BUS_WIDTH(card-&amp;gt;host.base, kSDMMCHOST_DATABUSWIDTH8BIT);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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 ((kStatus_Success == &lt;SPAN style="color: #008000;"&gt;&lt;STRONG&gt;MMC_TestDataBusWidth(card, kMMC_DataBusWidth8bitDDR))&lt;/STRONG&gt;&lt;/SPAN&gt; &amp;amp;&amp;amp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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; (kStatus_Success == &lt;SPAN style="color: #008000;"&gt;&lt;STRONG&gt;MMC_SetDataBusWidth(card, kMMC_DataBusWidth8bitDDR))&lt;/STRONG&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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; error = kStatus_Success;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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; card-&amp;gt;busWidth = kMMC_DataBusWidth8bitDDR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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; break;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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; /* HS400 mode only support 8bit data bus */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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; else if (card-&amp;gt;busTiming == kMMC_HighSpeed400Timing)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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; return kStatus_SDMMC_SetDataBusWidthFailed;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12px; color: #000000;"&gt;&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;/P&gt;&lt;P style="text-align: left;"&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 May 2019 11:17:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SDK-Bug-in-MMC-code-with-DDR-device/m-p/904994#M36273</guid>
      <dc:creator>padraig_fogarty</dc:creator>
      <dc:date>2019-05-08T11:17:32Z</dc:date>
    </item>
    <item>
      <title>Re: SDK Bug in MMC code with DDR device</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SDK-Bug-in-MMC-code-with-DDR-device/m-p/904995#M36274</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much for the valuable information, I agree with you that this is a bug in the SDK code,&amp;nbsp; your recommendation seems fine to me,&amp;nbsp; I am going to pass down your feedback to our developers, so they can take care in the next release of the SDK. Again thank you for your collaboration.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Sol&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 May 2019 17:23:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SDK-Bug-in-MMC-code-with-DDR-device/m-p/904995#M36274</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2019-05-14T17:23:33Z</dc:date>
    </item>
  </channel>
</rss>

