- Форум arduino.ua
- #1 2017-11-10 12:01:26
- Проблемы с W5100
- #2 2017-11-12 23:53:13
- Re: Проблемы с W5100
- #3 2017-11-13 02:02:56
- Re: Проблемы с W5100
- #4 2017-12-19 22:26:11
- Re: Проблемы с W5100
- #5 2018-03-17 13:05:04
- Re: Проблемы с W5100
- #6 2018-04-02 21:13:58
- Re: Проблемы с W5100
- #7 2018-04-02 21:34:46
- Re: Проблемы с W5100
- Фокусы с Arduino
- 24 февраля 2016 г.
- Исправление косяков ethernet shield w5100
- Arduino.ru
- W5100. Получение IP от маршрутизатора с DHCP
- Arduino w5100 не работает
- Arduino.ru
- W5100 + SD-модуль — не взлетают вместе
Форум 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.
На плате установлена сборка с обозначением 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-й. Никак не найду исправленный вариант, а снова разбираться по схеме сейчас лениво.
Только обратите внимание — нужно именно поднять ножку. Вариант с разрезанием дорожки не подойдёт, т.к. дорожка уходит ещё и под корпус микросхемы. У меня из-за этого всё получилось только со второй попытки. 🙂
Вот, всё же нашёл. Не 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 🙂
Источник