Оглавление:
- Запасы
- Шаг 1: Raspberry Pi 3b
- Шаг 2: Подключение модуля Wiznet WIZ820io к шине GPIO Raspberry Pi
- Шаг 3: Моя печатная плата
- Шаг 4: Конфигурация Raspberry Pi IOS (ранее Raspian) - Записи в папке «boot»
- Шаг 5: Конфигурация Raspberry Pi IOS (ранее Raspian) - записи в каталоге «оверлеев»
- Шаг 6: Конфигурация Raspberry Pi IOS (ранее Raspian) - Редактировать файл с именем: Config.txt
- Шаг 7: Мы перезагрузились. Надеюсь, ты улыбаешься
- Шаг 8: Конфигурация Raspberry Pi IOS (ранее Raspian) - Настройка IP-адреса
- Шаг 9: Заключение
- Шаг 10: файлы DTBO
Видео: Добавьте сетевой порт WIZ820io / USR-ES1 - Wiznet W5500 к Raspberry Pi: 10 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Отчасти из-за моего интереса сделать что-то подобное, а отчасти из-за моего интереса к Codesys, я какое-то время думал о том, чтобы попытаться подключить второй порт сетевого интерфейса к Raspberry Pi. Так что, работая над другими проектами, я думал, читал, сравнивал, планировал и делал покупки, чтобы, наконец, пойти дальше и что-то построить.
Да, я знаю … есть несколько готовых к работе систем, которые могли бы делать что-то подобное, но на самом деле ни одна из них не была достаточно заманчивой, чтобы отделить меня от моих денег.
На самом деле у меня низкий уровень знаний и опыта работы с Raspberry Pi и Linux / Raspberry Pi IOS (Raspian) (у меня лучше получается в мирах Windows и Android), никаких глубоких знаний в области сетевых технологий (я могу заставить все работать и строить сети, но помимо этого я немного над головой), и я только начал делать печатные платы. Конечно, я не программист.
Однажды я, наконец, решил продвинуться вперед с этой идеей создания чего-либо и решил использовать модуль WIZ820io / USR-ES1, который основан на интегральной схеме Wiznet - W5500. Этот модуль может связываться с Raspberry Pi (и другими микроконтроллерами) с помощью стандартной шины SPI. Кроме того, он работает от 3,3 В постоянного тока, поэтому он представляет НУЛЕВЫЙ риск повреждения моего Raspberry Pi.
При разработке печатной платы я решил построить ее в правильной конфигурации «шляпа» (форма и возможности), и в дополнение к добавлению схемы для модуля «WIZ820io» я также добавил ряд других элементов, которые НЕ используются в этом сетевой проект, но который я могу и буду использовать для других проектов в будущем.
На плате, которую я спроектировал / построил, есть следующие элементы.
1 - Разъем для размещения Wiznet - WIZ820io - модуль порта Ethernet (я сделал для этого специальный Eagle Footprint).
2 - Вентилятор охлаждения 30 мм - 5 В постоянного тока для процессора Raspberry Pi (для этого я сделал специальный Eagle Footprint).
3 - Чип памяти «CAT24C32» для обеспечения требований совместимости с HAT (это еще не запрограммировано мной) (для этого я сделал специальный блок дизайна Eagle).
4 - Mini MAX3232 - UART - Преобразователь уровня TTL в RS-232, подключенный к UART0 (для этого я сделал специальный Eagle Footprint).
5 - Красный светодиод (GPIO24), желтый светодиод (GPIO23) и зеленый светодиод (GPIO22), которые будут использоваться для упражнений «Светофор - программирование на Python».
6 - Зеленый светодиод (GPIO18) и зеленый светодиод (GPIO27) - для упражнений по программированию и поиска неисправностей.
7 - Тактильный переключатель, подключенный к GPIO25 - для упражнений по программированию и устранения неполадок (для этого я сделал специальный Eagle Footprint). ОБРАТИТЕ ВНИМАНИЕ, что этот GPIO также будет использоваться с WIZ820io.
Итак, как я ранее отмечал, это руководство будет иметь дело только с пунктом №1 в этом списке. Все остальные элементы, которые я добавил на плату, присутствуют по другим причинам, не связанным с этим проектом сетевого интерфейса.
Запасы
Raspberry Pi - я использовал более старую версию Raspberry Pi 3B. Ничего плохого в этом нет.. У меня действительно мертвый порт HDMI, поэтому я запускаю его "без головы", используя TeamViewer для доступа к нему. Оно работает. Я сильно подозреваю, что большинство версий Raspberry Pi будут работать с этой инструкцией, ОБЕСПЕЧИВАЯ, что они могут запускать более свежие версии Raspberry Pi IOS (Raspian).
Перед тем как начать все это, я конечно же обновил операционную систему:
sudo apt-get update
sudo apt-get upgrade
WIZ820io / USR-ES1 - документация для этого доступна в Интернете у производителя оборудования.
Печатная плата - я использовал Autodesk Eagle для проектирования печатной платы и создания файлов Gerber, необходимых для JLCPCB для построения печатной платы. Как отмечалось ранее, я также добавил чип памяти «CAT24C32», чтобы обеспечить совместимость с HAT.
Шаг 1: Raspberry Pi 3b
Что касается Raspberry Pi, я сделал этот проект, используя стандартный Raspberry Pi 3b вместе с последней версией Raspberry Pi IOS (Raspian), которую я смог загрузить и установить.
Ничего особенного. Я владел этим устройством в течение нескольких лет, и он работал у меня в основном хорошо (ну, видеовыход HDMI не работает, поэтому я вынужден работать без головы с помощью TeamViewer). В этом нет необходимости.
Я подозреваю, что любой RPi должен иметь возможность подключаться к WIZ820io / USR-ES1 - Wiznet W5500 и выполнять эту работу, как и многие другие бренды, конкурирующие на одном рынке (Beagle Bone, Orange, Tinker и т. Д.) И использующие аналогичные модель ОС на базе Linux.
У меня НУЛЕВОЙ опыт работы с любым из них. У меня мало опыта работы с Raspberry - посмотрите, к чему это меня привело:)
Шаг 2: Подключение модуля Wiznet WIZ820io к шине GPIO Raspberry Pi
Просмотрите прикрепленные изображения.
Модуль Wiznet WIZ820io имеет два ряда по 6 контактов в каждом для подключения.
Строки помечены как «J1» и «J2» соответственно.
В листе данных, который они предоставляют, есть очень красивая диаграмма с цветовой кодировкой каждого контакта. Эта диаграмма предназначена для того, чтобы помочь вам подключить эти контакты к контактам Raspberry PI GPIO. Они вполне подходят для соответствия ИМЯ к ИМЯ.
Распиновку Raspberry Pi можно найти здесь: pinout.xyz
Я подключил эти контакты следующим образом (см. Прикрепленное изображение):
Конечно, поскольку я сделал настоящую печатную плату, все заземления (GND) были соединены вместе. То же самое и с выводами на 3,3 В - моя печатная плата соединила их вместе.
Несколько замечаний..
1-й - J2, контакт №5 - RSTn - я подключил его к RPi GPIO №17 (контакт №11) - это было предосторожностью. Я не верю, что это используется.
2-й - J1, контакт №6 - INTn - подключен к GPIO25 (контакт №22). Это необходимо, поскольку на этапе настройки Raspberry Pi IOS мы будем ссылаться на это.
3-й - J1 - контакт № 5 - SCNn - подключен к Raspberry Pi «CS0» (контакт № 24). Фактически это дает этому модулю адрес «Module 0» на шине RPi SPI. Опять же, на этапе настройки Raspberry Pi IOS мы обратимся к этому.
Шаг 3: Моя печатная плата
Прилагаю схему Eagle "Point to Point", которую я придумал и с которой я создал файлы Gerber.
Также прилагаются изображения "монтажной платы", которую я придумал для этого проекта.
Эта плата поддерживает ряд различных продуктов Wiznet в стиле WIZ820io.
Шаг 4: Конфигурация Raspberry Pi IOS (ранее Raspian) - Записи в папке «boot»
Чтобы Raspberry Pi «увидел» недавно установленный модуль WIZ820io на его шине SPI, необходимо уведомить IOS, чтобы он мог справиться с этим во время «BOOT Up».
Для этого мы просто добавим две строки в:../../boot/config.txt
Сначала.. Использование панели / окна терминала ==> ls
cd../boot, перейдите к../boot и перечислите (ls) каталог
Ссылка на прикрепленное изображение.. Там нужно поискать и подтвердить наличие двух записей - я обвел их красным.
Один из них - это файл с именем: "config.txt".
Вторая - это папка с названием «оверлеи».
== == == ==
После того, как вы подтвердили наличие обеих этих записей, вы можете перейти к следующему шагу.
Шаг 5: Конфигурация Raspberry Pi IOS (ранее Raspian) - записи в каталоге «оверлеев»
Измените каталог на "каталог оверлеев".
Тип: cd-накладки
После нажатия клавиши «Enter» вы попадете в папку «overlays» (см. Прикрепленное изображение).
Перечислите содержимое каталога.
Тип: ls
После нажатия клавиши «Enter» вы должны увидеть длинный список содержимого этого каталога. Список может быть в алфавитном порядке.
(см. прикрепленные изображения (2 из)). Обратите внимание, что почти ВСЕ файлы имеют расширение: *.dtbo, вы также можете заметить несколько имен с расширением: *.dtb
Это ВСЕ файлы наложения "дерева устройств".
Вам необходимо подтвердить наличие двух «оверлейных» файлов (см. Прикрепленные файлы изображений).
1-й - файл с именем: anyspi.dtbo (для этого вам может потребоваться использовать полосу прокрутки в правом поле окна, чтобы вернуться к началу и найти упорядоченный в алфавитном порядке файл anyspi.dtbo).
2-й - файл с именем w5500.dtbo
== == ==
Если вы можете подтвердить наличие обоих этих файлов, значит, вы в хорошей форме и можете вернуться в каталог../boot.
Введите: cd../ после нажатия клавиши ENTER вы должны вернуться в каталог / boot.
Перечислите каталог для подтверждения: введите: ls и нажмите клавишу ENTER.
Шаг 6: Конфигурация Raspberry Pi IOS (ранее Raspian) - Редактировать файл с именем: Config.txt
В каталоге../boot теперь мы можем внести несколько небольших изменений в файл с именем: config.txt.
Сначала мы вызовем редактор «nano» как «суперпользователь» (sudo).
sudo = 'суперпользователь"
nano - это текстовый редактор, который мы будем использовать
и, как уже отмечалось, config.txt - это файл, который мы хотим редактировать.
Введите: sudo nano config.txt и нажмите ENTER.
Это вызовет редактор и отобразит содержимое файла config.txt. Если редактор не открывается или открывается пустым, выйдите (если в нано) и дважды проверьте правописание.
Если все прошло успешно, вы должны увидеть что-то вроде второго прикрепленного изображения. «nano» будет отображать самую «верхнюю часть» файла. вам нужно будет прокрутить вниз до самого низа.
В самом низу файла добавьте два «оператора dtoverlay» ниже:
dtoverlay = anyspi, spi0-0, dev = "w5500", speed = 30000000dtoverlay = w5500
Дважды проверьте орфографию и, если она совпадает, нажмите две клавиши «Ctrl-x» для выхода.. и ответьте соответствующим образом, чтобы сохранить и выйти.
== == == ==
При следующей загрузке (и для всех последующих загрузок, если эти два оператора остаются там) операционная система теперь также будет вызывать оверлей с именем «anyspi» и оверлей с именем «w5500».
Наложение «anyspy» подготавливает операционную систему к использованию шины SPI0-0 (именно к ней мы ранее физически подключили WIZ820io. «-0» указывает, что он будет использовать адрес «0» - напомним, что мы ранее подключили вывод WIZ820io. № J1-6 на имя РПи ГИПО «Генеральный директор» (Пин № 24).
Накладка «w5500» сообщает операционной системе, как работать с интегральной схемой W5500, расположенной в модуле WIZ820io. Он также определяет использование RPi GPIO25 (контакт № 22) в качестве сигнала INTn. Напомним еще раз, что мы ранее устанавливали эту связь.
Такую информацию можно найти в различных файлах, например в этом примере на GITHub.
== == ==
Пора перезагрузить RPI и заставить все это вступить в силу.
Шаг 7: Мы перезагрузились. Надеюсь, ты улыбаешься
Если все прошло хорошо, ваш RPi должен перезагрузиться в обычном режиме. Улыбка.
Пришло время проверить, загрузила ли IOS два новых файла наложения и распознает ли подключенный модуль WIZ820io.
Еще раз откройте окно «Команды».
На этот раз в командной строке введите ifconfig (или используйте новую команду «ip») и нажмите клавишу Enter.
Вы, вероятно, получите длинный ответ, поэтому вам нужно будет вернуться к началу.
Вернувшись наверх, найдите два раздела:
Один назван eth0, а второй - eth1 - см. Прикрепленное изображение.
В моей системе eth0 - это порт Ethernet на RPI. eth1 - это новый порт Ethernet WIZ820io.
== == ==
Если вы видите два порта, значит, RPI тоже. Обратите внимание на прикрепленное изображение, eth1 отправил пакеты без ошибок.
Я проверил это, отключив оригинальный кабель порта и используя браузер для перехода на YouTube и другие веб-сайты. Это работает. Я также "ping'd" это с нескольких разных устройств, и он работает.
== == ==
Если вы не видите eth1 (или что-то подобное), кроме eth0 на RPI3 или RPi4, попробуйте вернуться и дважды проверить, правильно ли был отредактирован и сохранен config.txt. Убедитесь, что две накладки на месте и орфография правильная (нет заглавных букв там, где их нет - заглавные буквы имеют значение в этой системе).
== == ==
Если два порта присутствуют, то может потребоваться немного больше работы по настройке… переходите к следующему шагу….
Шаг 8: Конфигурация Raspberry Pi IOS (ранее Raspian) - Настройка IP-адреса
Это немного не в моей рулевой рубке, поэтому в настоящее время я не могу дать рекомендации.
Просто знайте, что существует бесчисленное множество веб-сайтов, видео на YouTube и досках объявлений, которые предоставляют такую информацию.
но … вы можете проверить и сделать несколько вещей здесь.
1 - Дважды проверьте IP-адрес, который в настоящее время имеет ваш новый порт. был ли он назначен вашим сервером DHP, или это IP-адрес по умолчанию - что-то в диапазоне: 169.254.xxx.yyy? Это что-то еще ??
2- Вам нужен статический (фиксированный) IP-адрес или динамический IP-адрес (назначенный вашим DHCP-сервером).
Проверьте коммутатор / маршрутизатор, к которому подключен ваш RPI.. видит ли он ваш новый порт? он может "пинговать" его? (Обязательно отсоедините оригинальный кабель порта, если вы это сделаете - иначе RPi может вас обмануть).
Используйте ifconfig (или более новую команду «ip»), чтобы убедиться, что входящие и исходящие данные выглядят «нормально» (так сказать) и без чрезмерного количества ошибок.
== == ==
Наконец.. Я считаю, что это w5500.dtbo назначает MAC-адрес модулю WIZ820io / W5500.. но я не могу сказать наверняка, происходит ли это именно там. Я не мог сразу найти подробности по этому поводу.
Мне кажется, что при каждой загрузке назначается другой MAC-адрес. Мне лично это не нравится, и, следовательно, есть вещи, которые можно сделать для установки Mac-адреса (например, программа "macchanger" или установка его с помощью команд ip / ifconfig). Если кто-нибудь из вас найдет для этого решение "boot-up" / "crontab", я был бы рад услышать, как вы это делаете, если вы готовы поделиться им.
Вы можете увидеть мой на изображении.. Когда я ищу поставщика Mac-адреса для eth0 ==> b827eb, он оказывается Raspberry Pi Foundation. Производитель eth1 ==> fa9770 оказывается неизвестным, поэтому очевидно, что он был сгенерирован на моем Pi в какой-то момент..
Шаг 9: Заключение
Спасибо, что ознакомились с этим руководством.
Я довольно много узнал, работая над этим маленьким проектом.
Если у вас есть какие-либо вопросы или вы можете быть заинтересованы в покупке одной из созданных мною досок (заполненных или нет), у меня есть некоторые дополнения, которые продаются и которые мы можем обсудить.
В любом случае прошу оставлять комментарии, предлагать исправления (опечатки или методы или ??)
Безусловно, если вы сделаете это для себя, мне было бы очень приятно увидеть фотографии того, как вы справились с этим, и ваших конечных результатов / целей.
Спасибо.
P. S.: Спасибо этому парню за советы и идеи.
Шаг 10: файлы DTBO
Два файла, которые нужно добавить в "папку оверлеев" - необходимы для шагов №4 и №5.
Рекомендуемые:
LLDPi - сетевой инструмент Raspberry Pi (Государственный университет Колорадо): 7 шагов
LLDPi - сетевой инструмент Raspberry Pi (Университет штата Колорадо): проект LLDPi - это встроенная система, созданная из Raspberry Pi и ЖК-дисплея, которая может извлекать информацию LLDP (протокол обнаружения канального уровня) с соседних устройств в сети, такую как имя и описание системы. , имя и описание порта, VLA
Трассировка сетевой линии: 7 шагов
Отслеживание сетевой линии: Мне нужен способ отследить некоторые сетевые линии, которые были проложены, когда мой дом строился 7 лет назад. К сожалению, в то время они не были маркированы. Вы можете потратить много денег на коммерческую единицу или немного ноу-хау и 5 долларов
UChip - последовательный порт через ИК-порт !: 4 шага
UChip - Serial Over IR!: Беспроводная связь стала ключевой функцией в наших проектах в настоящее время, и, говоря о беспроводной связи, первое, что мне приходит в голову, это Wi-Fi или BT, но обработка протоколов связи Wi-Fi или BT - это не так. простая задача и требует много
Как расширить сигнал NVR (повторитель IP-камеры, сетевой коммутатор и WiFi-маршрутизатор / повторитель): 5 шагов
Как расширить сигнал сетевого видеорегистратора (повторитель IP-камеры, сетевой коммутатор и WiFi-маршрутизатор / повторитель): в этой инструкции мы покажем вам, как расширить сигнал сетевого видеорегистратора, используя: 1. Функция встроенного повторителя в IP-камере или 2. Сетевой коммутатор или 3. Wi-Fi роутер
Сетевой контроллер отказоустойчивого датчика температуры: 8 шагов
Сетевой контроллер отказоустойчивого датчика температуры: в этом руководстве показано, как преобразовать плату Arduino Uno в универсальный контроллер для набора датчиков температуры DS18B20, способных автоматически изолировать неисправные датчики. Контроллер может управлять до 8 датчиками с помощью Arduino Uno. (А