<?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: FRDM-K64F SDHC Driver in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533670#M32885</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joe Hinkle&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for the late response. How is the status of your problem? Could you share your project (or the part that config SDHC) to check if I can replay your problem?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I made some tests in the KSDK 2.0 example and it works as it should, in my case It is configured with DmaModeNo, read 5 blocks of 512 and the flag TC is set. I attached that project, you could check it and it may help.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day.&lt;BR /&gt;Jorge Alcala&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 16 Jul 2016 00:36:39 GMT</pubDate>
    <dc:creator>jorge_a_vazquez</dc:creator>
    <dc:date>2016-07-16T00:36:39Z</dc:date>
    <item>
      <title>FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533659#M32874</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've got a FatFS SDHC driver implemented that works well for single sector reads/writes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm attempting to do multi-sector reads and am experiencing strange SDHC behavior.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As a test, I want to read 1024 bytes from a file -- so FatFS (after all its FAT and Directory reads) -&amp;nbsp; issues a read for two (2) sectors from the wanted file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My "Read Block" interface issues a CMD18 with a block count of 2 and AutoCMD12 enabled.&lt;/P&gt;&lt;P&gt;After I read 1024 bytes (256 dwords) the SDHC does NOT show TC (Transfer Complete) active.&amp;nbsp; I have to perform another 128 dummy reads of the 512 buffer in order to get TC active.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can't believe this is correct so I must be doing something wrong.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to understand this issue before I try to implement DMA .. since I can't do 128 dummy DMA reads.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would appreciate any insight you might have on why the SDHC is requiring an additional read of the complete 512 buffer before it issues a TC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 02 Jul 2016 18:59:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533659#M32874</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-02T18:59:05Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533660#M32875</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not finding an answer, I decided to test DMA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DMA works great for multi-sector reads.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I look at the buffer address - check to make sure it is aligned on a 4 byte boundary.&amp;nbsp; If it is, I use DMA.&amp;nbsp; If NOT, I use data moves via a pointer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It was the pointer moves in multi-sector operations where my issue occurs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It looks like I will have to implement individual CMD17 (single sector reads) when I can't use DMA when asked to do a multi-sector operation.&amp;nbsp; I hate that because it will kill performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any comments appreciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 02 Jul 2016 20:27:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533660#M32875</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-02T20:27:42Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533661#M32876</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I figured I would post some test results.&amp;nbsp; They surprised me!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Micro - K64F running at 120mhz&lt;/P&gt;&lt;P&gt;SDHC - 4 bit mode at 25mhz&lt;/P&gt;&lt;P&gt;Sector size 512&lt;/P&gt;&lt;P&gt;Watermark -- both read and write set at 128 -- full SDHC FIFO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Test were for processing 6 continuous sectors or (1024*3) bytes &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;T1.&amp;nbsp; Read Buffer dword aligned (use SDHC DMA) - .2393 seconds for a read rate of 12,837 bytes/sec.&lt;/P&gt;&lt;P&gt;T2.&amp;nbsp; Read Buffer dword mis-aligned (use dword *p to move data) - .2196 seconds for a read rate of 14,163 bytes/sec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note - for write test .. sectors already contained data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;T3.&amp;nbsp; WriteBuffer dword aligned (use SDHC DMA) - .2436 seconds for a read rate of 12,610 bytes/sec.&lt;/P&gt;&lt;P&gt;T2.&amp;nbsp; WriteBuffer dword mis-aligned (use dword *p to move data) - .2505 seconds for a read rate of 12,258 bytes/sec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The read test were the same times obtained running multiple tests.&amp;nbsp; The write tests had different times (I suspect do to card erasing time).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The interesting thing is that for read operations -- you get better results issuing multiple CMD17 commands and reading withe a C pointer compared to a single DMA read using CMD18.&amp;nbsp; THAT WAS A SURPRISE!!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The tests were run with the system running FreeRtos -- but I made the test thread the highest priority to eliminate any RTOS related delays.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Again - these times were based on watermark lest of 128 which means no data was moved until the SDHC had completely processed the complete sector.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'll have to look into smaller watermark levels to see if that impacts the timing.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 02 Jul 2016 23:34:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533661#M32876</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-02T23:34:44Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533662#M32877</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've tried watermark of 1 and no change in timing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These transfer numbers are terrible!!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There has got to be a way of getting CMD18 (multi-sector read) to generate a TC when the sectors have completed being read NOT using DMA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If THAT could occur, the read performance would increase significantly.&amp;nbsp; As it stands now ... I can issue a CMD18 and specify the number of sectors to read -- actually read all of the sectors -- but then I enter a wait looking for a TC that never occurs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any suggestions from anyone?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 03 Jul 2016 01:39:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533662#M32877</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-03T01:39:48Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533663#M32878</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;It is quite some time that I used multiple block transfers with the SDHC but my conclusion was that it is not reliable so I gave up on it in preference of 1-bit SPI for highest speed transfers based on on multiple-block operations.&lt;/P&gt;&lt;P&gt;See &lt;A href="https://community.nxp.com/thread/319204"&gt;How to cancel multi-block SDHC transfers?&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I my case the issue was mainly that transfers could not be interrupted (imperative for systems with multiple SD card users - such as multiple HTTP and FTP servers needing to work at the same time with the card) which meant that it was not usable in real applications.&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>Sun, 03 Jul 2016 11:28:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533663#M32878</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2016-07-03T11:28:29Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533664#M32879</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the comments Mark.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My application will be one application reading two files at the same time -- but interweaving the read process - so I don't have to "pause" a multi-block read.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've spent the last 12 hours debugging multi-block reads -- here's what I found ... maybe someone can clarify.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CMD18 is set for AutoCmd12 and has block count set.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My code bails out of the read loop after I have read the specified number of blocks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've gone into a while(1) loop to debug SDHC register values after specific operations to see what is happening.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After acquiring the requested number of data blocks - the SDHC shows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am assuming that the SDHC has issued the AutoCMD12 as requested in the CMD18 command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IRQSTAT - BRR (Buffer Read Ready) -- ok -- expected &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PRSSTAT - RTA (Read Transfer Active), DLA (Data Line Active), CDIHB(Cmd Inhibit Data).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The PRSSTAT value suggests the block read is still active and the AutoCMD12 did not execute --- so I inserted my OWN CMD12 command --- results remain the same --- so I guess the AutoCMD12 DID execute and leaving the Card/SDHC in this state.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You are DEAD in this state as far any any more read/write operations go.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Investigating how to resolve this, I found the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From the K64 Reference Manual - Register XFERTYP - member CMDTYP:&lt;/P&gt;&lt;P&gt;Abort command (CMD12 or AutoCMD12) --- &lt;SPAN style="font-size: 12.0pt; font-family: 'HelveticaLTStd-Roman','serif'; color: red;"&gt;“After issuing the abort command, the host driver must issue a software reset (abort&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="font-size: 9pt;"&gt;transaction)."&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tried searching in the K64 manual for the definition of "software reset" and found none.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Researching the SD Card Interface specifications -- they state that after a CMD12 or AutoCMD12, that the software resets for Data and Cmd lines (found in SDHC Register SYSCTL) need to be activated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So after I issue my own CMD12, I set the Data/Cmd software bits in SYSCTL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IRQSTAT goes to 0&lt;/P&gt;&lt;P&gt;PRSSTAT now shows that the following clocks have been turned off as a result of the soft-reset: PEROFF (SDHC Clock), HCKOFF (System Clock), and IPGOFF (Bus Clock).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Still --- any READ attempt (CMD17) --- DEAD -- no IRQSTAT bits being set after the command is issued (IRQSTSTEN still has all the flags set -- so that's not he issue).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I suspected the issue may be that the clocks are off (the clocks are normally turned off depending on the state of the card/SDHC).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I tested that theory ... I set flags PEREN, HCKEN, and IPGEN in register SYSCTL.&amp;nbsp; This prevents the clocks from going off when the soft reset is applied.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Clocks are now ON -- Still DEAD on CMD17 read.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tested clearing the flags&amp;nbsp; PEREN, HCKEN, and IPGEN in register SYSCTL after the soft reset -- which puts me back where PRSSTAT shows clocks have been turned off again PEROFF (SDHC Clock), HCKOFF (System Clock), and IPGOFF (Bus Clock).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After all of this, the SD Card specifications suggest asking the card it's current state .. so I implemented CMD13.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CMD returns with the current state of the SD card as "tran" which is the "Tranfer State" -- so the card should be able to process my CMD17 command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Again --- I issue a CMD17 and wait for IRQSTAT&amp;nbsp; to show "Command Complete" or an error -- BUT -- IRQSTAT&amp;nbsp; is always ZERO!!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There's the long and short of my investigation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone share any insight as to why the SDHC will NOT set any IRQSTAT based on receiving CMD17 after I performed a soft reset as described above?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance for any HELP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 03 Jul 2016 18:42:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533664#M32879</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-03T18:42:54Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533665#M32880</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I did a timing capture of a 6 sector block read.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="SDHC.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/31868i3D154F98677E202A/image-size/large?v=v2&amp;amp;px=999" role="button" title="SDHC.png" alt="SDHC.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please Note -- SDHC is running at 50Mhz.&amp;nbsp; Watermark is set at 512&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Top pulse shows the start/stop time of a loop of CMD17 commands --- 220 millisecs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The bottom small pulses show the actual time required to move the 512 bytes of data once it is in the SDHC's FIFO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It also illustrates why the SDHC should be operated in association with a RTOS.&amp;nbsp; 99.99% of the time, the cpu is waiting on the SDHC to finish it's task.&amp;nbsp; Perfect use of a thread waiting on an interrupt event to occur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It also illustrates WHY I want to resolve this CMD18 (Multi-Block) read issue -- to reduce amount of SDHC processing time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 03 Jul 2016 21:54:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533665#M32880</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-03T21:54:21Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533666#M32881</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;One more timing picture ... Again CPU running at 120Mhz and SDHC running at 50Mhz&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="SDHC1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/31909iB5DEB7180C06247B/image-size/large?v=v2&amp;amp;px=999" role="button" title="SDHC1.png" alt="SDHC1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When the bottom timing line is LO -- cpu is executing -- when HI -- simply in a wait loop waiting on SDHC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It takes 4 millsec for the SDHC to return from a CMD17 command (read one block).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My watermark is set at 128, so I wait for the SDHC to fill the complete 512 byte buffer.&amp;nbsp; That simple wait loop is taking 32 millisecs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From this, I can see how to implement task waiting from the RTOS and let other processes use that time.&amp;nbsp; Come back when the SDHC interrupt fires.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just thought I's share while I trying to figure out the multi-block issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 03 Jul 2016 22:13:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533666#M32881</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-03T22:13:28Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533667#M32882</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well - there was one positive coming out of all of this work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After my last post, I pondered at the timing.&amp;nbsp; I decided to look closer at how I was determining my baud settings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found a very big mistake .. all requested baud rates were producing setting of VERY VERY SLOW!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I redid my baud rate calculation and the timing is 10 times better now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The closest I could get to 50Mhz was 40Mhz ... 120/3 is the closest ... wish it was faster.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So here is a SDHC clock at 40MHZ.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="SDHC2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/31950iEDDBA90C061303C6/image-size/large?v=v2&amp;amp;px=999" role="button" title="SDHC2.png" alt="SDHC2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOW -- complete 6 sector read is accomplished in 2.5 msec ... not the 220 msec reported earlier.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also .. the only SDHC wait loop of any significance is waiting for the buffer to fill.&amp;nbsp; That time is now 383 usec compared to 32 msec reported earlier ...may not even do a task switch for that amount of time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thought I'd share my head up my ass finding.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 03 Jul 2016 23:28:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533667#M32882</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-03T23:28:23Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533668#M32883</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Final post for my findings:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The timing above show a block read of 6 sectors -- or 1024 * 3 bytes == 3072 bytes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That is a data rate of 3072 / 2.5 msec = 1,228,800 bytes/sec or 9,830,400 bits/sec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't think I'm going to get much faster with a multi-block operation as most of the time is waiting on the SDHC to fill the buffer ... SO -- I going to stick with multi CMD17 commands.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 03 Jul 2016 23:36:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533668#M32883</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-03T23:36:23Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533669#M32884</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would still like to understand what is happening with the SDHC during CMD18 (multi-sector Read).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It works using DMA but not using pointer moves.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can't go strictly with DMA because I can't always depend on FatFS providing a dword aligned buffer as described in his site.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've not found a single reference to anyone getting this mode of operation to work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone from NXP explain please?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jul 2016 10:38:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533669#M32884</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-07-05T10:38:32Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533670#M32885</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joe Hinkle&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for the late response. How is the status of your problem? Could you share your project (or the part that config SDHC) to check if I can replay your problem?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I made some tests in the KSDK 2.0 example and it works as it should, in my case It is configured with DmaModeNo, read 5 blocks of 512 and the flag TC is set. I attached that project, you could check it and it may help.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day.&lt;BR /&gt;Jorge Alcala&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 16 Jul 2016 00:36:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533670#M32885</guid>
      <dc:creator>jorge_a_vazquez</dc:creator>
      <dc:date>2016-07-16T00:36:39Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-K64F SDHC Driver</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533671#M32886</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jorge:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for the delay.&amp;nbsp; I resolved to using using pointers and not DMA because I can;t always control the destination address unless I want to copy from a good buff .. but that just consumes more time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had no issues using DMA for all commands.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The issue was using pointers (cpu gets data based on the use of a pointer), NOT DMA, and could not get the Multi-block read to function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since I have no explanation as to why the issue is occurring, I'm using single block read using pointers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for replying.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Aug 2016 18:56:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-K64F-SDHC-Driver/m-p/533671#M32886</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2016-08-11T18:56:47Z</dc:date>
    </item>
  </channel>
</rss>

