【问题标题】:ENC28J60 (EtherCard) and SD card (SdFat) at the same time on Arduino Mega在 Arduino Mega 上同时使用 ENC28J60 (EtherCard) 和 SD 卡 (SdFat)
【发布时间】:2013-05-22 16:33:24
【问题描述】:

我设计了一个基于 Arduino Mega 的开发板,它使用 WizNET 以太网 shield 和随附的 SD 读卡器。使用标准以太网库和 SdFat 可以正常工作。

现在我已更改我的硬件设计以使用来自 ElecFreaks 的 ENC28J60 Ethernet boardElecFreaks SD card breakout board。该决定是为了更好地设计一个可以安装到电柜中的 DIN 导轨上的外壳。我一直使用 SdFat,但我不得不使用 EtherCard 库与 ENC28J60 通信。

我已将 mega 的 Pin 13 和 Pin 14 用于我的芯片选择线,并将两块板连接到 SPI 总线。使用库中的示例文件,两个板都可以完美地工作。我从 SD 卡上的文件中读取我的配置,并使用文件中的值设置我的以太网。到现在为止还挺好。 SD 卡被正确访问,以太网板响应 ping 请求。现在的问题是,我似乎无法向以太网板发出 TCP 请求。

如何让这两个板子协同工作?

这里有一些代码应该可以解决问题,但它没有。

//Initial request
char request_uri[] = "/foo/bar/";
Stash::prepare(PSTR("GET $F HTTP/1.1" "\r\n"
    "User-Agent: arduino/1.5.2" "\r\n"
    "\r\n"),
  request_uri);

ether.copyIp(ether.hisip, target_ip);
ether_sessionID = ether.tcpSend();
request_timer = millis() + REQUEST_TIMEOUT;

//And in the loop
ether.packetLoop(ether.packetReceive());

//Function called after initial request in loop (different state)
void checkTcpResponse() {
    const char* reply = ether.tcpReply(ether_sessionID);

    if (reply != 0) {
        Serial.println(reply);
    }
    else {
        if (millis() > request_timer) {
            Serial.println("Timeout reached");
            state = STATE_RESET;
            delay(1000);
        }
    }
}

//This is just cut from the code, so it is not complete, etc.

在执行请求时,我正在查看已连接 Web 服务器的 access.log。什么都没有发生 :( 如前所述,使用 EtherCard 库的 WebClient 示例,对给定 Web 服务器的请求可以正常工作并显示在日志中。

【问题讨论】:

  • 顺便说一句,这是基于 Ethercard 库中的 NoIPClient 示例...

标签: c++ arduino sd-card ethernet


【解决方案1】:

我知道你在一年前问过这个问题,但似乎没有人给你任何帮助。

我在使用 enc28j60 以太网卡和 SD 卡时遇到了类似的问题。两者都单独工作,但不能一起工作。

我解决了这个问题,但使用单独的电源给我 3.3 伏。

我使用了其中一种面包板电源,可同时提供 3.3 和 5 伏电压。

通过面包板连接时我仍然遇到一些问题。

我认为面包板连接有点不可靠,所以我通过直接从额外的电源引脚获取电源来解决这个问题。

在 5 伏电压下,有足够的电源为实时时钟和 LCD 显示器供电。

您现在可能已经解决了您的问题,但其他人可能会觉得这很有用。

【讨论】:

  • 出于我的目的,我已切换到 BeagleBoneBlack。但感谢您花时间回答。显然它必须是电源:-/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多