AtMega1284p/644p и W5500 Ethernet

AVR

Множество тестовых примеров использующих 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 вполне устраивает. Или использую console + gcc + make + Geany в качестве редактора (ну тут конечно, дело личных предпочтений, привычек, корпоративных правил и тд..).
AVR-Studio — извините после AVR Studio 4.xx новые «поделия ATMEL-Microchip», мне не нравятся (btw. MPLAB X-IDE также в топку)…

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

Фото тестовой системы:
m1284p_w5500_tested_system

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

Софт. Что хочу добавить :
  1. TFTP-client bootloader (combined with Zevero SD-Bootloader)
  2. CoAP/microCoAP example
  3. Support for EUI-48 MAC generator (25AA02E48 — Microchip OUI)


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

AVR и Eclipse:


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

PPS.
Лучше брать «свежак» c гитхаба, так как пока подчищаю код…
  • ?
  • 10 апреля 2019, 23:25
  • maxxir
  • 1
Файлы в топике: m1284p_wiz5500_10_04_2019.zip

Комментарии (9)

RSS свернуть / развернуть
W5500 от ЭМ помех зависает на мертво, при чем вся цифровая часть работает отлично, но вот сетевая висит, ни программный ни аппаратный сброс не спасает, только снятие питания. Столкнулся с этим на одном из заводов. Для теста дома брал контактор на 220 В и замыкал «сам на себя», получал импульсы с частотой 50 Гц. Проверил W5100, W5200 и W5500, зависают все, но 5100 и 5200 через аппаратный сброс восстанавливают свою работу, а 5500 нет :(
Не тестировали?
0
  • avatar
  • ZiB
  • 16 апреля 2019, 14:18
Т.е при прочих равных меняете только сетевой контроллер а MCU плата во всех тестах одинаковая?
0
не зависит от мк, stm32 кстати вырубить таким методом не получилось :)
0
А вот это уже интересно. Т.е. STM32 c аппаратным MII/RMII PHY, не вырубился, там где Wiznet'ы сбоят?
0
я говорил о самом МК без конкретики по какой либо периферии
аппаратный MII/RMII PHY я не проверял :(
0
хотя, нет. вот такую плату проверял ziblog.ru/2013/11/23/pervoe-vklyuchenie-udk-32f107v-ot-unidk.html тоже виснет, но сброс помогает.
0
в общем с этим «тестиром» я прошелся по всему оборудованию :) вырубает всё, да же монитор LG с расстояние 20-30 см :)
0
В условиях сильных ЭМ помех, применил бы экранированный пактчкорд FTP/SSTP,
а также были бы весьма желательны ферритовые фильтры ZCAT.
0
Применять можно всё что угодно, но если железка не работает должным образом (т.е. сброс) это уже другой вопрос…
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.