Меню

Arduino w5100 не работает

Форум arduino.ua

#1 2017-11-10 12:01:26

Проблемы с W5100

Здравствуйте, уважаемые форумчане!
Столкнулся с такой проблемой:
Имеется Arduino Uno, Ethernet Shield W5100 и датчик освещенности(измерения люксов), и 8 релейный модуль.
В общем задача такова: Arduino шлёт моему серверу сигнал на получение ответа, включать ли ей то или иное реле. Далее ардуина принимает ответ, если 1, зажигает реле, если 0 ничего не делает, параллельно она отправляет на мой сайт значения с датчика освещенности. Всё вроде бы работает, НО. Шилд со временем подвисает и не пингуется. Помогает ему лишь перезагрузка всей системы. В общем мне нужно узнать, в чем может быть проблема, в самом шилде или же в программе, сразу скажу ардуина и шилд не оригинальные, код программы ниже. Буду благодарен за ответы по делу. Спасибо.

Остання редакція VaDoSiQ (2017-11-10 12:04:07)

#2 2017-11-12 23:53:13

Re: Проблемы с W5100

Мой опыт работы с W5100 говорит о том, что зависания для нее обычное дело. Используйте Watchdog и сбрасывайте его если есть соединение.

#3 2017-11-13 02:02:56

Re: Проблемы с W5100

Мой опыт работы с W5100 говорит о том, что зависания для нее обычное дело. Используйте Watchdog и сбрасывайте его если есть соединение.

Я извиняюсь, можно подробнее? Про Watchdog я читал. Как аппаратно перезагрузить шилд? Я так понимаю ножку ресет на шилде, нужно выбрасывать?

#4 2017-12-19 22:26:11

Re: Проблемы с W5100

Была такая же беда, — часто подвисал сервер на W5100. Сервер имел выход в inet. Заметил, что с inet’а шло много левых запросов на 80 порт. Поменял порт на сервере, на отличный от 80, и все наладилось.
W5100 зависает, если на нее идет много запросов

#5 2018-03-17 13:05:04

Re: Проблемы с W5100

В своей конструкции с Arduino Uno, Ethernet Shield W5100 проблему зависаний решил так:
резет шилда — отрезал ногу разьема на шилде (нужно в двух местах собственно резет и его дубль на ISP колодке).
Резет завел от одного из выходов УНО и делаю его программно, в секции сетап скетча.
Если случается зависание — резет этого бутерброда через Watchdog.
Можно принудительно резетить это все через определенное время, я сделал это раз в сутки, просто без причин. Можно через 2 мин (видел описание подобной конструкции)

#6 2018-04-02 21:13:58

Re: Проблемы с W5100

Мой опыт работы с W5100 говорит о том, что зависания для нее обычное дело.

Проблемы с W5100 и как с ними борются описаны здесь: Ethernet Shield на W5100.
Может поможет? . если не боитесь паяльника

P.S. А ресетить часто сетевую плату — дело дурное.

#7 2018-04-02 21:34:46

Re: Проблемы с W5100

Мой опыт работы с W5100 говорит о том, что зависания для нее обычное дело.

Проблемы с W5100 и как с ними борются описаны здесь: Ethernet Shield на W5100.
Может поможет? . если не боитесь паяльника

P.S. А ресетить часто сетевую плату — дело дурное.

Дурное дело — давать советы, когда ты не в теме ))
В приведенной статье — исправление ошибки монтажа (если она есть — 510 ом вместо 49,9 по даташиту).
Из-за этого плата не работает с длинными (5м уже длинный) кабелями и капризна с разными роутерами/комутаторами.
Но если уж заработала, то работает.
А зависает она по причине перегрузки микроконтроллера W5100 и тут паяльник можно. (гусары молчать!)
Увы, перезапуск зависшей платы (шилда) — только через ресет.
Куча проектов, где авторы жалуются на такую «особенность» W5100. Погуглите.
Вот один из них.
цитата:
«Необходимо учитывать следующее. Веб — сервер на Arduino не использует многопользовательскую мультипрограммную операционную систему. Поэтому при обращении одного клиента передача данных будет идти только к нему. Второй клиент начнет получать данные только после закрытия соединения с первым клиентом. Поэтому большая HTML страница должна быть разбита на маленькие, которые быстро загружаются и сервер закрывает соединение. Благодаря этому может появиться возможность обращению к серверу 2-3 клиентов почти одновременно. Примерно через 10-15 минут интенсивного обращения к серверу он зависает (по опыту виснет Ethernet Shield W5100).»

