SDFileSystem - SDメモリカード

SD Card File System - SDメモリカード

http://mbed.org/handbook/SDFileSystem

SPIインターフェースへ接続したSDメモリーカードのファイルを操作する。
実際にはMMC(マルチメディアカード)として制御している。

SDメモリーカードを扱うためには、いくつかのライブラリを選択できる。

Import librarySDFileSystem

SDFileSystem

  • SDFileSystem
  • ChaNFSSD - ChaN氏のFatFsをベースにしFAT32やロングファイルネーム対応、SDFileSystem互換

blockdiagram

	+--------+
	|        |VOUT---+               ,--------+
	|        |       +-[47k]-----DAT2|9       |
	|      p8|CS-----|-------------CS|1       |
	|      p5|MOSI---|------------CMD|2       |
	|        |       |       +---VSS1|3   SD  |
	|  mbed  |       +-------|----VDD|4 memory|
	|      p7|SCK----|-------|----CLK|5  card |
	|        |       |       +---VSS2|6       |
	|      p6|MISO---|-------|---DAT0|7       |
	|        |       +-[47k]-|---DAT1|8       |
	|        |GND------------+       +--------+
	+--------+

Import programSDFileSystem_HelloWorld

SD File System Hello World

初期化

SDFileSystem name(mosi, miso, sck, cs, mount);

name:任意の名前
mosi: MOSIピン
miso: MISOピン
sck: SCKピン
cs: CSピン(デジタル出力)
mount:任意のマウントポイント

ファイル操作

C言語の fopen, fputc, fputs, fgets, fgets, fprintf, fscanf, fseek 等を参照。

#include "mbed.h"
#include "SDFileSystem.h"

SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board

int main() {
    printf("Hello World!\n");   

    mkdir("/sd/mydir", 0777);
    
    FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
    if(fp == NULL) {
        error("Could not open file for write\n");
    }
    fprintf(fp, "Hello fun SD Card World!");
    fclose(fp); 

    printf("Goodbye World!\n");
}

備考

  • FAT12 / FAT16 / FAT32
  • SD / SDHC カード 32Gバイトまで
  • ロングファイル名対応
  • タイムスタンプ対応

詳細 戻る


2 comments on SDFileSystem - SDメモリカード:

07 Dec 2013

blockdiagramのCDカード側のCDはCSの間違いではないでしょうか。 また、MISOとMOSIの接続は逆なのではと思います。 (当方の勘違いでしたらすみません)

09 Jul 2014

確かに間違ってますね。修正します。 ご指摘ありがとうございます。

Please log in to post comments.