[フレーム]
Keil Studio Cloud

Important update: Arm Announces End of Life Timeline for Mbed. This site will be archived in July 2026. Read the full announcement.

SD Card File System

A library to allow SD Cards to be accessed as a filesystem, using an SPI interface.

This library supports:

  • FAT12 / FAT16 / FAT32
  • SD / SDHC cards up to 32Gb
  • long filenames
  • time stamp

Hello World!

Import program

00001 #include "mbed.h"
00002 #include "SDFileSystem.h"
00003  
00004 SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board
00005  
00006 int main() {
00007  printf("Hello World!\n"); 
00008  
00009  mkdir("/sd/mydir", 0777);
00010  
00011  FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
00012  if(fp == NULL) {
00013  error("Could not open file for write\n");
00014  }
00015  fprintf(fp, "Hello fun SD Card World!");
00016  fclose(fp); 
00017  
00018  printf("Goodbye World!\n");
00019 }

Library

The SDFileSystem library, for accessing SD Cards using fopen, fprintf, etc.

Import library SDFileSystem

SDFileSystem

Last commit 09 Sep 2016 by mbed official

Details

SD Cards are widely used by loads of devices for storage; phones, mp3 players, pc's etc. That means they are a very cheap option for storing large amounts of non-volatile data (i.e. the data is not lost when the power is removed). They should be ideal for data logging and storing audio/images.

SD and MMC cards support various protocols, but common to them all is one based on SPI. This is the one used here as, whilst not being the most high performance, it uses a generic SPI interface so will be more portable.

SD Cards are block devices. That means you read/write data in multiples of the block size (usually 512-bytes); the interface is basically "read from block address n", "write to block address m". Note that a filesystem (e.g. FAT) is an abstraction on top of this, and the disk itself knows nothing about the filesystem.

Based on a SparkFun MicroSD Breakout Board, here is the wiring that will work (you can obviously use either SPI port, and any DigitalOut):

/media/uploads/simon/usd-breakout_i_ma.jpg

SparkFun MicroSD Breakout Board
MicroSD Breakout mbed
 CS o-------------o 8 (DigitalOut cs)
 DI o-------------o 5 (SPI mosi)
 VCC o-------------o VOUT
 SCK o-------------o 7 (SPI sclk)
 GND o-------------o GND 
 DO o-------------o 6 (SPI miso)
 CD o

Warning

Note that VCC is 3.3V from mbed's VOUT pin. Do not use 5V from mbed's VU pin. 5V power will damage the SD card. VOUT and VU are adjacent pins on some mbed platforms, so double check the jumper wire!


The CD (card detect) pin is optional and not used in the example program, but it can be used to detect a card in the micro SD socket. CD connects to ground when no card is present. No connection is made once a card is inserted. It can be read using a DigitalIn pin, if the mode is set to PullUp.

Reference


All wikipages
Recent changes
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.

Access Warning

You do not have the correct permissions to perform this operation.

×

AltStyle によって変換されたページ (->オリジナル) /