Источник

Фокусы с Arduino

24 февраля 2016 г.

Исправление косяков ethernet shield w5100

Купил у китайцев Ethernet shield w5100.
Подключаю к плате Arduino MEGA 2560, прошиваю скетч Web Server из примеров.
Иду по адресу 192.168.1.177 . Не работает.

Светодиоды LINK, 100M светятся. Передачи данных нет.
Меняю Arduino MEGA на Arduino UNO. Не работает.
Меняю версию IDE. Не работает.
Нахожу еще один такой-же Ethernet шилд, но заведомо рабочий (снят с рабочего макета). Подключаю к своей плате. Не работает.

Лезу в интернет. Нахожу информацию о том, что Ethernet shield w5100 не дружит с оборудованием D-Link.
У меня как раз свитч D-Link DES-1008D. Проверяю на доступных TP-LINK WR841ND, Asus RT-N13U — не работает!

Нашел свитч, в котором этот капризный шилд заработал.

Опять сходил в интернет. Нашел совет, проверить резистор (сборку) у входа Ethernet.
Китайцы могут впаять вместо 510 (51 Ом) сборку 511 (510 Ом). Они-же похожи 🙂
У меня оказалось впаяно неверное сопротивление.

не работает ethernet shield w5100 ? проверяй резистор.

Перепаял. Все сразу-же заработало!

PS. Резисторы 510 можно искать на старых материнках. У меня все работает с 560 резистором (56 Ом).
Чем такого микроба паять? Термовоздушная паяльная станция.
Паяльником — я бы не совался. Кто сумеет — молодец. Научи.

Читайте также:  Почему гпс не работает

Источник

Arduino.ru

W5100. Получение IP от маршрутизатора с DHCP

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Помогите решить проблему, над которой бьюсь которую неделю:

Модуль W5100 не получает ip от маршрутизатора.

Оборудование: компьютер, коммутатор, маршрутизатор, arduino mega + w5100

1) Подключение w5100 напрямую к компьютеру

компьютер: 192.168.0.30
модуль: 192.168.0.31

Работает. (ардуино получает запросы и отвечает)

2) Подключение w5100 и компьютера через коммутатор

компьютер: 192.168.0.30
модуль: 192.168.0.31

Работает.

3) Подключение w5100 и компьютера через маршрутизатор с выключенным DHCP

компьютер: 192.168.0.30
модуль: 192.168.0.31

Не работает. На маршрутизаторе горит светодиод подключения компьютера и редко моргает светодиод подключения w5100.

4) Подключение w5100 и компьютера через маршрутизатор с DHCP

Не работает. Те же симптомы, что и в предыдущем случае.

Для подключения со статическим IP используется Ethernet.begin(mac, ip);

Для DHCP Ethernet.begin(mac);

Пробовал менять MAC, брал

1)из примера
2)случайный
3)заведомо существующий с другой сетевой платы.

Хотелось бы без дополнительного коммутатора подключать ардуино к маршрутизатору и спокойно получать динамический IP.

Источник

Arduino w5100 не работает

Продолжаю рассказывать о случаях серийного брака в платах китайского производства и способах ремонта. На этот раз говорим про клон платы Arduino Ethernet Shield W5100.

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

Не буду томить вас интригой. Причина неполадок заключается в использовании неправильных согласующих резисторов в цепи линии 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.ru

W5100 + SD-модуль — не взлетают вместе

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Что есть в наличии:

Юзаю Arduino mega, оба девайса сидят на SPI, CS для W5100 — пин 10, CS для SD-модуля — пин 53. Проблема в том, что W5100 не взлетает, если SD-модуль физически воткнут в макетку. Скетч — простейший:

