Съдържание:

Добавете 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
Добавете WIZ820io / USR -ES1 - Wiznet W5500 мрежов порт към вашия Raspberry Pi
Добавете WIZ820io / USR -ES1 - Wiznet W5500 мрежов порт към вашия Raspberry Pi

Отчасти поради интереса ми да правя нещо подобно, и отчасти поради интереса ми към Codesys, имах това на ум от известно време, за да се опитам да свържа втори порт на мрежов интерфейс към Raspberry Pi. Така че, докато правех други проекти, мислех, четях, сравнявах, планирах и пазарувах, за да мога най -накрая да продължа и да изградя нещо.

Да - знам … има няколко готови за употреба системи "до ключ", които биха направили нещо подобно, но всъщност никой от тях не беше достатъчно примамлив, за да ме отдели от парите ми.

В действителност имам ниско ниво на познания и опит по Raspberry Pi и Linux / Raspberry Pi IOS (Raspian) (по-добре се справям с Windows и Android), нямам задълбочени познания по работа в мрежа (мога да накарам нещата да работят и изграждане на мрежи, но извън това съм малко над главата) и едва сега започнах да правя платки. Със сигурност не съм програмист.

След като най -накрая реших да продължа с тази идея за изграждане на нещо и избрах да използвам модула WIZ820io / USR -ES1, който е базиран на интегралната схема Wiznet - W5500. Този модул може да комуникира с Raspberry Pi (и други MCU), използвайки стандартната SPI шина. Освен това той работи с 3.3 VDC, така че създава НУЛА риск от щети за моя Raspberry Pi.

При проектирането на печатната платка избрах да я изградя в подходяща конфигурация "HAT" (форма и възможности) и в допълнение към добавянето на схемата за модула "WIZ820io, добавих и редица други елементи, които НЕ се използват в това мрежов проект, но който мога и ще използвам за други проекти в бъдеще.

Дъската, която проектирах / изградих, има следните елементи върху нея.

1 - Гнездо за поставяне на Wiznet - WIZ820io - Ethernet порт модул (направих персонализиран Eagle Footprint за това).

2 - 30 mm - 5 VDC охлаждащ вентилатор за Raspberry Pi CPU (направих персонализиран Eagle Footprint за това).

3 - Чип памет "CAT24C32" за поддържане на изискванията за съвместимост на HAT (това все още не е програмирано от мен) (направих персонализиран Eagle Design Block за това).

4 - Мини 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 надстройка

WIZ820io / USR -ES1 - Документацията за това е достъпна онлайн от OEM производителя

PC Board - Използвах 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 базирана операционна система.

Имам нулев опит с някоя от тях. Имам малък опит с малината - вижте къде ме доведе:)

Стъпка 2: Свързване на модула Wiznet WIZ820io към шината Raspberry Pi GPIO

Свързване на модула Wiznet WIZ820io към шината Raspberry Pi GPIO
Свързване на модула Wiznet WIZ820io към шината Raspberry Pi GPIO
Свързване на модула Wiznet WIZ820io към шината Raspberry Pi GPIO
Свързване на модула Wiznet WIZ820io към шината Raspberry Pi GPIO
Свързване на модула Wiznet WIZ820io към шината Raspberry Pi GPIO
Свързване на модула Wiznet WIZ820io към шината Raspberry Pi GPIO

Прегледайте приложените изображения.

Модулът Wiznet WIZ820io осигурява два реда с по 6 пина всеки за интерфейс.

Редовете са означени съответно с "J1 и" J2 ".

Информационният лист, който предоставят, има много хубава цветно кодирана диаграма на всеки щифт. Тази диаграма има за цел да ви помогне при свързването на тези щифтове към вашите пинове Raspberry PI GPIO. Те са доста добре съвпадение на NAME за NAME.

Разпилката на Raspberry Pi може да се намери тук: pinout.xyz

Свързах тези щифтове, както следва (вижте приложеното изображение):

Разбира се, тъй като направих истинска платка, всички основания (GND) бяха свързани заедно. Същото важи и за щифтовете към 3.3V - моята платка ги свърза заедно.

Няколко забележителни неща..

1 -ви - J2 Pin #5 - RSTn - Свързах го с RPi GPIO #17 (Pin #11) - Това беше предупредително. Не вярвам да се използва.

2 -ри - J1 Pin # 6 - INTn - Това е свързано към GPIO25 (Pin # 22). Това се изисква, тъй като в етапа на конфигуриране на Raspberry Pi IOS ще се позовем на това.

