Наши контакты: +380958663605

inhelp@i.ua

Подключение ENC28J60 к arduino mega 2560

29 Май 2015

Комментарии:

17
 Май 29, 2015
 17
enc28j60

В интернете много статей по подключению сетевого модуля ENC28J60 к различным платам arduino, но нет информации по подключению к плате arduino mega 2560 и сегодня мы более подробно рассмотрим это подключение. Для демонстрации работы модуля с ардуино мега 2560 смотрите видео.

Теперь немного познакомимся с самим сетевым модулем и его характеристиками

Блок схема ethernet модуля ENC28J60 :

Блок схема сетевого модуля ENC28J60

Блок схема сетевого модуля ENC28J60

Основные характеристики ethernet модуля ENC28J60:

  • чип ENC28J60 Ethernet, корпус SOP28
  • SPI интерфейс
  • 1×10 разъем подключения к ардуино
  • встроенный разъем RJ45
  • светодиод на питании
  • питание: +3.3В
  • рабочая частота 25МГц
ENC28J60

Сетевой модуль ENC28J60

Контакты модуля ENC28J60:

enc28j60 pinout

Контакты enc28j60

Где купить ENC28J60 (ссылки на продавцов):

AliExpress.com Product — ENC28J60 SPI interface network module Ethernet module (mini version)

Настройка библиотеки для работы с модулем ENC28J60:

Для начала работы с модулем ENC28J60 скачаем две библиотеки

EtherShield ETHER 28J60

Для подключения плат arduino uno, arduino nano, arduino pro mini и других , в библиотеках ничего менять не надо…

Для подключения сетевого модуля к arduino mega 2560, нам потребуется в папке библиотеки etherShield

Папка etherShield

Папка etherShield

открыть с помощью графического редактора файл enc28j60.c и в нем отредактировать строки выделенные красным цветом ( прописать пины для подключения к arduino mega)

файл библиотеки enc28j60.с

файл библиотеки enc28j60.с

у нас должно получится так

отредактированный файл enc28j60.с

отредактированный файл enc28j60.с

Старые значения пинов для обычных плат ардуино я не удалял а просто закомментировал .

Теперь в папке библиотеки ETHER_28J60 

Файл ETHER_28J60.срр

Файл ETHER_28J60.срр

откроем файл ETHER_28J60.cpp и отредактируем строки выделенные красным цветом

Файл ETHER_28J60

 

а точнее изменим размер двоих буферов ( смотрите на фото ниже)

Отредактированный файл ETHER_28J60

Отредактированный файл ETHER_28J60

Теперь сохраняем файлы и устанавливаем наши библиотеки в arduino IDE 1.0.5 ( с версией 1.6.2 библиотеки не работают)

Схема подключения модуля ENC28J60 к Arduino mega 2560:

Подключение arduino mega 2560 к enc28j60

Подключение arduino mega 2560 к enc28j60

Подключаем по схеме:

  • Arduino mega GND — enc28j60 pin GND
  • Arduino mega +3.3v — enc28j60 pin VCC
  • Arduino mega pin 50 — enc28j60 pin SO (MISO)
  • Arduino mega pin 51 — enc28j60 pin SI (MOSI)
  • Arduino mega pin 52 — enc28j60 pin SCK
  • Arduino mega pin 53 — enc28j60 pin CS

После подключения платы, открываем тестовый скетч из примеров

sketch

и в открытом скетче

в строке

пропишем IP адрес нашего модуля в диапазоне адресов нашей подсети ( у меня диапазон IP адресов от 192.168.0.1 до 192.168.0.255 ) и я в строке указал  IP адрес  192.168.0.9

Загружаем наш скетч в плату и отроем страничку браузера по адресу http://192.168.0.9

Отображение в браузере

Отображение в браузере

Теперь немного изменим наш скетч и добавим отображение текста на русском языке «Привет мир» и добавим картинку.

Для правильного отображения текста на русском языке добавим в начале строку

а для отображения картинки добавим строку

Загрузим наш скетч и снова откроем браузер

Отображение в браузере

Отображение в браузере

Как видим надпись на русском языке и картинка отображаются правильно.