1. Если закомментировать код инициализации SD-модуля, то всё виснет на первом Ethernet.begin. Если инициализировать SD-модуль, то по DHCP вызов неуспешен, также второй вызов Ethernet.begin не проходит — всё, кроме Ethernet.localIP(), соскакивает на 255.255.255.255.

Если SD-модуль физически выдрать с макетки и нажать reset на дуне, то W5100 успешно получает настройки по DHCP.

Подозреваю, что кто-то (скорее всего SD-модуль) просаживает линии MOSI и MISO так, что дальнейшая работа W5100 становится невозможна. Однако, этот же SD-модуль уже несколько месяцев успешно крутится вместе с LCD-экраном ST7920 (там, правда, к экрану только MOSI подключено, т.к. читать с него без надобности) — всё работает чётко: экран кажет, на SD пишутся логи.

Проблему проверял на выхолощенном тесте: только arduino mega и два упомянутых модуля на макетке. Пробовал принудительно рулить пинами CS каждого модуля — без шансов на успех, помогает только выдёргивание SD-модуля с макетки. Осциллографа не имею, к сожалению.

Подскажите плз, как это добро подружить? Подсказали статейку http://we.easyelectronics.ru/Shematech/upravlenie-w5100-i-at25160a-po-odnoy-shine-spi-nepredvidennye-grabli.html — такой вариант в моём случае в принципе подходит? На что можно обратить внимание (потыкать мультиметром куда, кроме жопы?) чтобы понять — где порылся песец?

Заранее благодарен за конструктив.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Проблема скорее всего в преобразователе SD модуля. Попробуйте другой модуль. Использовал только Ethernet Sheild — там нет никаких преобразователей и все работало.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Читайте также:  Не работает дворник заднего стекла лада калина

NeiroN — спс, я бы попробовал другой модуль SD, если бы он был под рукой 🙁 К тому же этих модулей уже есть несколько штук, и они планируются к дальнейшему использованию. Проблема вырисовалась только при попытке добавить в проект W5100, юзая указанную плату.

Думаю, что проблема может быть и в самом W5100, забыл упомянуть одну интересную особенность — когда SD-модуль на макетке и W5100 не инициализируется как надо, модуль всё равно пингуется по адресу 192.168.0.40, пингуется точно он, т.к. если выдернуть сетевой шнурок — пинг затыкается.

В чём проблема? В том, что SEN всегда подтянут к питанию, как написано по ссылке выше? И как может вмешиваться в работу шины SPI преобразователь на SD-модуле, учитывая тот факт, что SD и LCD сидят на одной шине месяцами и я ни разу не заметил, чтобы какое-нибудь из этих двух устройств отказалось работать?

Хотелось бы разобраться в этом вопросе, прежде чем кидаться сломя голову заказывать у китайцев другие модули.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Решение, предложенное http://newscentral.exsees.com/item/077af00eb5cfbb09daee20a21712195d-433c3f81925f2f0ac8aa78965dd46b01 — не помогло: пробовал с CS SD-модуля проводочком тыкать в указанные выводы резистора: если на левый контакт резистора — не инициализируется SD-модуль, если на правый — то всё как и прежде — W5100 не получает данные по DHCP. Уровнями на CS модулей рулю вручную уже, выставляе в низкий CS для SD-модуля и в высокий — для W5100: на момент инициализации SD-модуля, и наоборот — перед первым вызовом Ethernet.begin.

Видимо, надо заказывать 74HC125 и пробовать с ним.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Проблема обрисовалась более чётко: если отключить контакт MISO SD-модуля (идёт на пин 50 меги), то W5100 нормально взлетает. Шо це такэ?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

В общем, порыв эти ваши интернеты, плюс с помощью верных товарищей с другого форума пришёл к выводу, что проблема таки в SD-модуле — эта зараза не отпускает MISO, т.к. на плате и MOSI, и MISO подтянуты резисторами к питанию. Отсюда, кстати — и 255.255.255.255 в получаемых данных — мега честно читает по SPI с W5100, а там одни единички — SD-модуль коварно тянет линию вверх.

