WizNet W5100 не подключается к современным коммутаторам и маршрутизаторам
У меня есть сборщик данных Arduino с модулем W5100 (см. нижнюю часть рисунка). Простое фиксированное IP-соединение:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 242 };
Ethernet.begin(mac,ip);
Это работает с моими старыми маршрутизаторами (Asus WL500, TP-Link MR3420), но не удается подключиться при подключении гигабитного коммутатора или моего нового маршрутизатора (D-Link DWR-116). Светодиод подключения на новых устройствах не загорается или медленно мигает, указывая на повторные попытки подключения. Таким образом, W5100 не может установить физическое соединение.
Я добился успеха, добавив к ним свой коммутатор Surecom, которому 10 лет, но интересно, в чем может быть проблема. Есть ли какая-то конфигурация кабеля, которая используется W5100, но была удалена из этих новых сетевых устройств? (Не уверен, что кабель прямой или перекрестный, пробовать другой кабель - беспорядок, все дело в стене.)
@Arthur, 👍5
Обсуждение3 ответа
Лучший ответ:
Я думаю, что ваша проблема связана с MAC-адресом, который загружается в W5100. Попробуйте установить 2 младших бита первого байта в 0.
Эти биты определяют, является ли MAC-адрес одноадресным или многоадресным, а также частным или универсальным. Некоторые коммутаторы блокируют запросы ARP, если эти биты установлены неправильно.
Я изменил первый байт MAC-адреса с x'47' на x'44', и все заработало.
Спасибо, отличный совет! Немного поэкспериментировал, со странными результатами: мой роутер принимает х46, но не х44, а мой свитч принимает х44 и отказывается от х46. Оставил его на x46, ему не нужен гигабитный коммутатор для отправки нескольких байтов., @Arthur
Я только что настроил свой Dell PowerConnect, и он начал принимать W5100. Мне пришлось изменить скорость порта на 10M, и он начал работать. 100M и 1000M не принимали w5100. Раньше у меня было проводное соединение CISCO Wi-Fi 10/100M между ним и w5100, и оно соединяется нормально, но это не основная сеть в моей компании.
похоже на проблему с mac-адресом. Я погуглил байты MAC-адреса Tp-Link, и это сработало отлично. (это первые 4 байта)
- Как получить HTTPS на Arduino?
- Клиент MQTT на Arduino + SIM900
- Arduino Ethernet Shield при использовании контактов Arduino Mega
- Ethernet nodemcu
- Удаленная загрузка кода на плату Arduino через интернет
- Экран Ethernet не получает IP
- Где я могу найти лучшую схему выводов для платы «Arduino Ethernet»?
- Использование AysncUDPMessage для ESP32 для отправки строковых данных
Проверьте IP-адрес. Возможно, это неправильная подсеть., @Mikael Patel
Я сделал это уже. Оба маршрутизатора настроены на 192.168.1.1. Кроме того, замена маршрутизатора - не единственный способ сделать это не так, достаточно было подключить его к свитчу вместо (старого) маршрутизатора., @Arthur
Проверьте питание модуля Ethernet., @Mikael Patel
Эта штука работает непрерывно уже 4 года. Он просто перестает работать, когда я пытаюсь подключить его к современному маршрутизатору или коммутатору., @Arthur