Netduino + Ethernet Shield:如何写入SD卡?

时间:2011-10-19 15:49:45

标签: netduino

我已经尝试了几个示例程序将数据写入Ethernet shield上安装的SD卡,但都没有。 SD卡大小为4 GB,格式为FAT32

以太网屏蔽如下:

(在亚马逊上购买 - Arduino Ethernet Shield

Enter image description here

这是在创建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());
    }
}

有工作程序示例吗?

解决方案:

感谢Chris和James,我设法写入SD卡并从中读取。将所有内容放在一起后I wrote an article,万一其他人都面临同样的问题。

2 个答案:

答案 0 :(得分:2)

最新版本的Arduino Ethernet Shield使用“ICSP”接头(板右侧的3x2,6针接头)进行通信。进入SD卡的输入/输出数据将通过这些引脚。

我们在Netduino中包含了这些相同的标题以实现兼容性;要使用这个盾牌,你需要将适当的标题焊接到你的Netduino上。那你应该好好去!

BTW,Netduino Plus集成了MicroSD和快速以太网网络......这也是一个简单的解决方案。 http://www.netduino.com/netduinoplus/

Chris(Secret Labs LLC)

答案 1 :(得分:0)

我在此论坛页面http://forums.netduino.com

上找到了参考
  

“你现在需要在D10和D4之间插上一根跳线才能获得   SD卡可以工作 - 虽然这不是必需的   生产v4.1.1 firwmare(这将让你指定SD卡的   芯片选择线)。“

这让我觉得您需要使用D4而不是D10作为SD卡。我在同一页面上发现了一些其他参考文献,提到D10是以太网的SS引脚。其下载页面上的固件目前仅为4.1.0,因此您可能需要跳线。我无法测试这个,但论坛链接应该是一个很好的起点。