Думаю, придётся выпаивать эти самые резисторы, и не факт, что после этого SD-модуль будет работать нормально 🙂 Параллельно буду искать другие модули, т.к. считаю, что некошерно и эгоистически со стороны SD-модуля — подтягивать линии данных к питанию по умолчанию: такое ощущение, что он там собрался в одиночку окопаться и наплевать на всех остальных.

И ведь если бы с дисплея надо было читать — эту фичу я обнаружил бы раньше на пару месяцев.

Такие дела, в общем. На днях буду издеваться над SD-модулем — он, во-первых, дешевле W5100, во-вторых — их ещё есть в запасе, в третьих — даже если причина не в нём (ну а вдруг?) — хоть душу отведу :)))

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Дак выпаяй эти конверторы — подключи напрямую. Или контроллеры должны отключаться от линий данных когда CS не активен — видимо в LCD другой контроллер который может перебороть эту подтяжку.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Дак выпаяй эти конверторы — подключи напрямую. Или контроллеры должны отключаться от линий данных когда CS не активен — видимо в LCD другой контроллер который может перебороть эту подтяжку.

Конверторы — в смысле резисторы подтяжки? Или я не понял чего? Вот думаю — выпаяю я их, и кто будет линию MISO к единице тянуть, если вдруг SD-модуль настолько прост, что ничегошеньки для единички не делает, а только для нолика кладёт линию на землю? Впрочем, надо проверять, конечно.

Ещё, конечно, второй вариант есть, как вы и предложили — отключение от линии данных, надо будет попробовать что-то типа 74HC125.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Sd модуль с резисторами пытался юзать я, делители гадят spi, отказался поэтому.

Продавец вернуд деньги за кривые модули, с конвертером на микросхеме купил после этого .

зы. Не забываем про явную инициализацию CS линий для зернета и сд , и установку их в неактивное состояние до всех модуль.бегин

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Такие дела, в общем. На днях буду издеваться над SD-модулем — он, во-первых, дешевле W5100, во-вторых — их ещё есть в запасе, в третьих — даже если причина не в нём (ну а вдруг?) — хоть душу отведу :)))

Да, всё правильно выяснили. Был у меня такой SD-модуль — немного отличается форма платы, но расположение деталек похожее — думаю, и схема та же.

Решается небольшой доработкой модуля, если не боитесь паять тонкие ноги микросхем.

У преобразователя уровней нужно аккуратно поднять 13-ю ногу — т.е. отключить от контактной площадки — а потом проводком присоединить её к . 10-й, что ли, или 9-й. Никак не найду исправленный вариант, а снова разбираться по схеме сейчас лениво.

Только обратите внимание — нужно именно поднять ножку. Вариант с разрезанием дорожки не подойдёт, т.к. дорожка уходит ещё и под корпус микросхемы. У меня из-за этого всё получилось только со второй попытки. 🙂

Читайте также:  Как отремонтировать часы ваз 2107

Вот, всё же нашёл. Не 9-я и не 10-я, а наоборот, 8-я нога. То есть, 13-ю ножку отсоединить от платы, и присоединить проводком к 8-й. И всё получится.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Sd модуль с резисторами пытался юзать я, делители гадят spi, отказался поэтому.

Продавец вернуд деньги за кривые модули, с конвертером на микросхеме купил после этого .

зы. Не забываем про явную инициализацию CS линий для зернета и сд , и установку их в неактивное состояние до всех модуль.бегин

Я не очень хорош в схемотехнике, точнее — совсем не хорош 🙂 По ссылке на али, что я привёл — какая плата — с конвертером на микрухе или нет? Там помимо конвертера ещё и резисторы есть — они имхо и тянут к питанию.

Насчёт явной инициализации CS — обижаете, пробовал, поднимая CS SD-модуля и опуская CS W5100 перед Ethernet.begin — не помогает, MISO в высоком уровне из-а SD-модуля, и мега оттуда читает только единички.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вот, всё же нашёл. Не 9-я и не 10-я, а наоборот, 8-я нога. То есть, 13-ю ножку отсоединить от платы, и присоединить проводком к 8-й. И всё получится.

