Оглавление:

Добавьте сетевой порт WIZ820io / USR-ES1 - Wiznet W5500 к Raspberry Pi: 10 шагов
Добавьте сетевой порт WIZ820io / USR-ES1 - Wiznet W5500 к Raspberry Pi: 10 шагов

Видео: Добавьте сетевой порт WIZ820io / USR-ES1 - Wiznet W5500 к Raspberry Pi: 10 шагов

Видео: Добавьте сетевой порт WIZ820io / USR-ES1 - Wiznet W5500 к Raspberry Pi: 10 шагов
Видео: Порты и перенаправление\открытие портов. Инструкция и объяснения на пальцах! 2024, Ноябрь
Anonim
Добавьте к Raspberry Pi сетевой порт WIZ820io / USR-ES1 - Wiznet W5500
Добавьте к Raspberry Pi сетевой порт WIZ820io / USR-ES1 - Wiznet W5500

Отчасти из-за моего интереса сделать что-то подобное, а отчасти из-за моего интереса к 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

Малина Pi 3b
Малина 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 к шине GPIO Raspberry Pi
Подключение модуля Wiznet WIZ820io к шине GPIO Raspberry Pi
Подключение модуля Wiznet WIZ820io к шине GPIO Raspberry Pi
Подключение модуля Wiznet WIZ820io к шине GPIO Raspberry Pi
Подключение модуля Wiznet WIZ820io к шине GPIO Raspberry Pi
Подключение модуля 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 IOS (ранее Raspian) - записи в
Конфигурация Raspberry Pi IOS (ранее Raspian) - записи в

Чтобы Raspberry Pi «увидел» недавно установленный модуль WIZ820io на его шине SPI, необходимо уведомить IOS, чтобы он мог справиться с этим во время «BOOT Up».

Для этого мы просто добавим две строки в:../../boot/config.txt

Сначала.. Использование панели / окна терминала ==> ls

cd../boot, перейдите к../boot и перечислите (ls) каталог

Ссылка на прикрепленное изображение.. Там нужно поискать и подтвердить наличие двух записей - я обвел их красным.

Один из них - это файл с именем: "config.txt".

Вторая - это папка с названием «оверлеи».

== == == ==

После того, как вы подтвердили наличие обеих этих записей, вы можете перейти к следующему шагу.

Шаг 5: Конфигурация Raspberry Pi IOS (ранее Raspian) - записи в каталоге «оверлеев»

Конфигурация Raspberry Pi IOS (ранее Raspian) - записи в
Конфигурация Raspberry Pi IOS (ранее Raspian) - записи в
Конфигурация Raspberry Pi IOS (ранее Raspian) - записи в
Конфигурация Raspberry Pi IOS (ранее Raspian) - записи в
Конфигурация Raspberry Pi IOS (ранее Raspian) - записи в
Конфигурация 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

Конфигурация Raspberry Pi IOS (ранее Raspian) - Редактировать файл с именем: Config.txt
Конфигурация Raspberry Pi IOS (ранее Raspian) - Редактировать файл с именем: Config.txt
Конфигурация Raspberry Pi IOS (ранее Raspian) - Редактировать файл с именем: Config.txt
Конфигурация Raspberry Pi IOS (ранее Raspian) - Редактировать файл с именем: Config.txt
Конфигурация Raspberry Pi IOS (ранее Raspian) - Редактировать файл с именем: Config.txt
Конфигурация 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.

Рекомендуемые: