Проблемы с Ethernet shield

rene
Offline
Зарегистрирован: 21.01.2014

Доброго времени суток!

Есть опыт создания веб сервера под ардуино mega2560 в связке с Wiznet W5100. Все работает, нареканий нет.

Недавно понадобилось создать еще 6 аналогичных девайсов. Закупил 6 шилдов, но уже W5500 Ethernet Shield v1.0. Так вот, код с этимм шилдом не работает, зависает на строке server.begin();

Пробовал использовать стандартные примеры, результат тот же, зависает на строке с методом begin, например для стандартного примера DhcpAddressPrinter зависает на строке Ethernet.begin(mac)

Поиск в гугле ничего не дал, пробовал заменить шилд из той же серии и контроллер (даже пробовал uno) не помогло. Может кто сталкивался с подобными проблемами с данным шилдом?

rene
Offline
Зарегистрирован: 21.01.2014

Разобрался. Для данного шилда используются модифицированная библиотека. Скачал с сайта необходимые файлы, заменил ими файлы в стандартной библиотеке и заработало.

inspiritus
Offline
Зарегистрирован: 17.12.2012

А что помешало выложить ссылки на модифицированные библиотеки для нового шильда ?

еще рассказали бы свои впечатления от нового чипа, предпосылки выбора именно его, в противовес испытанному и приработавшемуся 5100...

А то подразнились и убежали...

rene
Offline
Зарегистрирован: 21.01.2014
Действительно...
Описание шилда тут, библиотеки можно скачать тут. Библиотеки для версии Arduino IDE 1.0.x/Ethernet у меня так и не заработала,1.5.x заработало после того, как снес копию старой библиотеки.
 
 
Впечателений от шидла пока нет, как будут, отпишусь. Выбирал его сам заказчик, потому что новый и красивый :)
Oberon
Offline
Зарегистрирован: 16.05.2016

Не знаю куда написать, пусть будет тут.

Пришли мне китайские w5500  начал подключать. На nano и pro mini работают, а на uno и mega2560 нет. У кого какие идеи ? Симптомы такие: присваивается совершенно левый ip. На меге в мониторе порта показывает постоянно 255.255.255.255, а на уно 192... дальше по разному. Причем ip из скетча пингуется. Пробовал на библиотеке wiznet 1.5 и ethernet2 отсюда. Результат одинаковый.

alexvs
Offline
Зарегистрирован: 22.07.2014

Работает точно такой же на Меге, без проблем.  

Работает замечательно, по крайней мере, под моей задачей значительно лучше, чем обычный W5100. Библиотеку использую Ethernet2.h.

Возможно дело в инициализации, к какому пину вы подключили вывод SCS? В библиотеки прописан пин 10, а не 53.

  inline static void initSS()    { DDRB  |=  _BV(4); }; 
  inline static void setSS()     { PORTB &= ~_BV(4); };
  inline static void resetSS()   { PORTB |=  _BV(4); };

Если хотите, что бы на 53 работало, замените 4 на 0.

inspiritus
Offline
Зарегистрирован: 17.12.2012

Значительно лучше в чем, по каким критериям?

У меня 5100 дурил из-за кривого ресета, пока не сделал принудительный прграммно с пина.

alexvs
Offline
Зарегистрирован: 22.07.2014

inspiritus пишет:

Значительно лучше в чем, по каким критериям?

У меня 5100 дурил из-за кривого ресета, пока не сделал принудительный прграммно с пина.

При использовании W5100 в проекте, из за того, что объем информации, которую требовалось распарсить состовлял 15-18Кб (это в XML, в JSON - чуть меньше), мне пришлось изменить размер буфера с 2Кб до 4Кб, соответсвенно уменьшить количество сокетов с 4 до 2, иначе большая часть информации просто терялась. Уменьшение количества сокетов привело к тому, что одновременно (условно одновременно) система не могла выполнять роль web-серврера и web-клиента.

У W5500 имеется уже 8 сокетов с объемом буфера так же по 2Кб. Но даже при 2Кб буфере удается распарсить всю информацию без потерь (т.е. не понадобилось изменять размер буфера).

Ну и соответственно, теперь возможна одновременная работа как web-серврера так и web-клиента

Oberon
Offline
Зарегистрирован: 16.05.2016

да, на меге тоже заработал w5500, если к 10 пину, а не к 53 подключать.