[转] 关于W5100+SD的冲突及解决

Home / 博客 / [转] 关于W5100+SD的冲突及解决

原文来自“极客工坊”:http://www.geek-workshop.com/thread-694-1-1.html

原作者:“沧海笑1122”

 

“上手W5100时,购买的是一款带SD卡槽的以太网扩展板,刚开始测试,webserver运行正常,但是很不稳定,需要反复拔卡、上电。当时怀疑了几个地方:
一是USB供电电压不稳定,所以使用了外接9V电池,问题依然如故,不稳定,piing得通,但是访问时,更新了几次网页,就报“网址找不到”或者“服务超时”。
二是怀疑UNO的小体格,资源不够,就进了一块2560,结果,好了一点,可是问题依然没有解决。

在HEAVEN的建议下,开始查看一些资料,才知道原来方向错误,是板卡上的SD卡与W5100芯片的冲突。
拔掉SD卡,一切正常,问题不能这么干啊,我们买的就是带SD卡槽的啊,于是
查看了一篇文章,来自于http://www.ladyada.net/learn/arduino/ethfiles.html,讲得很清楚。

是这么说的:

First thing to note is that the SS (Slave Select) pin for the card is digital 4 (although as of the writing of this mini-tutorial, the schematic hasn’t been updated, you’ll have to trust me!)

Open up the SdFatInfo example sketch and change the line in loop() from
uint8_t r = card.init(SPI_HALF_SPEED);
To:
pinMode(10, OUTPUT);                       // set the SS pin as an output (necessary!)//将SS针设置为输出。
digitalWrite(10, HIGH);                    // but turn off the W5100 chip! //关闭W5100芯片
uint8_t r = card.init(SPI_HALF_SPEED, 4);  // Use digital 4 as the SD SS line //使用数字4作为SD卡得SS线

Be sure to add those two extra lines right before-hand! They Enable the SPI interface. If you’re on a Mega, use pin 53 instead of 10//如果是MEGA,记得使用53针取代10针。

解决好SS冲突后,一切正常,这篇文章给出了使用SD与W5100配合做一个简单的显示CSV文件的webserver,希望对你有帮助。”

 

Arduino Ethernet SD.rar