Arduino Ethernet扩展板W5100使用的问题

Arduino Ethernet扩展板W5100使用的问题

虽然Arduino官方已经停止了对W5100以太网扩展板的更新和支持,但由于其国产化之后有很高的性价比,因此在物联网项目应用中还有着很大的市场空间。

标准的W5100扩展板集成了RJ45标准接口的百兆以太网口,通过SPI接口和Arduino通讯,可以实现各种标准的以太网协议(基于TCP或者UDP)。同时,该卡还集成了TF卡(micro-SD)接口,可以TF卡来进行数据存储,通过Arduino实现数据的持久化保存。

Arduino Ethernet扩展板使用注意事项

按照官方文档介绍,在扩展板上标有“INT”标志的焊点可以连接起来,从而可以接受从W5100发出的中断事件信号,但是Ethernet库不支持此功能,该焊点将W5100的INT中断引脚连接到了Arduino的引脚2上。

Arduino W5100以太网扩展板通过ICSP接口的SPI总线和Arduino进行通讯,这需要占用Arduino的部分引脚。

  • Arduino UNO 的引脚10,11,12和13被占用
  • Arduino Mega的50,51,52和53引脚被占用
  • 由于扩展板的SD卡模块和以太网模块公用总线,在UNO和Mega上,引脚10(以太网)和4(SD卡)被用来进行模块选择。因此引脚4和10不能再被定义为常规IO引脚使用。
  • Mega的引脚53作为硬件SS引脚,必须被定义为输出端口,否则扩展板可能不能正常工作。

注意因为SD模块和W5100公用SPI总线,因此如果要同时使用两者,在程序设计时必须非常小心地控制应答和时序,否则容易出现冲突和错误。如果仅使用其中一个,可以通过信号引脚显式指定。

  • 如果仅仅使用SD卡,那么需要把引脚4配置为输出并写入高电平
  • 如果仅使用W5100则需要把引脚10配置为输出并写入高电平

Arduino Ethernet扩展板按钮和信号

扩展板的Reset按钮同时复位扩展板和Arduino,板载LED信号灯含义如下:

  • PWR: 红色指示灯,电源上电即亮
  • LINK: 亮起表示设备已连接,有信号传输时闪烁
  • FULLD: 工作在百兆全双工模式下时亮起
  • RX: 收到数据时闪烁
  • TX:发出数据时闪烁

Arduino Ethernet扩展板上电无法启动的问题解决

由于Ethernet板启动时间比Arduino稍晚一点点,因此在系统上电的时候可能存在由于Arduino无法找到W5100而导致W5100无法启动的情况,需要通过Reset按钮手动启动或者通过串口连接Arduino来重新激活W5100。按照官方文档介绍,扩展板内置了一个Reset的控制器来保证W5100在上电时可以正常重启,但这一控制器仅支持Uno主板而不支持Mega主板。在实际使用中,采用Mega主板和W5100共同工作时,确实存在上述问题。

这一问题可通过外接一个RC震荡回路解决。参考Some Fun with a Cloned Arduino and W5100 Ethernet ShieldArduino and w5100 Ethernet shield issues两篇文章给出的解决方案,在W5100的Reset键和地之间连接一个220欧姆的电阻和一个220微法的电解电容,在系统上电时W5100会重置一次,从而保证可以可靠上电和工作,该方法实测有效。

rc_circuit
rc_circuit

在以上文章和相关资料中还列出了一些其他解决方案,但实测时均未能解决该问题。这些方法包括在Reset引脚和地之间连接10纳法电容,在Arduino Setup函数开始增加一个delay(50)的延时,以及将ArduinoW5100的reset引脚手工折弯分开,通过一个引脚来复位W5100等等。

作者
魏智勇(John)
加入讨论

此站点使用 Akismet 来减少垃圾评论。了解我们如何处理您的评论数据

魏智勇(John)

站长,80后,创业者,擅长工业自动化与信息化技术,熟悉各种PLC,组态软件,熟悉计算机技术,熟悉LabVIEW、C,C#,JavaScript程序设计技术。