<?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 Software Development Kit中的主题 Re: Slowing down the SDHC clock</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464951#M3545</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Update,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;David, on the side, I have two FRDM-K64F evaluation boards and a colleague has a TWR system, but he doesn't remember &lt;/P&gt;&lt;P&gt;if he has the K64 top board.&amp;nbsp; Anyway, I have two questions:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&amp;nbsp; Can I run the TWR example project on the FRDM evaluation board?&lt;/P&gt;&lt;P&gt;2.&amp;nbsp; Is there a similar example project on the FRDM evaluation board, as in the TWR evaluation board?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to compare apples to apples and make sure is not my custom board the one with the issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Neil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 05 Apr 2016 16:57:01 GMT</pubDate>
    <dc:creator>neilporven</dc:creator>
    <dc:date>2016-04-05T16:57:01Z</dc:date>
    <item>
      <title>Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464934#M3528</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Hi everyone, is there a way to slow down the SDHC clock?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Neil Porven&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Mar 2016 15:04:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464934#M3528</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-03-10T15:04:03Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464935#M3529</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Update,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found under the following file/s the configuration of the SDHC clock:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fsl_sd_disk.c and&amp;nbsp; fsl_sdhc_card.c &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the defines are in here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fsl_sdmmc_card.h&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;which are: &lt;/P&gt;&lt;P&gt;#define SDMMC_CLK_100KHZ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (100000U)&lt;/P&gt;&lt;P&gt;#define SDMMC_CLK_400KHZ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (400000U)&lt;/P&gt;&lt;P&gt;#define SDMMC_CLK_25MHZ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (25000000U)&lt;/P&gt;&lt;P&gt;#define SDMMC_CLK_50MHZ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (50000000U)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It was originally setup for 50MHZ, but when I changed it to 100KHZ and probed the clock on the SD card&lt;/P&gt;&lt;P&gt;it didn't change?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can someone explain why?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Neil Porven&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Mar 2016 16:09:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464935#M3529</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-03-10T16:09:57Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464936#M3530</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Update,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From the reference manual of the K64F&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SDCLK Frequency Select&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The frequency of SDCLK is set by the following formula: Clock frequency = (Base clock) / (prescaler x&lt;/P&gt;&lt;P&gt;divisor)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I take a look at fsl_sdhc_hal.h, I can see that &lt;/P&gt;&lt;P&gt;#define SDHC_HAL_INITIAL_DVS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1U)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* initial value of divisor to calculate clock rate */&lt;/P&gt;&lt;P&gt;#define SDHC_HAL_INITIAL_CLKFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (2U)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* initial value of clock selector to calculate clock rate */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;they are pre-defined.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is the base clock?&lt;/P&gt;&lt;P&gt;What is the prescaler?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Neil Porven&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Mar 2016 17:31:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464936#M3530</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-03-10T17:31:57Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464937#M3531</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Neil,&lt;/P&gt;&lt;P&gt;As you know that the SDHC module need different clock for the command and data transfer, the section 5.7.11 and section 53.5.5 in RM of K64 can clarify the procedure to generate the SDHC clock.&lt;/P&gt;&lt;P&gt;1)section 5.7.11 shows the SDHC clock source, which is specified in the SIM_SOPT2[SDHCSRC].&lt;/P&gt;&lt;P&gt;2)section 53.5.5 shows the actual SDHC clock generator, the "Base" is the SDHC clock in the Figure 5-9, the SDHC clock is divided by the first divisor which is specified by the DVS bits in SDHC_SYSCTL register and is divided by the second divisor specified by SDCLKFS bits in the SDHC_SYSCTL reg. The SD_CLK is the actual clock to drive the SDHC module.&lt;/P&gt;&lt;P&gt;Hope it can help you.&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;Xiangjun Rong&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_0.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/22849iE3890459C85B0CA8/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_0.png" alt="pastedImage_0.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/22889i14FC135CB835A39C/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Mar 2016 09:07:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464937#M3531</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2016-03-15T09:07:29Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464938#M3532</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi xiangjun, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your reply, I appreciated.&amp;nbsp; Unfortunately, I was looking more on how or what needs to change in the SD card&lt;/P&gt;&lt;P&gt;driver/module to change the clock speed.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Neil Porven&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Mar 2016 16:25:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464938#M3532</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-03-15T16:25:06Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464939#M3533</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Neil,&lt;/P&gt;&lt;P&gt;I'm testing with KDS_3.1+KSDK_v2 for FRDM-K64F and running the example C:\NXP\KSDK_v2\SDK_2.0_FRDM-K64F_KDS\boards\frdmk64f\driver_examples\sdcard_fatfs\kds .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the fls_sd.c file SD_Init() function is around line 1011.&amp;nbsp; This routine identifies the SD Card being used to determine what maximum clock rate to use.&amp;nbsp; My test card is 2GB and can operate at high speed clocking (50MHz setting but 30MHz implemented).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The default 400KHz SD Card clocking is used to identify card and then the clock is increased and tested to see if it can go higher (my summary of the code).&lt;/P&gt;&lt;P&gt;Stepping through that code I found my card would get to line 1123 and try to set clock to 50MHz.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (error == kStatus_Success)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&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;busClock_Hz = SDHC_SetSdClock(card-&amp;gt;host.base, card-&amp;gt;host.sourceClock_Hz, SD_CLOCK_50MHZ);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I measured with Oscope it was 30MHz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now when I replace that code with following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (error == kStatus_Success)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&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;busClock_Hz = SDHC_SetSdClock(card-&amp;gt;host.base, card-&amp;gt;host.sourceClock_Hz, SDMMC_CLOCK_400KHZ); //DES was SD_CLOCK_50MHZ);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now when I measure I get 375kHZ and the example worked fine (just slower).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For your case you should be able to step through the code to see what clock rate it is determining your card can handle and then adjust down as you see fit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Mar 2016 18:37:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464939#M3533</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2016-03-15T18:37:29Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464940#M3534</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know that this was about 2 weeks ago, but as you know, hoping from one project or issue to another is very common.&lt;/P&gt;&lt;P&gt;Thank you for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried looking for fls_sd.c file SD_Init() function, but I realized that your using an example that's from the SDK_2.0.&lt;/P&gt;&lt;P&gt;My environment must be different because I can't find that file or that particular Init function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did a general search (&lt;SPAN style="color: #000000; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; font-size: 14px;"&gt;SD_CLOCK_50MHZ)&lt;/SPAN&gt; on my code and found the following areas:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&amp;nbsp;&amp;nbsp; SDCARD_DRV_InitSd(sdhc_card_t *card) , which contained the following code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if (SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_50MHZ))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;I replaced it with SDMMC_CLK_400KHZ,&amp;nbsp; I also found the following code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2.&amp;nbsp; sdcard_disk_initialize(uint8_t pdrv), which contained the following code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;config.clock = SDMMC_CLK_50MHZ;&amp;nbsp;&amp;nbsp;&amp;nbsp; I also changed it with config.clock = SDMMC_CLK_400KHZ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also identified the following areas and did the same thing, wherever I found 50MHZ, I replaced it with 400KHZ&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.&amp;nbsp; SDCARD_DRV_InitSd(sdhc_card_t *card)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt; else if (err == kStatus_SDHC_NoError)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&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; SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&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; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if (SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, the clock doesn't seem to change, maybe I am not supposed to change them all????&lt;/P&gt;&lt;P&gt;Let me know if anything above triggers an idea of why the clock doesn't change?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks,&lt;/P&gt;&lt;P&gt;Neil Porven&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Mar 2016 20:55:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464940#M3534</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-03-28T20:55:05Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464941#M3535</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Neil,&lt;/P&gt;&lt;P&gt;Ok...I loaded the KSDK_1.3 C:\Freescale\KSDK_1.3.0\examples\twrk64f120m\driver_examples\sdhc_sdcard\kds example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In file fsl_sdhc_card.c the following function I only made two edits to set the SD Card frequency to 400KHz and verified it using o-scope.&amp;nbsp; &lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14592665065735629 jive_macro_code jive_text_macro" data-renderedposition="112_8_1123_1088" jivemacro_uid="_14592665065735629"&gt;&lt;P&gt;static sdhc_status_t SDCARD_DRV_InitSd(sdhc_card_t *card)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sdhc_status_t err = kStatus_SDHC_NoError;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; card-&amp;gt;cardType = kCardTypeSd;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_AllSendCid(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_AllSendCidFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SendRca(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendRcaFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SendCsd(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendCsdFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SelectCard(card, true))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SelectCardFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SendScr(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendScrFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ)) //DES was SDMMC_CLK_25MHZ))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DOES_HOST_SUPPORT_4BITS(card-&amp;gt;host) &amp;amp;&amp;amp; DOES_CARD_SUPPORT_4BITS(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SetBusWidth(card, kSdBusWidth4Bit))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetCardWideBusFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&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; SDHC_DRV_SetBusWidth(card-&amp;gt;hostInstance, kSdhcBusWidth4Bit))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetBusWidthFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DOES_HOST_SUPPORT_HIGHSPEED(card-&amp;gt;host))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = SDCARD_DRV_SwitchHighspeed(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((err != kStatus_SDHC_NoError) &amp;amp;&amp;amp; (kStatus_SDHC_CardNotSupport != err))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SwitchHighSpeedFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (err == kStatus_SDHC_NoError)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&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; SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ)) //DES was SDMMC_CLK_50MHZ))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&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; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = kStatus_SDHC_NoError;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SDCARD_DRV_SetBlockSize(card, FSL_SDHC_CARD_DEFAULT_BLOCK_SIZE))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = kStatus_SDHC_SetCardBlockSizeFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return err;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;Terminal Output attached for running default example and example at 400KHz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Mar 2016 15:55:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464941#M3535</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2016-03-29T15:55:17Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464942#M3536</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can see there are two location on my &lt;SPAN style="color: #000000; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; font-size: 14px;"&gt;fsl_sdhc_card.c&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; font-size: 14px;"&gt;where I can change the clock, here is one:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION****************************************************************&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Function Name: SDCARD_DRV_Init&lt;/P&gt;&lt;P&gt; * Description: initialize card on the given host controller&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; *END*********************************************************************/&lt;/P&gt;&lt;P&gt;sdhc_status_t SDCARD_DRV_Init(sdhc_host_t *host, sdhc_card_t *card)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sdhc_status_t err = kStatus_SDHC_NoError;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t acmd41Arg;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert(host);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; card-&amp;gt;cardType = kCardTypeUnknown;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; card-&amp;gt;host = host;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; card-&amp;gt;hostInstance = host-&amp;gt;instance;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = SDCARD_DRV_GoIdle(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetCardToIdle;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; acmd41Arg = card-&amp;gt;host-&amp;gt;ocrSupported;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = SDCARD_DRV_SendIfCond(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err == kStatus_SDHC_NoError)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SDHC or SDXC card */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acmd41Arg |= SD_OCR_HCS;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; card-&amp;gt;caps |= SDMMC_CARD_CAPS_SDHC;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SDSC card */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = SDCARD_DRV_GoIdle(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetCardToIdle;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = SDCARD_DRV_AppSendOpCond(card, acmd41Arg);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_TimeoutError == err)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MMC card */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_NotSupportYet;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (err)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendAppOpCondFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SDCARD_DRV_InitSd(card);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;also, I this one:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION****************************************************************&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Function Name: SDCARD_DRV_InitSd&lt;/P&gt;&lt;P&gt; * Description: initialize SD memory card&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; *END*********************************************************************/&lt;/P&gt;&lt;P&gt;static sdhc_status_t SDCARD_DRV_InitSd(sdhc_card_t *card)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sdhc_status_t err = kStatus_SDHC_NoError;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; card-&amp;gt;cardType = kCardTypeSd;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_AllSendCid(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_AllSendCidFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SendRca(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendRcaFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SendCsd(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendCsdFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SelectCard(card, true))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SelectCardFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SendScr(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendScrFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DOES_HOST_SUPPORT_4BITS(card-&amp;gt;host) &amp;amp;&amp;amp; DOES_CARD_SUPPORT_4BITS(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SetBusWidth(card, kSdBusWidth4Bit))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetCardWideBusFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&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; SDHC_DRV_SetBusWidth(card-&amp;gt;hostInstance, kSdhcBusWidth4Bit))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetBusWidthFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DOES_HOST_SUPPORT_HIGHSPEED(card-&amp;gt;host))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = SDCARD_DRV_SwitchHighspeed(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((err != kStatus_SDHC_NoError) &amp;amp;&amp;amp; (kStatus_SDHC_CardNotSupport != err))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SwitchHighSpeedFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (err == kStatus_SDHC_NoError)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&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; SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&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; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = kStatus_SDHC_NoError;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SDCARD_DRV_SetBlockSize(card, FSL_SDHC_CARD_DEFAULT_BLOCK_SIZE))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = kStatus_SDHC_SetCardBlockSizeFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return err;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you can see, I changed both.&amp;nbsp; Is it needed for the first one as well?&lt;/P&gt;&lt;P&gt;Do you have a similar function for the twrk64?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Neil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Mar 2016 20:49:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464942#M3536</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-03-29T20:49:43Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464943#M3537</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Its seems that 24MHz is all I can get.&amp;nbsp; By the way, I am using my own board and my internal bus clock is 48MHz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Neil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Mar 2016 20:53:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464943#M3537</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-03-29T20:53:42Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464944#M3538</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Quick update,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think the twrk64 example is running an internal BUS clock of 4MHz and its being derived from the external oscillator. &lt;/P&gt;&lt;P&gt;I also noticed that the example does have&amp;nbsp; SDCARD_DRV_Init and the internal clock is set to 400KHZ.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you believe the DIV needs to be set in my case running a 48MHZ clock?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks,&lt;/P&gt;&lt;P&gt;Neil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Mar 2016 15:18:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464944#M3538</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-03-30T15:18:55Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464945#M3539</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another update,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I noticed that &lt;STRONG&gt;fsl_sdhc_hal.c&amp;nbsp; &lt;/STRONG&gt;has the following function:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SDHC_HAL_ConfigSdClock(SDHC_Type * base, sdhc_hal_sdclk_config_t* clkConfItms)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It contains these two lines:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;divisor = SDHC_HAL_INITIAL_DVS;&lt;/P&gt;&lt;P&gt;freq = SDHC_HAL_INITIAL_CLKFS;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SDHC_HAL_INITIAL_DVS is pre-defined to 1U&lt;/P&gt;&lt;P&gt;SDHC_HAL_INITIAL_CLKFS is pre-defined to 2U&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;trying to change these values inside the KDS, does absolutely nothing!&amp;nbsp; I am trying to set them so:&lt;/P&gt;&lt;P&gt;SDHC_HAL_INITIAL_DVS is 0U&amp;nbsp; (divide by 1)&lt;/P&gt;&lt;P&gt;SDHC_HAL_INITIAL_CLKFS is 40U (divide by 128)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;with my internal bus running at 48MHz it should roughly give me 375KHz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Neil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Mar 2016 18:37:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464945#M3539</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-03-30T18:37:41Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464946#M3540</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Neil,&lt;/P&gt;&lt;P&gt;Are you using KSDK_1.2?&lt;/P&gt;&lt;P&gt;If yes I went into it and only modified SDCARD_DRV_InitSd() as follows to change the clocking to 400kHz:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14593687829058777 jive_text_macro" data-renderedposition="86_8_1153_1184" jivemacro_uid="_14593687829058777"&gt;&lt;P&gt;/*FUNCTION****************************************************************&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Function Name: SDCARD_DRV_InitSd&lt;/P&gt;&lt;P&gt; * Description: initialize SD memory card&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; *END*********************************************************************/&lt;/P&gt;&lt;P&gt;static sdhc_status_t SDCARD_DRV_InitSd(sdhc_card_t *card)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sdhc_status_t err = kStatus_SDHC_NoError;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; card-&amp;gt;cardType = kCardTypeSd;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_AllSendCid(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_AllSendCidFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SendRca(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendRcaFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SendCsd(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendCsdFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SelectCard(card, true))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SelectCardFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SendScr(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SendScrFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ)) //DES was SDMMC_CLK_25MHZ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DOES_HOST_SUPPORT_4BITS(card-&amp;gt;host) &amp;amp;&amp;amp; DOES_CARD_SUPPORT_4BITS(card))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError != SDCARD_DRV_SetBusWidth(card, kSdBusWidth4Bit))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetCardWideBusFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&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; SDHC_DRV_SetBusWidth(card-&amp;gt;hostInstance, kSdhcBusWidth4Bit))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SetBusWidthFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DOES_HOST_SUPPORT_HIGHSPEED(card-&amp;gt;host))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = SDCARD_DRV_SwitchHighspeed(card);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((err != kStatus_SDHC_NoError) &amp;amp;&amp;amp; (kStatus_SDHC_CardNotSupport != err))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_SDHC_SwitchHighSpeedFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (err == kStatus_SDHC_NoError)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_SDHC_NoError !=&lt;/P&gt;&lt;P&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; SDHC_DRV_ConfigClock(card-&amp;gt;hostInstance, SDMMC_CLK_400KHZ)) //DES was SDMMC_CLK_50MHZ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&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; return kStatus_SDHC_SetClockFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = kStatus_SDHC_NoError;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SDCARD_DRV_SetBlockSize(card, FSL_SDHC_CARD_DEFAULT_BLOCK_SIZE))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = kStatus_SDHC_SetCardBlockSizeFailed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return err;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This project (C:\Freescale\KSDK_1.2.0\examples\twrk64f120m\driver_examples\sdhc_sdcard\kds) sets the clocking up to 120MHz core, 60MHz peripheral and bus, and 24MHz flash.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Mar 2016 20:17:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464946#M3540</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2016-03-30T20:17:31Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464947#M3541</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am actually using the KSDK 1.3.0, but after looking at the function SDCARD_DRV_InitSd&lt;/P&gt;&lt;P&gt;it is the same on both KSDK 1.2.0 and KSDK 1.3.0.&amp;nbsp; I have changed the same lines you &lt;/P&gt;&lt;P&gt;recommended, but unfortunately the clock doesn't seem to change from the 24MHz?&amp;nbsp; It &lt;/P&gt;&lt;P&gt;feels like 24MHz is fixed somewhere in the code or a combination of register settings, signals&lt;/P&gt;&lt;P&gt;for 24MHz clock... weird!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there anything else you can think about that could cause this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Some background info, I used George Gonzales, sample on setting up the FATfs + SDcard guide,&lt;/P&gt;&lt;P&gt;I believe he made back on 2014 or 2015?&amp;nbsp; I don't know if this helps any, but I thought the more info&lt;/P&gt;&lt;P&gt;you had the better.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for keeping track with this issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Neil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Apr 2016 13:20:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464947#M3541</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-04-01T13:20:16Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464948#M3542</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Neil,&lt;/P&gt;&lt;P&gt;Weird.&amp;nbsp; I can change the clock, run the example, and measure with o-scope on pin 5 of the SD Card interface clock signal to see it change.&amp;nbsp; Where are you measuring?&lt;/P&gt;&lt;P&gt;If you step over those clock API's do you see the clocking change on pin 5?&amp;nbsp; Wondering if it does change it properly but then later the other code modifies it back to 24MHz???&amp;nbsp; Drawing straws so to speak.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Apr 2016 16:01:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464948#M3542</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2016-04-01T16:01:44Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464949#M3543</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am measuring on PIN 5, my pinout is VDD-4,&amp;nbsp; DAT0-7,&amp;nbsp; DAT1-8,&amp;nbsp; DAT2-1,&amp;nbsp; CD/DAT3-2, CMD-3&lt;/P&gt;&lt;P&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;&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;&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; CLK-5,&amp;nbsp; SD_SW-9, VSS-6 , the rest are tied to ground.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I step over the clock API, I can see that the code is responsive.&amp;nbsp; The reason I know its responsive&lt;/P&gt;&lt;P&gt;is because before the card can be configured with a clock setting, it must be first stopped, then once&lt;/P&gt;&lt;P&gt;the setting has been applied, then the clock is started once again.&amp;nbsp; If I probe PIN5 while I am stepping&lt;/P&gt;&lt;P&gt;over these lines, I can see the clock stop, then start again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I didn't try following the code afterwards and watching if when it is configured, it actually switches, I just&lt;/P&gt;&lt;P&gt;let the compiler run (trusting everything was set correctly) and watch to find the very disappointing 24MHz&lt;/P&gt;&lt;P&gt;is still there! LOL.........&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will try to follow it closely and let you know what I find.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks,&lt;/P&gt;&lt;P&gt;Neil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Apr 2016 18:42:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464949#M3543</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-04-01T18:42:22Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464950#M3544</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stepping through the code, I found the following and I would like to confirm it with you to see if you the same.&lt;/P&gt;&lt;P&gt;The code leads me to the following function, which I believe is where the clock actually gets configured.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION****************************************************************&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Function Name: SDHC_HAL_ConfigSdClock&lt;/P&gt;&lt;P&gt; * Description: configure clock of host controller, it will set the most&lt;/P&gt;&lt;P&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; close clock frequency to the given clock&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; *END*********************************************************************/&lt;/P&gt;&lt;P&gt;void SDHC_HAL_ConfigSdClock(SDHC_Type * base, sdhc_hal_sdclk_config_t* clkConfItms)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t divisor, freq, sysCtlReg;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert(base);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert(clkConfItms);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; divisor = SDHC_HAL_INITIAL_DVS;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; freq = SDHC_HAL_INITIAL_CLKFS;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enables the IPG clock and no automatic clock gating off. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enables the system clock and no automatic clock gating off. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enables the peripheral clock and no automatic clock gating off. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enables the SD clock. It should be disabled before changing the SD clock */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_CLR_SYSCTL(base, (SDHC_SYSCTL_IPGEN_MASK | SDHC_SYSCTL_HCKEN_MASK | \&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_SYSCTL_PEREN_MASK | SDHC_SYSCTL_SDCLKEN_MASK));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If user want to disable the clock , directly return. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!(clkConfItms-&amp;gt;enable))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (clkConfItms-&amp;gt;destClk &amp;gt; 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((clkConfItms-&amp;gt;maxHostClk / freq / SDHC_HAL_MAX_DVS &amp;gt; clkConfItms-&amp;gt;destClk) &amp;amp;&amp;amp;&lt;/P&gt;&lt;P&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; (freq &amp;lt; SDHC_HAL_MAX_CLKFS))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_HAL_NEXT_CLKFS(freq);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((clkConfItms-&amp;gt;maxHostClk / freq / divisor &amp;gt; clkConfItms-&amp;gt;destClk) &amp;amp;&amp;amp;&lt;/P&gt;&lt;P&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; (divisor &amp;lt; SDHC_HAL_MAX_DVS))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_HAL_NEXT_DVS(divisor);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clkConfItms-&amp;gt;destClk = clkConfItms-&amp;gt;maxHostClk / freq / divisor;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;--------------- Here I see the change happening **********&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clkConfItms-&amp;gt;destClk = 400KHz coming in, after this line clkConfItms-&amp;gt;destClk = 0, then the code continues (I didn't bother copying the rest&lt;/P&gt;&lt;P&gt;it should be the same for you) and finally it gets to this line:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!SDHC_BRD_PRSSTAT_SDSTB(base)) {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* nables the SD clock. It should be disabled before changing the SD clock frequency. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_SET_SYSCTL(base, SDHC_SYSCTL_SDCLKEN_MASK);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I am holding my probe on the clock (PIN5) I can see that after it passes the while statement, it enables the clock and once again &lt;/P&gt;&lt;P&gt;the 24MHz appears!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In my previous post, I had a concern with this line:&lt;/P&gt;&lt;P&gt; freq = SDHC_HAL_INITIAL_CLKFS;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&amp;nbsp;&amp;nbsp;&amp;nbsp; SDHC_HAL_INITIAL_CLKFS = 2U&amp;nbsp; as seen on fsl_sdhc_hal.h&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;from the manual, choosing 2U = Base clock divided by 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SDCLK Frequency Select&lt;/P&gt;&lt;P&gt;Used to select the frequency of the SDCLK pin. The frequency is not programmed directly. Rather this&lt;/P&gt;&lt;P&gt;register holds the prescaler (this register) and divisor (next register) of the base clock frequency register.&lt;/P&gt;&lt;P&gt;Setting 00h bypasses the frequency prescaler of the SD Clock. Multiple bits must not be set, or the&lt;/P&gt;&lt;P&gt;behavior of this prescaler is undefined. The two default divider values can be calculated by the frequency&lt;/P&gt;&lt;P&gt;of SDHC clock and the following divisor bits.&lt;/P&gt;&lt;P&gt;Table continues on the next page...&lt;/P&gt;&lt;P&gt;Memory map and register definition&lt;/P&gt;&lt;P&gt;K64 Sub-Family Reference Manual, Rev. 2, January 2014&lt;/P&gt;&lt;P&gt;1640 Freescale Semiconductor, Inc.&lt;/P&gt;&lt;P&gt;SDHC_SYSCTL field descriptions (continued)&lt;/P&gt;&lt;P&gt;Field Description&lt;/P&gt;&lt;P&gt;The frequency of SDCLK is set by the following formula: Clock frequency = (Base clock) / (prescaler x&lt;/P&gt;&lt;P&gt;divisor)&lt;/P&gt;&lt;P&gt;For example, if the base clock frequency is 96 MHz, and the target frequency is 25 MHz, then choosing&lt;/P&gt;&lt;P&gt;the prescaler value of 01h and divisor value of 1h will yield 24 MHz, which is the nearest frequency less&lt;/P&gt;&lt;P&gt;than or equal to the target. Similarly, to approach a clock value of 400 kHz, the prescaler value of 08h and&lt;/P&gt;&lt;P&gt;divisor value of eh yields the exact clock value of 400 kHz. The reset value of this field is 80h, so if the&lt;/P&gt;&lt;P&gt;input base clock ( SDHC clock ) is about 96 MHz, the default SD clock after reset is 375 kHz.&lt;/P&gt;&lt;P&gt;According to the SD Physical Specification Version 1.1 and the SDIO Card Specification Version 1.2, the&lt;/P&gt;&lt;P&gt;maximum SD clock frequency is 50 MHz and shall never exceed this limit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only the following settings are allowed:&lt;/P&gt;&lt;P&gt;01h Base clock divided by 2.&lt;/P&gt;&lt;P&gt;02h Base clock divided by 4.&lt;/P&gt;&lt;P&gt;04h Base clock divided by 8.&lt;/P&gt;&lt;P&gt;08h Base clock divided by 16.&lt;/P&gt;&lt;P&gt;10h Base clock divided by 32.&lt;/P&gt;&lt;P&gt;20h Base clock divided by 64.&lt;/P&gt;&lt;P&gt;40h Base clock divided by 128.&lt;/P&gt;&lt;P&gt;80h Base clock divided by 256.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am not sure, if I am heading in the right direction, but I don't understand, if I am changing the same lines as you are,&lt;/P&gt;&lt;P&gt;that I would get a different result?&amp;nbsp; Of course, this is just a suspicion of what could be happening, maybe it can at least&lt;/P&gt;&lt;P&gt;give you a clue as to why I am not seeing the same thing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please let me know your thoughts on this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Neil Porven&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Apr 2016 15:06:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464950#M3544</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-04-05T15:06:57Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464951#M3545</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Update,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;David, on the side, I have two FRDM-K64F evaluation boards and a colleague has a TWR system, but he doesn't remember &lt;/P&gt;&lt;P&gt;if he has the K64 top board.&amp;nbsp; Anyway, I have two questions:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&amp;nbsp; Can I run the TWR example project on the FRDM evaluation board?&lt;/P&gt;&lt;P&gt;2.&amp;nbsp; Is there a similar example project on the FRDM evaluation board, as in the TWR evaluation board?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to compare apples to apples and make sure is not my custom board the one with the issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Neil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Apr 2016 16:57:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464951#M3545</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-04-05T16:57:01Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464952#M3546</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Neil,&lt;/P&gt;&lt;P&gt;Sorry for delay.&amp;nbsp; I was visiting customer yesterday.&lt;/P&gt;&lt;P&gt;The example I was running on the FRDM-K64F will not run on the TWR-K64F.&amp;nbsp; Too many differences.&lt;/P&gt;&lt;P&gt;But if you want an example that does run on both platforms then:&lt;/P&gt;&lt;P&gt;C:\Freescale\KSDK_1.3.0\middleware\filesystem\mfs\examples\sdcard\build\kds\sdcard_twrk64f120m&lt;/P&gt;&lt;P&gt;C:\Freescale\KSDK_1.3.0\middleware\filesystem\mfs\examples\sdcard\build\kds\sdcard_frdmk64f&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note the SDHC clock setting is based on the SD Card you use.&amp;nbsp; And even similar cards that get configured with same clocking setting can differ in performance.&amp;nbsp; I have two such SD Cards where one is 2GB and the other 8GB.&amp;nbsp; They get setup for 25MHz but the closes configurable clock rate calculates out to 20MHz (I can measure that using o-scope).&amp;nbsp; The 2GB SD Card will let me write 1234567 bytes in 2 seconds and the 8GB card takes 7 seconds!&amp;nbsp; Just an observation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Apr 2016 17:25:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464952#M3546</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2016-04-06T17:25:38Z</dc:date>
    </item>
    <item>
      <title>Re: Slowing down the SDHC clock</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464953#M3547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Update,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi David, so I was able to use the FRDM-K64F evaluation board and using the example project, change the clock&lt;/P&gt;&lt;P&gt;to SDMMC_CLOCK_400KHZ and probe it.&amp;nbsp; I was able to see the clock change properly.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At least now, I know I am changing the correct section in code and can see it working, at least on the evaluation board.&lt;/P&gt;&lt;P&gt;Now, I need to figure out what is different from one board to the other, or in software?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; font-size: 14px;"&gt; KDS_3.1+KSDK_v2 for FRDM-K64F&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 14px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt; C:\NXP\KSDK_v2\SDK_2.0_FRDM-K64F_KDS\boards\frdmk64f\driver_examples\sdcard_fatfs\kds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have two questions regarding this example:&lt;/P&gt;&lt;P&gt;1.&amp;nbsp; I don't see a main under source, where is the main?&lt;/P&gt;&lt;P&gt;2. What is this project doing?&amp;nbsp; I don't see anything in the console, I don't see any LEDs blinking??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Apr 2016 19:02:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Slowing-down-the-SDHC-clock/m-p/464953#M3547</guid>
      <dc:creator>neilporven</dc:creator>
      <dc:date>2016-04-06T19:02:58Z</dc:date>
    </item>
  </channel>
</rss>

