<?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 SDcard+LPC1114 in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/SDcard-LPC1114/m-p/584057#M26131</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Gigi095 on Thu Oct 04 21:26:13 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried to save data to SD card using SPI mode.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I did the following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void SDcard_Init(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GPIOSetDir(3, 2, 1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint8_t i, response=0, retry=0 ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Send CMD0 to SDcard for SPI mode */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while(response != 0x01){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for (i=0;i&amp;lt;10;i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(0xFF);//80 clk cycles&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;response = SD_sendCommand(0, 0);//CMD0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;retry++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(retry&amp;gt;0xFE)//255 attempts&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("SD init fail..\n");//Give up&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}//time out&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(response==0x01)printf("SD init success..\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;uint8_t SD_sendCommand(uint8_t cmd, unsigned long arg)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint8_t response, retry=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(cmd | 0x40); //send command, first two bits always '01'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(arg&amp;gt;&amp;gt;24);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(arg&amp;gt;&amp;gt;16);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(arg&amp;gt;&amp;gt;8);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(arg);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (cmd == 8)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(0x87);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(0x95);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;while((response = SSP1_Receive()) == 0xFF)//if receive garbage, try again &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;retry++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(retry&amp;gt; 0xfe) break; //time out error&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//SSP1_Receive(); //extra 8 CLK&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//SD_CS_DEASSERT;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;return response; //return state&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I couldn't even get the right response when initializing the SD card.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anyone provide your code for interfacing SD card with LPC1114?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've seen some code for related FATFS stuff, but I don't understand that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can't we just treat SD card as a normal slave, and use the regular SPI protocol to communicate?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;BTW, is it possible to add more RAM on my LPC1114?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 00:05:56 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T00:05:56Z</dc:date>
    <item>
      <title>SDcard+LPC1114</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/SDcard-LPC1114/m-p/584057#M26131</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Gigi095 on Thu Oct 04 21:26:13 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried to save data to SD card using SPI mode.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I did the following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void SDcard_Init(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GPIOSetDir(3, 2, 1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint8_t i, response=0, retry=0 ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Send CMD0 to SDcard for SPI mode */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while(response != 0x01){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for (i=0;i&amp;lt;10;i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(0xFF);//80 clk cycles&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;response = SD_sendCommand(0, 0);//CMD0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;retry++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(retry&amp;gt;0xFE)//255 attempts&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("SD init fail..\n");//Give up&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}//time out&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(response==0x01)printf("SD init success..\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;uint8_t SD_sendCommand(uint8_t cmd, unsigned long arg)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint8_t response, retry=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(cmd | 0x40); //send command, first two bits always '01'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(arg&amp;gt;&amp;gt;24);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(arg&amp;gt;&amp;gt;16);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(arg&amp;gt;&amp;gt;8);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(arg);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (cmd == 8)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(0x87);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SSP1_Send(0x95);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;while((response = SSP1_Receive()) == 0xFF)//if receive garbage, try again &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;retry++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(retry&amp;gt; 0xfe) break; //time out error&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//SSP1_Receive(); //extra 8 CLK&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//SD_CS_DEASSERT;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;return response; //return state&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I couldn't even get the right response when initializing the SD card.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anyone provide your code for interfacing SD card with LPC1114?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've seen some code for related FATFS stuff, but I don't understand that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can't we just treat SD card as a normal slave, and use the regular SPI protocol to communicate?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;BTW, is it possible to add more RAM on my LPC1114?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:05:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/SDcard-LPC1114/m-p/584057#M26131</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:05:56Z</dc:date>
    </item>
  </channel>
</rss>