Спасибо за подробный ответ! К сожалению, этого я точно не потяну — нет такого опыта, мелочёвку паять. В общем, как я понял — простым удалением резисторов проблему не решить. Печально.

Ок, тогда такой вопрос к сочувствующим: киньте ссылкой на кошерную плату для microSD на али? Чтобы опять не вступить в г.

И да: если всё-же поюзать 74HC125, как указано здесь: http://we.easyelectronics.ru/Shematech/upravlenie-w5100-i-at25160a-po-odnoy-shine-spi-nepredvidennye-grabli.html — то поможет без перепайки SD-модуля? Вроде по первым прикидкам то, что нужно — буфер на 4 канала с Z-состоянием и раздельным управлением каналами. Как я понимаю, надо будет втыкаться в SPI через него, и пины CS завести тоже на микруху. Тогда при отключении канала на выходе будет High-Z-состояние, следовательно, уже будет пофиг на подтяжку MISO к питанию от SD-модуля.

Я всё правильно понимаю?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Странно плата вроде кошерная, на буфере.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Странно плата вроде кошерная, на буфере.

Да в том-то и дело, что по виду вроде кошерная, однако MISO, цука, не отпускает, из-за этого вся работа с W5100 встала колом (хорошо хоть пока на ESP всё крутится). И это именно она, иначе чем объяснить, что когда снимаю проводок MISO с неё — то W5100 тут же нормально настраивается и получает адреса по DHCP?

А паять мелочёвку — не могу: зрение, собака, опыта — ноль, запорю, как пить дать. И не жалко вроде, но когда заранее знаешь, что в какашку превратишь деталь — становится уныло на душе. Уж лучше дождаться 74HC125, мне кажется.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Померял напряжение между MISO SD-модуля и землёй — 3,27В, логическая единица. ЧТД, мне кажется. Мерял, когда CS для SD-модуля в высоком уровне, т.е. SD должна быть неактивна. При этом CS для W5100 — в LOW, т.е. сетевуха выбрана.

Померял, опустив CS в LOW — 0В между MISO и GND. Зашибись, правда? Нафига такие пляски, я чо-то не понимаю?

Если оба CS в высоком уровне (имею в виду CS для W5100 и CS для SD-модуля) — между MISO и GND — 3,27В.

Тянет вверх, ооох тянет. Слушайте, тупейший вопрос, возможно — резистор не вылечит какой? Чтобы на нём падало хотя бы полвольта? Или быстродействия не хватит? Простите, если спрашиваю чушь — хочется хоть как-то пощупать W5100 в рабочем режиме.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Решение проблемы работы данного модуля совместно с другими SPI-устройствами:

Поднимаем 13-ю ногу LVC125A, управляющую выходом MISO (зачем-то сидит на земле), и паяем проводок к 8-й ноге (CS).

Результат: теперь модуль без проблем работает совместно с другими устройствами (в моем случае это ethernet-модуль на ETH28J60).

А что касается W5100, то там тоже свои тараканы: вход SPI_EN (SEN) чипа W5100 должен быть подключен через инвертор к CS (SS) выходу ATMega. Не во всех случаях проектировщики плат соблюдают это правило.

Если рассматривать сетевые модули на W5100 (именно модули, не шилды), то там SPI_EN всегда заведен на 3.3V, помимо наличия всякой управляющей логики (во всяком случае у тех модулей, что продаются на али/ebay и прочих китайских площадках). Очевидно китайцы экономят на деталях. А вот в шилдах (те, что с картой памяти на борту), уже приходится делать как положено, иначе совместно карту памяти и сетевой контроллер просто не завести 🙂
Отсюда вывод: если хочется использовать W5100, но не хочется проблем в совместной работе на SPI шине, то лучше брать шилд.

И еще одно: более новый W5500 лишен входа SPI_EN, а управление осуществляется напрямую с выхода CS (SS) ATMega на вход SCSn микросхемы. Так что модули на W5500 можно брать без опасений за совместную работу с другими устройствами. Это помимо прочих преимуществ над W5100 🙂

Источник

Adblock
detector