AtMega1284p/644p и W5500 Ethernet

Множество тестовых примеров использующих ATMEGA 1284p/644p и Ethernet контроллер W5500.Собственно выкладываю ссылку на «распатроненный» мной Ethernet-стек для дешевого Ethernet контроллера на Wiznet 5500 SPI: m1284p_wiz5500
Основано на примерах для W5500 EVB (LCP13xx + W5500). Не Arduino С-код, довольно серьезно модифицировано(по причинам различий в архитектуре процессоров ARM и AtMega, a также немалого количества багов в коде приложений для W5500 EVB). Собиралось при помощи Eclipse Kepler с плагином AVR-Eclipse и тулчейном avr-gcc 4.9.2 (посредством самописного Makefile, думаю тоже соберется при желании).

Лирическое отступление. Почему Eclipse:
STM32, LPCxx, AVR, Mbed, Arduino-code — все собирается на нём вполне пристойно и меня эта IDE вполне устраивает. Или накрайняк пользую bare-bone console + gcc + make + Geany в качестве редактора (ну тут конечно, дело личных предпочтений, привычек, корпоративных правил и тд..).
AVR-Studio — извините после AVR Studio 4.xx новые «поделия ATMEL-Microchip» на дух не переношу (btw. MPLAB X-IDE также в топку)…

Железо проекта:

  • Плата MCU на базе AtMega1284p/644p (1284p конечно же предпочтительнее, если хотите запустить самые «толстые» примеры).
  • Дешевый адаптер W5500 c Aliexpress.
  • Плата SD-адаптера (потянет с Aliexpress или самопальная).
  • USB-Serial adapter, можно такой (если хотим смотреть Serial-debug).
  • Фото тестовой системы:

    Софт. Что сделано (в порядке усложнения и времени создания):

  • Wiznet Loopback TCP/UDP Static IP
  • Wiznet Loopback TCP/UDP DHCP IP
  • DNS пример
  • SNTP + DNS пример
  • Telnet server пример
  • ICMP(ping) пример
  • Простой Веб-сервер (одна страница HTTP POST/GET запросы)
  • HTTPD Веб-сервер со всем содержимымым в AVR FLASH-памяти (используются AJAX запросы)
  • HTTPD Веб-сервер со всем содержимымым на SD-карте (Chang FAT FS библиотека) (AJAX запросы)
  • FTP-клиент (работает только в активном режиме) c сохранением контента на SD-карте ( диалог FTPC посредством последовательно терминала например: Terminal v1.9b by Bray, putty и тд.)
  • FTP-сервер (работает в обоих режимах активный/пассивный) c сохранением контента на SD-карте, проверена работа с FTP клиентами: Windows 7 cmd — т.е ftp, FAR, Total Сommander (в нем надо добавить небольшой паттерн на выборку), WinSCP.
  • HTTPD + FTPD для динамической загрузки страниц Веб-сервера, весь контент на SD-карте (Chang FAT FS библиотека) (AJAX запросы)
  • ZEVERO SD PetitFS бутлоадер (для двух процессоров): M1284p/M644p
  • C обновлением через бутлоадер: Wiznet Loopback TCP/UDP Static IP + FTP-сервер (для обновления программы через FTP-клиент) + SD-бутлоадер ZEVERO, (для двух процессоров): M644p/M1284p
  • C обновлением через бутлоадер: Веб-сервер (с AJAX) + FTP-сервер (для обновления программы через FTP-клиент и загрузки контента Веб-сервера) + SD-бутлоадер ZEVERO, только для M1284p
  • IOT(Интернет вещей) Blynk-клиент пример с Blynk-приложением для смартфона (проверен только на Android (должен работать и в IOS)) — КОД НЕ АРДУИНО, использована библиотека Wiznet-сокетов
  • C обновлением через бутлоадер: IOT(Интернет вещей) Blynk-клиент + FTP-сервер (для обновления программы через FTP-клиент)+ SD-бутлоадер ZEVERO
  • TFTP клиент (тестировал на Windows7 Tftpd64 server)
  • MQTT клиент (LAN Mosquitto server)
  • Софт. Что хочу добавить:
    Ну пока все 🙂

    Примечания:
    Ethernet ENC28J60 от Lifelover (предварительное ознакомление с этим крайне рекомендую)

    PS.
    Долго думал, стоил ли выкладывать вообще, чтобы не начинать очередной «вселенский срач» время AVR ушло и тд… — но все-таки решил оставить «зарубку».

    PPS.
    Лучше брать «свежак» c гитхаба, так как пока подчищаю код…
    Источник