1

イーサネットシールドに取り付けられたSDカードにデータを書き込むためのいくつかのサンプルプログラムを試しましたが、どれも機能しませんでした。SDカードのサイズは4GBで、FAT32としてフォーマットされています。

イーサネットシールドは次のとおりです。

(Amazonで購入-Arduinoイーサネットシールド

ここに画像の説明を入力してください

これは、Netduinoアプリケーション(Netduino Plusアプリケーションではない)を作成するときに機能しないサンプルコードです(最初の行は例外をスローします)。

public static void Main()
{
    StorageDevice.MountSD("SD1", SPI_Devices.SPI1, Pins.GPIO_PIN_D10);

    string[] directories = System.IO.Directory.GetDirectories(@"\");
    Debug.Print("directory count: " + directories.Length.ToString());

    for (int i = 0; i < directories.Length; i++)
    {
        Debug.Print("directory: " + directories[i]);
    }

    string[] files = System.IO.Directory.GetFiles(@"\SD1");
    Debug.Print("file count: " + files.Length.ToString());

    for (int i = 0; i < files.Length; i++)
    {
        Debug.Print("filename: " + files[i]);
        FileStream fs = new FileStream(files[i], FileMode.Open, FileAccess.Read, FileShare.None, 512);
        StreamReader sr = new StreamReader(fs);
        Debug.Print("contents: " + sr.ReadToEnd());
    }
}

動作するプログラムの例はありますか?

解決:

クリスとジェームズのおかげで、SDカードに書き込みと読み取りを行うことができました。すべてをまとめた後、他の誰かが同じ問題に直面した場合に備えて、私は記事を書きました。

4

2 に答える 2

2

Arduinoイーサネットシールドの最新リビジョンは、「ICSP」ヘッダー(ボードの右側にある3x2、6ピンヘッダー)を使用して通信します。SDカードに送られる入出力データはこれらのピンを経由します。

互換性のために、これらの同じヘッダーをNetduinoに含めました。このシールドを使用するには、適切なヘッダーをNetduinoにはんだ付けする必要があります。それならあなたは行ってもいいはずです!

ところで、NetduinoPlusにはMicroSDとファストイーサネットネットワークが統合されています...これも簡単なソリューションかもしれません。 http://www.netduino.com/netduinoplus/

クリス(Secret Labs LLC)

于 2011-10-21T09:00:17.603 に答える
0

このフォーラムページhttp://forums.netduino.comでリファレンスを見つけました

「現在、SDカードを機能させるにはD10とD4の間にジャンパー線を配置する必要がありますが、本番環境のv4.1.1 firwmare(SDカードのチップセレクトラインを指定できます)では必要ありません。 。」

SDカードにはD10ではなくD4を使う必要があると思います。同じページで、D10がイーサネットのSSピンであると述べた他の参考資料をいくつか見つけました。ダウンロードページで入手できるファームウェアは現在4.1.0しかないため、おそらくジャンパーが必要になります。これをテストすることはできませんが、フォーラムのリンクは良い出発点になるはずです。

于 2011-10-20T16:58:00.123 に答える