Arduino Mega + Ethernit shield w5500, зависает SPI
- Войдите на сайт для отправки комментариев
Доброго времени суток!
Допустим в сети есть 2 роутера: Роутер 1 и Роутер 2. Порт WAN роутера 2 подключен в порт LAN роутера 1. Так вот при такой организации сети если ардуину подключить в Lan порт роутера 1, то всё работает нормально, а если подключить в Lan порт роутера 2, то ethenet у ардуины работает примерно 4-5 минуты и перестаёт работать, ардуина полностью не виснет, просто отваливается ethenet и ардуина перестаёт принимать как входящие так и совершать исходящие http запросы до тех пор пока её не перезагрузишь кнопочкой или программно void(* resetFunc) (void) = 0; вот такой строчкой кода. На данный момент выхожу из положения тем что раз в 4 минуты вызывается такая строчка кода: void(* resetFunc) (void) = 0; и ардуина постоянно находится на связи. Может быть кто-то сталкивался с такой проблемой и знает как её решить? Замена шилда не помогает, все шилды 5500 будут иметь такой глюк, другие шилды не пробовал пока.
Роутеры пробовал разные, проблема одна и та же.
Наврядли это проблема Wiznet.
Впрочем, без знания конфигурации сети даже начинать придумывать варианты нет смысла.
Читайте логи роутеров.
Ну, понятно, что тут можно только гадать на кофейной гуще...
Помнится, на w5100 китайцы распаивали резисторы 51 Ом вместо 510 Ом (маркировка SMD резистора на 51 Ом как раз "510"). Может, и здесь что-то похожее.
Такой же эффект зависания кстати происходит если связь с ардуиной будет через wi-fi мост, пробовал 2 модели мостов, ubuntu и mikrotik, то же самое, 5 мин работает и уходит в зависание.
Натравите пример WebClient на гугл. В этом случае пакет пройдёт десятки роутеров и мостов.
дело не в том по какому пути идёт пакет, дело в том какая схема подключения ардуины ну как бы в рамках моей локальной сети
например если воткнуть ардуину напрямую в комп через провод (ethernet) то всё будет нормально работать, а если провод заменить на wi-fi мост то ардуина зависнет, при этом не имеет значения. ардуина будет соединена с вайфай мостом напрямую или же через свич
если например воткнуть комп и ардуину в коммутатор (или даже несколько коммутаторов последовательно соединить) то тоже всё будет нормально работать
если например взять один роутер и воткнуть ардуину в его лан порт, и комп тоже будет подключен к роутеру проводом или по вайфай, то всё будет нормально
если взять ещё один роутер и соединить с первым роутером лан портами, то тоже всё будет нормально и не важно к какому роутеру будет подключена ардуина
но если 2-й роутер будет подключен к 1-му wan портом, а ардуина будет подключена ко 2-му роутеру, то она зависает
и это я опробовал примерно на 30-ти платах и ардуино и w5500, эффект одинаковый... обидно блин
короче заказал чип w5100, посмотрю как он будет работать в проблемных режимах
Судя по вышеописанному (а именно проблеме с WAN-портом), подразумеваю, что не верно настроен Firewall (или вообще не настроен). А так же там всякие PortForward имеется и так далее.
Всем привет почти аналогичная проблема зависают 2 шт ардуино + чип w5100 передают в mqtt в majordomo.
может что-то в коде посмотрите пожалуйста.
На коннекте зависает, поди.
разъясните пожалуйста для особо одаренных ,пинг проходит а данные перестает получать
То кого и куда пинг проходит..
Зависание на connect() - это гипотеза. Не может рессолв FDQN сделать или просто удаленный хост отмораживается - может показать только экспериментальное исследование.
до шилда 5100
по его ip
Ну, хорошо, что проходит. Значит не висит. Но не знаю, как это поможет решить проблему. Копайте в области коннекта.
дело не в том по какому пути идёт пакет, дело в том какая схема подключения ардуины ну как бы в рамках моей локальной сети
например если воткнуть ардуину напрямую в комп через провод (ethernet) то всё будет нормально работать, а если провод заменить на wi-fi мост то ардуина зависнет, при этом не имеет значения. ардуина будет соединена с вайфай мостом напрямую или же через свич
если например воткнуть комп и ардуину в коммутатор (или даже несколько коммутаторов последовательно соединить) то тоже всё будет нормально работать
если например взять один роутер и воткнуть ардуину в его лан порт, и комп тоже будет подключен к роутеру проводом или по вайфай, то всё будет нормально
если взять ещё один роутер и соединить с первым роутером лан портами, то тоже всё будет нормально и не важно к какому роутеру будет подключена ардуина
но если 2-й роутер будет подключен к 1-му wan портом, а ардуина будет подключена ко 2-му роутеру, то она зависает
и это я опробовал примерно на 30-ти платах и ардуино и w5500, эффект одинаковый... обидно блин
короче заказал чип w5100, посмотрю как он будет работать в проблемных режимах
на втором роутере тоже пакеты натятся, правильно?
тут не важно, настроена переадресация портов на одном либо на обои роутерах либо вообще не настроена ни на одном из роутеров, если физически подключить ардуину так как я описал, то происходит зависон, а любое другое сетевое оборудование подключаешь всё работает без проблем, а с ардуиной вот так...
Ничего не зависает просто так. У меня эти визнеты работали на девайсе с аптаймом в год. И через локалку и через впн.
падает на маршрутизации
Может тупо колизии идут, которые маршрутизаторы долго разруливают, и это приводит к видимому зависанию. Ну там IP в сети одинаковые есть. У самих то роутеров маска подсети разная?
Проблема решилась элементарно. Обновлением библиотеки Ethernet до последней версии - 2.0.1. Заодно и ещё несколько глюков ушло.
Тема закрыта