Теперь подключим три скетодиода к пинам 11, 12, 13 на плате ардуино мега и загрузим мой. немного переработанный скетч, который позволит нам управлять светодиодами через веб браузер.

откроем браузер и поморгаем светодиодами как на видео в начале статьи

Управление светодиодами

Управление светодиодами

На этом все, удачных Вам проектов.

17 responses on “Подключение ENC28J60 к arduino mega 2560

  1. Иван:

    У вас ошибка в описании подключения модуля…
    На картинке все верно, а в тексте надо заменить RST на CS — у меня не работало, пока не присмотрелся внимательно к картинке ;)
    Переподключил, все побежало ;)

    • Исправил, спасибо большое за подсказку!

      • Иван:

        А нет случайно под рукой ссылки на статью, где описывается как повесить на один SPI на меге два модуля, и настроить их стабильную работу??
        Один — как раз этот ENC28J60, другой — радио модуль nRF24L01+.
        Надо их вдвоем подключить, а SPI один )))

        • Максимка:

          все дело в прописи СS пина, айпи один будет с мак адресом, это в теории а вот на практике как не знаю!

          • Иван:

            Говорят не в одном этом дело. Говорят что множество устройств на одной SPI шине проваливают по напряжению MISO и типа после отключения по CS пину, устройство все равно продолжает мешать общению по MISO/MOSI другому устройству… Так что надо искать хардварный метод решения проблемы…

          • Иван:

            А раскидывать CS пины на разные ноги пробовал. Даже в библиотеке менял номера выводов, к которым привязывается ENC, сервер работает, но жутко висит и быстро отваливается… так что вот так ))) Подтверждение того, что вместе они на одной шине не дружат.

  2. serg:

    что не так…версия правильная 1,0,5 буду признателен за помощь …

    C:\Users\User\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:26:22: error: WProgram.h: No such file or directory
    C:\Users\User\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp: In member function ‘void ETHER_28J60::setup(uint8_t*, uint8_t*, uint16_t)’:
    C:\Users\User\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:52: error: ‘delay’ was not declared in this scope
    C:\Users\User\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp: In member function ‘char* ETHER_28J60::serviceRequest()’:
    C:\Users\User\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:112: error: ‘strncmp’ was not declared in this scope
    C:\Users\User\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:120: error: ‘strncmp’ was not declared in this scope
    C:\Users\User\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp: In member function ‘void ETHER_28J60::print(int)’:
    C:\Users\User\Documents\Arduino\libraries\ETHER_28J60\ETHER_28J60.cpp:152: error: ‘itoa’ was not declared in this scope

  3. Максимка:

    при подключении меги все работает не долго! хотя на библиотеке EtherCard все работает устойчиво, проверил на UNO 24/7. Но возникла сложность, не смог ее настроить под мегу. может кто подскажет?

  4. Алексей:

    не советую покупать этот шилд редкостный шлак! Устройства зависает постоянно

  5. Сергей:

    А можно подключит шилд к другим pin (не к 50-53, а, например 38-41)? Просто к этим pin уже подключен другой модуль (rfid-rc522). Пробовал задавть в библиотеке вместо 50-53 pin свои, не заработало :/.

  6. Денис:

    Изменил размер буфера, но тем не менее после превышения веса страницы 1500кб все просто зависает. Кто что может сказать?

  7. Денис:

    1500 байт а не кб)

  8. Nick:

    А можно ли не инициализируя enc28j60 просто записать и считать у неё какой-нибудь регистр ?

  9. Sergej102:

    И как заставить работать на IDE 1.6.8? в статье идет упоминание то с 1.6.x библиотеки эти не работают, а новее не нашел :((

    • Sergej102:

      Нашёл библиотеку, работающую на на IDE 1.6.8.
      Не помню уже где, но выложил на yandeks диске https://yadi.sk/d/SRKMKxxpscoFs
      Сейчас бьюсь над проблемой: чтоб дисплей TFT LCD 320×240 на чипе ILI9340C заработал вместе с этим модулем на одной шине. По отдельности работают, а вместе — гаснет дисплей :( CS разные сделал у них

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

пять × 2 =