3 -ти - J1- Pin # 5 - SCNn - Това е свързано с Raspberry Pi "CS0" (Pin # 24). Всъщност това дава на този модул адреса на "Модул 0" на RPi SPI шината. Отново, в стъпката за конфигуриране на Raspberry Pi IOS, ще се позовем на това.

Стъпка 3: Моята платка

Моята печатна платка
Моята печатна платка
Моята печатна платка
Моята печатна платка
Моята печатна платка
Моята печатна платка

Приложена е схемата на Eagle „От точка до точка“, която измислих и с която генерирах файловете 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", скорост = 30000000dtoverlay = w5500

Проверете отново правописа и ако съвпада, натиснете двата клавиша "Ctrl-x", за да излезете.. и отговорете по подходящ начин, за да запишете и излезете.

== == == ==

При следващото зареждане (и за всички стартирания след това, ако тези две инструкции останат там) операционната система сега също ще извика наслагването с име "anyspi" и наслагването с име "w5500".

Наслагването "anyspy" подготвя операционната система да използва шината SPI0-0 (това е мястото, където преди това физически сме свързвали WIZ820io. "-0" го определя за използване на адрес "0"-припомнете, че преди това сме свързали пина WIZ820io #J1-6 към RPI GIPO "CEO" (Пин #24).

Наслагването "w5500" казва на операционната система как да се справи с интегралната схема W5500, разположена в модула WIZ820io. Той също така определя използването на RPi GPIO25 (Pin #22) като INTn сигнал. Припомнете си още веднъж, че преди това направихме тази връзка.

Този вид информация може да се намери в различни файлове, като този пример, намерен в GITHub.

== == ==

Време е да рестартирате RPI и всичко това да влезе в сила.

Стъпка 7: Рестартирахме отново. Надявам се, че се усмихвате

Рестартирахме отново. Надявам се, че се усмихвате
Рестартирахме отново. Надявам се, че се усмихвате
Рестартирахме отново. Надявам се, че се усмихвате
Рестартирахме отново. Надявам се, че се усмихвате

Ако всичко вървеше добре, вашият RPi трябваше да се рестартира нормално. Усмихни се.

Време е да проверите дали IOS зарежда двата нови файла с наслагване и дали разпознава прикачения модул WIZ820io.

Отново отворете прозорец "Команда".

Този път в подканата въведете ifconfig (или използвайте по -новата команда "ip") и натиснете клавиша Enter.

Вероятно ще получите дълъг отговор, така че ще трябва да превъртите обратно нагоре.

Обратно в горната част потърсете двата раздела:

Един с име eth0 и втори с име eth1 - вижте приложеното изображение.

В моята система eth0 е Ethernet портът на RPI. eth1 е новият WIZ820io Ethernet порт.

== == ==

Ако виждате двата порта, тогава е и RPI. Забележка в прикаченото изображение, eth1 е изпратил пакети и без грешки.

Тествах това, като изключих оригиналния кабел на порта и използвах браузъра, за да отида в YouTube и други уебсайтове. Работи. Аз също го "пинг" от няколко различни устройства и работи.

== == ==

Ако не виждате 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). Ако някой от вас намери решение за „зареждане“/ „crontab“за това, ще се радвам да чуя как го правите, ако сте отворени за споделяне.

Можете да видите моето в изображението.. Когато потърся доставчика на Mac Address за eth0 ==> b827eb, той се появява като Raspberry Pi Foundation. Доставчикът на eth1 ==> fa9770 се появява като неизвестен, така че очевидно в някакъв момент е генериран на моя Pi..

Стъпка 9: Заключение

Благодаря, че проверихте тази инструкция.

Научих доста работа в този малък проект.

Ако имате някакви въпроси или може да се интересувате от закупуване на една от таблата, които съм измислил (заселени или не), имам някои екстри, които се продават и които можем да обсъдим.

Във всеки случай ви призовавам да оставяте коментари, да предлагате корекции (правописни грешки или методи или ??)

Със сигурност, ако направите това за себе си, ще се радвам да видя снимки как сте се справили с него и вашите крайни резултати / цел.

Благодаря.

P. S.: Благодаря на този колега за насоките и идеите.

Стъпка 10: DTBO файлове

Два файла, които да добавите към вашата „папка с наслагвания - необходими за стъпки #4 и #5

Препоръчано: