Не работает ethernet shield
Arduino ethernet shield (W5100) не работает через свич
В разделе рассматриваются вопросы информационного обмена в робототехнике.
Аппаратный уровень, протоколы.
Технические параметры
► Напряжение питания: 5 В
► Внутренний буфер: 16 кбит
► Скорость подключения: 10 и 100 Мбит/с (RJ45)
► Разъем для карт памяти: micro-SD
► Габариты: 73 мм х 54 мм х 27 мм
Подключение W5100 к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Ethernet Shield W5100 x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Подключение:
В качестве демонстрации, возьмем стандартный пример со среды разработки IDE Arduino. Для этого нам понадобится internet Shield W5100 и Arduino UNO R3 (устанавливаем Shield поверх Arduino). Как уже поняли библиотеку используем стандартную «Ethernet» дополнительно скачивать и устанавливать не нужно, загружаем скетч показанный ниже или в IDE Arduino заходим примеры «Файл» —> «Примеры» —> «Ethernet» —> «WebServer». Схема подключения показана ниже.
Продолжаю рассказывать о случаях серийного брака в платах китайского производства и способах ремонта. На этот раз говорим про клон платы Arduino Ethernet Shield W5100.
Многие пользователи таких клонов (рис. 1) столкнулись с досадной проблемой: при подключении к некоторым роутерам или использовании длинного сетевого кабеля шилд не может установить соединение с роутером или связь работает неустойчиво, с большими потерями пакетов. При этом с другой моделью роутера этот же клон может работать стабильно.
Рис. 1. Клон платы Arduino Ethernet Shield W5100
Не буду томить вас интригой. Причина неполадок заключается в использовании неправильных согласующих резисторов в цепи линии Ethernet. Если мы посмотрим на схему шилда (рис. 2) то увидим, что в цепи согласования импеданса применяются резисторы R3, R4, R5, R6 сопротивлением 49,9 ом. На практике часто используют резисторы с номиналом 51 ом. Это нормально.
Теперь посмотрите на плату китайского клона (рис. 3). Китайские производители использовали сборку из четырех резисторов. Это было бы хорошее решение – удобно при монтаже – если бы китайцы установили деталь с правильным номиналом. Сопротивление 51 ом обозначается маркировкой 510. 51 – это базовый номинал, который умножается на 10 в степени, обозначаемой третьей цифрой. Десять в нулевой степени это единица: 51*1=51.
Рис. 3. Резисторная сборка с неправильным номиналом на плате шилда W5100
На плате установлена сборка с обозначением 511, что соответствует сопротивлению 51*10=510 ом. Иными словами, в цепи согласующего фильтра установлены резисторы с сопротивлением в десять раз больше расчетного номинала. Некоторые роутеры успешно справляются с таким рассогласованием линии, особенно если сетевой провод короткий. Но нет ничего хуже при отладке проекта, чем неполадка, которая проявляет себя непредсказуемо. Обычно это происходит в самый неподходящий момент. Стоит подключиться к другому роутеру или использовать плохой соединительный провод, и вы сойдете с ума в поисках ошибки в коде программы, хотя проблема исключительно аппаратная.
Самый простой способ ремонта – заменить резисторную сборку. В крайнем случае, можно использовать сборку с номиналом 47 или 68 ом (маркировка 470 и 680 соответственно). При наличии хорошего зрения и отсутствии тремора рук можно припаять на место сборки одиночные резисторы типоразмера 0402 с сопротивлением 51 ом.
Если неправильную сборку нечем заменить, а сетевой шилд работает нормально – ничего не меняйте. Просто имейте в виду возможную причину возникновения неполадок в будущем.
Arduino ethernet shield (W5100) не работает через свич
Speccyfan » 06 ноя 2014, 16:41
Добрый день! Столкнулся с очень странной проблемой, имеется Arduino uno с Ethernet-шилдом (китайский клон), все работает, если подключить ее напрямую к ПК.
Как только я ставлю посередине свич (D-Link DES1008 или D-Link DES1005A или Surecom 5 портовый), вот так:
ПКD-linkArduino,
то линки горят, а пинг уже не идет, на компе вот такая фигня:
Что самое интересное, если подключить ардуину к циске то тоже все работает, т.е. по такой схеме например:
И я от этого впадаю в ступор, смотря на интерфейс циски не вижу никаких отличий от других железок, никаких runts, giants, CRC ошибок и т.п. все в норме, но почему кадры не проходят, когда ардуина воткнута прямо в D-Link ?
Шилд инициализирую просто: Ethernet.begin(mac, ip);
holomrn » 06 ноя 2014, 16:45
Speccyfan » 06 ноя 2014, 16:58
Попробовал еще подключить через модем (со свичем), которые раздает Белорусский провайдер Белтелеком, M-200A, через него тоже все норм работает, что же не так в длинках?
holomrn » 06 ноя 2014, 16:59
Speccyfan » 06 ноя 2014, 16:59
holomrn писал(а): Свич автоопределение умеет?
Если подключаешь прямым патчкордом, попробуй кроссом и наоборот.
Все свичи, которые пробовал умеют Auto MDI/MDI-X, линки то все поднимаются, светодиоды моргают, впрочем на всякий случай я попробовал и прямой кабель и кроссовер, результат одинаков.
Speccyfan » 18 ноя 2014, 16:54
У кого-нибудь этот шилд вообще работает через длинк?
Angel71 » 18 ноя 2014, 17:06
отлично работал и через свитчи и через роутеры (комповый и как минимум hlk-rm04). может в роутере просто входящий/исходящий пинг блокируют. попробуйте отослать что-нибудь кроме пинга.
Speccyfan » 18 ноя 2014, 18:03
Angel71 писал(а): отлично работал и через свитчи и через роутеры (комповый и как минимум hlk-rm04). может в роутере просто входящий/исходящий пинг блокируют. попробуйте отослать что-нибудь кроме пинга.
Добрый день, есть ethernet shield с чипом w5100 ардуино, соединяю их, включаю шилд в роутер, у роутера ip 192,168,1,1, шилду програмно пишу ip 192.168.1.14, запускаю скетч веб сервер и никакой реакции, сведодиоды мигают а из браузера перейти по адресу 192.168.1.14 не могу, не найдено пишет. сериал порт выдаёт server is at 0.0.0.0
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Код для нетелепатов привели бы :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Как минимум шилд должен тем или иным способом получить ненулевой IP и начать откликаться на команду ping.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
код стандартный из библиотеки
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Не пингуется, rx мигает tx нет
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Там же все программно. Нормального TCP стека нет. Не отвечаете на пинг, вот и не пингуется
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Как тогда у всех остальных работает, у меня нет, на ютубе кучу рольков посмотрел, всё делаю тоже самое , заливаю скеч, включаю в роутер, моску dns ip mac всё указываю, смотрю в сериал а там server is at 0.0.0.0. Ну как так. Что за х. с ним. Подскажите ктонить чёнить разумное.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
. rx мигает tx нет.
Помню летом пришли Визнеты, так вот у них была перепутана разводка одного из диодов в Ханране.
А дорожки были под коннектором. Пришлось их выпаивать и переворачивать диод.
Правда плата работала и так, просто не было одной индикации.
Хотя, не помню у кого, какой-то из диодов используется для задачи режима работы контроллера.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Достал с полки MEGA 2560 + w5100. Точно помню, что работало.
Сейчас: заливаю стандартный пример, в итоге: server is at 0.0.0.0, но пинги проходят, rx tx отчаянно мигают при ping
В браузере тишина и покой.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
У меня всё заработало, Просто контакты были плохие. проверяйте контакты, пишите тестовые программы. Посомтрите что на выходах. В общем продебажить нужно.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Достал с полки MEGA 2560 + w5100. Точно помню, что работало.
Сейчас: заливаю стандартный пример, в итоге: server is at 0.0.0.0, но пинги проходят, rx tx отчаянно мигают при ping
В браузере тишина и покой.
Именно такая же проблема ,но ардуино у меня UNO .Не понимаю почему не подключается в браузере
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
т.к. Ethernet висит на 10 пине:
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А причем тут пин 4 ардуино?Не допонял..
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
4й пин используется на w5100 шилде для работы с sd картой, если она не используется - надо её отключить задав 1.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сделал как сказали-но не в какую.
Может с роутером что-то не то..А подключив к компу можно как-то проверить работы шилда?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пропиши IP вручную
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Прописал как Вы сказали код сейчас выглядит вот так
Но снова тишина.
В сом порт выдает server is at 0.0.0.0
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
И да, вот это добавлял в код:
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
И да, вот это добавлял в код:
Я решил проблему покупкой нового шилда((((
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
У меня была связка код на яве и ардуина на этом же шилде но в паре с мегой, работало замечательно. После слёта системы потерялся скетч, код проги на яве был продублирован на флешке. Так вот теперь при работе ардуины как сервер наблюдается седующий глюк, можно отправлять данные на ардуину только сразу после создания сокета в яве, создал сокет и тут же нужно передавать, если сделать паузу ровно в 5 сек ардуина отваливается и повторно на неё завязатся не получается. Предавать можно сколько угодно пакетов, главное без таймаута, что за фигня и как её побороть я так и не вкурил.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
тем у кого W5100 "вроде работает а вроде нет" - советую подключить его к компу коротким сетевым шнурком и дать адреса шилду и сетевой карте компа из одной подсети, без dhcp. удивительное рядом.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Бился с W5100 Ethernet Shield не один день. Адрес шилда пинговался, но через браузер я зайти не мог. Перепробовал все - патчкорды различной длинны, кроссы, источники питания, кабеля, USB порты, Linux, Windows, разные ПК. Подрезал контакты у шилда на несколько мм, как кто-то рекомендовал на заграничном форуме. Скетчи из Ethernet библиотеки не отрабатывали. WebServer, WebClient - все мимо. Либо в мониторе порта пусто, либо ip адрес 0.0.0.0 и больше никакой информации.
Присмотрелся к контроллеру и обнаружил 3 пары спаянных между собой ножек. Предположил, что так не должно быть. Расковырял припой иголкой от капельницы и.. заработало! )
Единственное, я не понял, почему шилд долго стартует. Когда при подаче питания сетевой кабель подключен, начинает мигать индикатор FULLD. Мигать он может и несколько секунд, и несколько минут. Позже, плата начинает работать без каких-либо нареканий. Правда при попытке зайти в монитор порта, перестают гореть все индикаторы, кроме Power на Ethernet шилде. Но снова подождав - все восстанавливается. Почему так, я не понял. Но, думаю разберусь, я только начал! )
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Есть проблема с изернет-шилдом. Сервер работает, но как то странно. Выдаёт в браузер пару- тройку строк с данными, а затем набор нечитаемых символов. Каждый раз количество правильно переданной информации- разное. Может кто сталкивался с такой бедой. Программно перепробовал кучу вариантов. Сбои происходят даже на статических страничках. Начинаю грешить на конкретный, доставшийся мне от китайцев, экзумпляр. Что скажете?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Это у вас где то выхлд за пределы массива. Короче код вы криво написали.
В декабре из "шанхая" пришло пять плат W5100. Четыре вроде работают, а одна мертвая была. Как раз IP не получала. Чип дохлый оказался :( И еще, в процессе ковыряния выяснилось, что встречаюся маршрутизаторы/коммутаторы, стемящиеся поднять скорость до гигабита, ну вот кажется им, что должна плата с такой скоростью работать. Нужно либо запретить автоопределение скорости на хабе, либо смениь его на другой.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
За пределы массива влядли вышел, эксперементировал на оф. примере. Всего пять строк по десятку символов. , но попробую урезать. А вот хабик поменяю. Спасибо.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
За пределы массива влядли вышел, эксперементировал на оф. примере. Всего пять строк по десятку символов. , но попробую урезать. А вот хабик поменяю. Спасибо.
Можете не так сложно. Поменяйте длинну UTP5. У меня любит коротышки 20см на TP-link 1000Mbit/s, а на работе подавай моток 5 метров на неком плюгавом zyxel100Mbite/s. Дешевле и быстрей. Свичами развлекаться это мне не интересно было. Это все из области танцев с бубуном. ;) Но работает. Все с одной бухты откусываю Ж-) Скоро буду думат в направлении "avr/wdt.h" когда подвисает. Иногда 2-ое стуок на ура а иногда за день глюкнет. Короче буду думать как код "вилизать". По коду пока не въехал как правильно "казнить нельзя помиловать" wdt_reset();..или. wdt_disable(); ;)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Я решил свою проблему, всё оказалось и проще и сложнее одновременно. Не там искал.
По порядку: У меня шилд с SD-картой. Первоначально отладил кусок кода работы с картой и занялся веб-сервером. Как говорил выше, он работал странно и пока я с ним ковырялся не обратил внимания, что перестала работать SD-карта. Чего на неё смотреть? Отладил ведь.
Ан нет! Шилд не умеет работать одновременно как накопитель и веб. Проблема обсуждалась и решена во здесь:
Вем спасибо, всё заработало.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Доброго времени суток всем!
Проблема схожая с вышеописанными: есть ардуино уно и ethernet shield родные итальянские. Заливаю стандратный скетч из примеров: светодиод on горит, АСТ мигает, но даже в Serial port пусто. Физический линк на сетевом интерфейсе RJ-45 есть (на ethernet shield горит сетевая индикация (оба светодиода), но не моргает!). В чем может быть проблема?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ещё только разбираюсь с ардуино, но не смог найти такой проблемы как у меня.
Имеется свежая MEGA 2560 R3, с десяток программ тестовых заливал, всё работало. Тут приехал Ethernet Shield W5100. Если поставить его на мегу, то мега как будто перестает работать - при заливке скетча IDE подвисает, а потом выдает "timeout communicating with programmer". Убираем W5100 и всё прошивается, работает.
Думаю не стоит говорить, что если с отключенным шилдом залить стандартный пример вебсервера (с изменением кода на pinMode (53, OUTPUT) под мегу), то он зальется, но после установки шилда мега как будто виснет, программа не выполняется. На W5100 из всей индикации горит только PWR. При подключении к свитчу индикация активности как на свитче, так и на шилде отсутствует.
Подозреваю, что прислали неисправный шилд? Продавец открещивается, говорит всё новое в упаковке, рабочее. Ещё есть время открыть диспут, но как ему доказать?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Проблема в том, что при подключённом W5100 Ардуина не может принять скетч. Зависает с ошибкой в передаче по СОМ порту. Но при снятом W5100 прошил тсандартный пример WebServer-а со своими параметрами и сервер поднялся. Виден через Web-интерфейс и выдаёт данные по аналоговым входам. Кто-нибудь сталкивался с таким? Просто в дальнейшем для написания/отладки сетевых параметров как-то не очень греет каждый раз вынимать и вставлять шилд.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Проблема в том, что при подключённом W5100 Ардуина не может принять скетч. Зависает с ошибкой в передаче по СОМ порту. Но при снятом W5100 прошил тсандартный пример WebServer-а со своими параметрами и сервер поднялся. Виден через Web-интерфейс и выдаёт данные по аналоговым входам. Кто-нибудь сталкивался с таким? Просто в дальнейшем для написания/отладки сетевых параметров как-то не очень греет каждый раз вынимать и вставлять шилд.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Не хотелось бы быть некрофилом, но тем не менее. Имею точно такую же проблему, китайскую UNO R3 и w5100. Правда исполнена она не в виде шилда, а извращенским модулем.
Пинг успешно проходит, даже на максимально допустимом размере пакета в 119 байт, но при этом скетч web-server'а из примера выдает адрес 0.0.0.0 и на вебку, соответственно не пускает. Пару раз отловил неадекватные адреса в стиле 24.168.0.1. Но затем и они пропали. При пинге RX и TX успешно отмаргиваются о получении-отправке пакета. Может я что-то упустил?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пару дней назад закрыл диспут возвратом половины суммы за лот из двух таких шилдов W5100 Mini Red. Пинг не проверял, но стандартный пример так же выдавал "0.0.0.0", пару раз показал нормальный адрес и совершенно произвольный. На шилде горела одна лампочка, стабилизатор выдавал нормальное напряжение. Логический анализатор показал, что на MISO данные отсутствуют у обоих экземпляров. Продавец из Shen Zhen Blue Sky technology выставил рефунд на $2 с условием возврата этого мусора и майку на себе рвал, доказывая, что "goods brand new original only" и ''buyer do not know how its work", несмотря на то, что я предъявил скриншоты с анализатора, фото шилдов с размазанным флюсом, каплями припоя по всей плате, вручную паянными SMD и отпечатками китайских пальцев. Словом - полным набором признаков подвальной сборки.
шилдом ?
Запускаю пример из библиотеки Ethernet.
Ethernet.begin(mac,ip); Serial.println(Ethernet.localIP()); - выдает 0.0.0.0, иногда выдает бессмыслицу.
Про распиновку, проверку контактов, аппаратный SS на 53-ем пине Меги - не надо, интересуюсь лишь, работал ли кто именно с таким шилдом (хорошо бы, конечно, на Arduino Mega).
Заранее благодарен откликнувшимся.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
да, работал с таким, только плата - синего цвета.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Благодарю, ссылка полезная, взял оттуда функцию ресета шилда. На ресет реагирует адекватно, видно по светодиодам. Думаю, что сам шилд вполне работоспособен, просто я не могу до него достучаться. Скорее всего, стучусь не в те пины. Пытался проследить, на какие пины шлет команды стандартная библиотека в случае Меги, пока безрезультатно. Жаль, мои Уно и Нано все заняты работой, не хочется разбирать.
ustas, Вы его случайно не к Меге подключали ?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А нужно ли варить кофе с целью погадать что у вас еще подключено на SPI и как настроена ваша сеть и пробовали ли вы выдать ему насильно IP?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А нужно ли варить кофе с целью погадать что у вас еще подключено на SPI и как настроена ваша сеть и пробовали ли вы выдать ему насильно IP?
Уже не нужно варить, уже не нужно гадать. Проблема решена.
Фраза "Arduino communicates with the shield using the SPI bus. This is on digital pins 11, 12, and 13 on the Uno and pins 50, 51, and 52 on the Mega. On both boards, pin 10 is used as SS. On the Mega, the hardware SS pin, 53, is not used to select the W5100, but it must be kept as an output or the SPI interface won't work." была мною замечена еще вчера, но подключение SS к 10-му пину дало долгожданный результат только вкупе с ресеттингом шилда при старте скетча. Алилуйя ! Теперь буду испытывать новый шилд на стабильность работы, а затем переписывать скетч с enc28j60 на w5100.
В этой статье рассмотрим Ethernet Shield W5100 с помощью которого можно подключить плату Arduino к интернету или локальной сети. Shield основан на чипе Wiznet W5100 с поддерживаемой скоростью передачи данных до 100 Мбит/с. Используют данный Shield совместно с Arduino можно организовать простой веб-сервер с доступом к этому серверу.
Общие сведения
Чтобы подключить Ethernet Shield W5100 к Arduino (UNO или MEGA), предусмотрены длинные штыревые разъемы, так же поверх W5100 можно установить другие Shields. Для хранения больших файлов на плате установлен разъем micro-SD, для установки micro-SD карт. Плата Arduino взаимодействует как с W5100, так и с SD-картой, используя шину SPI (вывода 10, 11, 12 и 13 (UNO) и 50, 51 и 52 (MEGA), на обеих платах вывод 10 используется для выбора W5100 и вывод 4 для выбора SD-карты, эти вывода нельзя использовать (это надо учесть, при проектировании). Так-как W5100 и SD-карта используют одну шину SPI, одновременно может быть активно только одно устройство. Для подключения к маршрутизатору или компьютеру, установлен стандартный разъем RJ45. Кнопка RESET дублирует кнопку RESET на Arduino, который сбрасывает как W5100, так и плату Arduino.
Назначение светодиодов:
► PWR: указывает, что подано питание на плату.
► LINK: указывает наличие сетевого канала и мигает, когда экран передает или принимает данные
► FULLD: указывает, что сетевое соединение полнодуплексное
► 100M: указывает на наличие сетевого соединения 100 Мбит/с
► RX: мигает, когда экран получает данные
► TX: мигает, когда экран отправляет данные
► COLL: мигает, когда обнаруживаются сетевые конфликты
Помимо этих светодиодов, есть два светодиода, расположенные на гнезде RJ45, при подключении кабеля, один светится постоянно, а другой мигает в соответствии с потоком данных.
Принципиальную схема Ethernet Shield W5100 можно посмотреть ниже
Устранение проблемы c W5100
Существует проблема с некоторыми Ethernet Shield на базе W5100. Производитель поставил неправильную сборку их четырех резисторов, вместо 49,9 Ом установил 510 Ом. Из-за этого Shield W5100 нестабильно работает при подключении к роутеру или вовсе не работает c маршрутизатором (свичем). На данный момент, существует два варианта устранения данной проблемы:
► Первый вариант, просто заменить резисторную сборку на 51 Ом, но если у вас нету опыта в пайке SMD компонентов, лучше воспользоватся вторым способом.
► Второй способ, установить дополнительные резисторы на 100 Ом, между контактами 1 и 2, 3 и 6. Теперь W5100, будет работать более стабильнее.
Читайте также: