Модуль ENC28J60 SPI Ethernet

Модуль построен на одноимённой микросхеме производства Microchip – крупного производителя микроэлектроники. Контроллер реализует физический слой интерфейса Ethernet, позволяет использовать полудуплексный или дуплексный режим. Совместим со спецификацией IEEE 802.3.

Микросхемой поддерживается один порт 10BASE-T (10Мбит/с).

Со стороны микроконтроллера в качестве интерфейса обмена используется SPI на скорости до 20мБод. Всё общение с модулем, в том числе конфигурирование и непосредственно передача пакетов, происходят через него.

Для более гибкой конфигурации, модуль не реализует в себе стек TCP/IP, что позволяет реализовать его на стороне управляющего микроконтроллера. Отнимая процессорное время, это также даёт возможность использовать другие протоколы, использующие Ethernet в качестве физического уровня, как, например, Modbus-TCP.

Схема подключения модуля ENC28J60 SPI Ethernet

На изображении ниже представлена схема подключения модуля Ethernet.

Код для подключения модуля ENC28J60 SPI Ethernet

В примере ниже показано, как подключить вывод модуля ENC28J60 SPI Ethernet к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).


#include <EtherCard.h>

static byte mymac[] = { 0x74, 0x69, 0x69, 0x2D, 0x30, 0x31 };

byte Ethernet::buffer[700];

void setup () {
  Serial.begin(57600);
  Serial.println(F("\n[testDHCP]"));

  Serial.print("MAC: ");
  for (byte i = 0; i < 6; ++i) {
    Serial.print(mymac[i], HEX);
    if (i < 5)
      Serial.print(':');
  }
  Serial.println();

  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
    Serial.println(F("Failed to access Ethernet controller"));

  Serial.println(F("Setting up DHCP"));
  if (!ether.dhcpSetup())
    Serial.println(F("DHCP failed"));

  ether.printIp("My IP: ", ether.myip);
  ether.printIp("Netmask: ", ether.netmask);
  ether.printIp("GW IP: ", ether.gwip);
  ether.printIp("DNS IP: ", ether.dnsip);
}

void loop () {}

Скачать файл с кодом, формат .INO: Модуль Ethernet