SD card Reader with SD card detect

Dependencies:   FATFileSystem

Fork of SDFileSystem by mbed official

Files at this revision

API Documentation at this revision

Comitter:
anevil14
Date:
Mon Apr 27 04:08:38 2015 +0000
Parent:
2:c8f66dc765d4
Commit message:
sd card reader with sd card detect;

Changed in this revision

SDFileSystem.cpp Show annotated file Show diff for this revision Revisions of this file
SDFileSystem.h Show annotated file Show diff for this revision Revisions of this file
--- a/SDFileSystem.cpp	Thu Nov 29 10:56:21 2012 +0000
+++ b/SDFileSystem.cpp	Mon Apr 27 04:08:38 2015 +0000
@@ -115,13 +115,15 @@
 #include "SDFileSystem.h"
 #include "mbed_debug.h"
 
+
 #define SD_COMMAND_TIMEOUT 5000
 
 #define SD_DBG             0
 
-SDFileSystem::SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name) :
-    FATFileSystem(name), _spi(mosi, miso, sclk), _cs(cs) {
+SDFileSystem::SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName cd, const char* name) :
+    FATFileSystem(name), _spi(mosi, miso, sclk), _cs(cs), _cd(cd){
     _cs = 1;
+    _cd.mode(PullUp);
 }
 
 #define R1_IDLE_STATE           (1 << 0)
@@ -198,7 +200,7 @@
     debug("Timeout waiting for v2.x card\n");
     return SDCARD_FAIL;
 }
-
+        
 int SDFileSystem::disk_initialize() {
     int i = initialise_card();
     debug_if(SD_DBG, "init card = %d\n", i);
@@ -348,7 +350,17 @@
     _spi.write(0xFF);
     return -1; // timeout
 }
-
+bool SDFileSystem::SDInserted()
+{
+    if (_cd)
+    {
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
 int SDFileSystem::_read(uint8_t *buffer, uint32_t length) {
     _cs = 0;
     
--- a/SDFileSystem.h	Thu Nov 29 10:56:21 2012 +0000
+++ b/SDFileSystem.h	Mon Apr 27 04:08:38 2015 +0000
@@ -51,14 +51,14 @@
      * @param cs   DigitalOut pin used as SD Card chip select
      * @param name The name used to access the virtual filesystem
      */
-    SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name);
+    SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName cd, const char* name);
     virtual int disk_initialize();
     virtual int disk_status();
     virtual int disk_read(uint8_t * buffer, uint64_t block_number);
     virtual int disk_write(const uint8_t * buffer, uint64_t block_number);
     virtual int disk_sync();
     virtual uint64_t disk_sectors();
-
+    bool SDInserted();
 protected:
 
     int _cmd(int cmd, int arg);
@@ -73,9 +73,9 @@
     int _write(const uint8_t *buffer, uint32_t length);
     uint64_t _sd_sectors();
     uint64_t _sectors;
-    
     SPI _spi;
     DigitalOut _cs;
+    DigitalIn _cd;
     int cdv;
 };