Cuprins:
- Provizii
- Pasul 1: Raspberry Pi 3b
- Pasul 2: interfațarea modulului Wiznet WIZ820io cu Raspberry Pi GPIO Bus
- Pasul 3: Circuitul meu
- Pasul 4: Configurare Raspberry Pi IOS (fost Raspian) - Intrări în folderul „boot”
- Pasul 5: Configurare Raspberry Pi IOS (fost Raspian) - Intrări în directorul „suprapuneri”
- Pasul 6: Configurare Raspberry Pi IOS (fost Raspian) - Editați fișierul numit: Config.txt
- Pasul 7: Am re-pornit. Sper că zâmbești
- Pasul 8: Configurare Raspberry Pi IOS (fost Raspian) - Setarea adresei IP
- Pasul 9: Concluzie
- Pasul 10: Fișiere DTBO
Video: Adăugați un port de rețea WIZ820io / USR-ES1 - Wiznet W5500 la Raspberry Pi .: 10 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Parțial datorită interesului meu de a face așa ceva și, parțial, datorită interesului meu pentru Codesys, am avut de gând o vreme acum să încerc să conectez un al doilea port de interfață de rețea la un Raspberry Pi. Așa că, în timp ce fac alte proiecte, m-am gândit, citesc, compar, planific și cumpărături, astfel încât să pot continua să construiesc ceva.
Da, știu … există câteva sisteme „la cheie” gata de funcționare disponibile acolo, ceea ce ar face ceva similar, dar într-adevăr niciunul dintre ei nu a fost suficient de atrăgător pentru a mă separa de banii mei.
În realitate, am un nivel scăzut de cunoștințe și experiență în Raspberry Pi și Linux / Raspberry Pi IOS (Raspian) (mă descurc mai bine în lumea Windows și Android), nu am cunoștințe aprofundate despre rețea (pot face lucrurile să funcționeze) și construiesc rețele, dar dincolo de asta sunt puțin peste cap) și abia am început să fac circuite. Cu siguranță, nu sunt programator.
Odată ce am decis în cele din urmă să merg mai departe cu această idee de a construi ceva și am optat pentru utilizarea modulului WIZ820io / USR-ES1, care se bazează pe circuitul integrat Wiznet - W5500. Acest modul poate comunica cu Raspberry Pi (și alte MCU-uri) folosind magistrala SPI standard. În plus, acesta dispare de 3,3 VDC, deci prezintă ZERO riscuri de deteriorare pentru Raspberry Pi.
La proiectarea plăcii de circuit, am ales să o construiesc într-o configurație adecvată „HAT” (formă și capacitate) și, pe lângă adăugarea circuitelor pentru modulul „WIZ820io, am adăugat și o serie de alte elemente care NU sunt utilizate în acest proiect de rețea, dar pe care îl pot și voi folosi pentru alte proiecte în viitor.
Placa pe care am proiectat-o / am construit-o conține următoarele elemente.
1 - O priză pentru a ține Wiznet - WIZ820io - modulul port Ethernet (am făcut o amprentă personalizată Eagle Footprint pentru asta).
2 - Un ventilator de răcire de 30 mm - 5 VDC pentru CPU Raspberry Pi (am făcut o amprentă Eagle personalizată pentru asta).
3 - Un cip de memorie "CAT24C32" pentru a menține cerințele de compatibilitate HAT (acest lucru nu este încă programat de mine) (am făcut un bloc Eagle Design personalizat pentru asta).
4 - Un mini MAX3232 - UART - Convertor de nivel TTL la RS-232 conectat la UART0 (am făcut o amprentă Eagle personalizată pentru asta).
5 - Un LED roșu (GPIO24), un LED galben (GPIO23) și un LED verde (GPIO22) care urmează să fie utilizat pentru exercițiile de programare a semaforului - Python.
6 - Un LED verde (GPIO18) și un LED verde (GPIO27) - pentru programarea exercițiilor și depanarea.
7 - Un comutator tactil conectat la GPIO25 - pentru exerciții de programare și depanare (am făcut o amprentă Eagle personalizată pentru asta). Rețineți că acest GPIO va fi utilizat și cu WIZ820io.
Așa cum am menționat anterior, acest instructabil se va ocupa doar de articolul nr. 1 din această listă. Toate celelalte elemente pe care le-am adăugat pe tablă sunt disponibile din alte motive care nu au legătură cu acest proiect de interfață de rețea.
Provizii
Raspberry Pi - Am folosit un Raspberry Pi 3B mai vechi. Nimic în neregulă cu asta.. Al meu are un port HDMI mort, așa că îl rulez „fără cap” folosind TeamViewer pentru a-l accesa. Functioneaza. Bănuiesc cu tărie că majoritatea versiunilor Raspberry Pi vor funcționa cu acest instructiv, PRIVIND că pot rula versiuni mai recente ale Raspberry Pi IOS (Raspian).
Înainte de a începe toate acestea, am actualizat desigur sistemul de operare:
sudo apt-get update
sudo apt-get upgrade
WIZ820io / USR-ES1 - Documentația pentru acest lucru este disponibilă online de la OEM
PC Board - Am folosit Autodesk Eagle pentru a proiecta PCB-ul și pentru a genera fișierele Gerber necesare pentru ca JLCPCB să construiască placa de circuit. După cum sa menționat anterior, am adăugat și cipul de memorie „CAT24C32” pentru a menține cerința de compatibilitate HAT.
Pasul 1: Raspberry Pi 3b
În ceea ce privește Raspberry Pi, am făcut acest proiect folosind un Raspberry Pi 3b standard, împreună cu cea mai recentă versiune a Raspberry Pi IOS (Raspian) pe care am putut să o descarc și să o instalez.
Nimic special acolo. Am deținut acea unitate de câțiva ani și a funcționat mai bine pentru mine (bine - ieșirea video HDMI este moartă, așa că sunt forțat să rulez fără cap folosind TeamViewer). Nu ar trebui să faceți acest lucru.
Bănuiesc că orice RPi ar trebui să se poată conecta la un WIZ820io / USR-ES1 - Wiznet W5500 și să facă acest lucru să funcționeze, precum și multe alte mărci concurează pe aceeași piață (Beagle Bone, Orange, Tinker etc.) și să utilizeze un sistem similar modelează sistemul de operare Linux.
Am ZERO experiență cu oricare dintre acestea. Am puțină experiență cu Raspberry - uite unde m-a adus asta:)
Pasul 2: interfațarea modulului Wiznet WIZ820io cu Raspberry Pi GPIO Bus
Examinați imaginile atașate.
Modulul Wiznet WIZ820io oferă două rânduri de câte 6 pini pe care se interfață.
Rândurile sunt etichetate „J1 și respectiv„ J2”.
Fișa tehnică pe care o furnizează are o diagramă foarte frumoasă, codificată în culori, a fiecărui pin. Această diagramă este menită să vă ajute să conectați acei pini la pinii Raspberry PI GPIO. Sunt destul de bine un NAME pentru meciul NAME.
Pinout-ul Raspberry Pi îl poate găsi aici: pinout.xyz
Am conectat acei pini după cum urmează (vezi imaginea atașată):
Desigur, din moment ce am creat o placă de circuite, toate bazele (GND) au fost conectate împreună. Același lucru este valabil și cu pinii de la 3,3V - placa mea de circuit le-a conectat împreună.
Câteva lucruri notabile..
Primul - J2 Pin # 5 - RSTn - Am conectat acest lucru la RPi GPIO # 17 (Pin # 11) - A fost o atenție. Nu cred că este folosit.
Al doilea - J1 Pin # 6 - INTn - Acesta este conectat la GPIO25 (Pin # 22). Acest lucru este necesar, deoarece în etapa de configurare Raspberry Pi IOS, ne vom referi la acest lucru.
Al treilea - J1- Pin # 5 - SCNn - Acesta este conectat la Raspberry Pi „CS0” (Pin # 24). Efectiv, acest lucru oferă acestui modul adresa „Modulului 0” pe magistrala SPI RPi. Din nou, în pasul de configurare Raspberry Pi IOS, ne vom referi la acest lucru.
Pasul 3: Circuitul meu
Atașat este schema Eagle „Point to Point” pe care am realizat-o și cu care am generat fișierele Gerber.
De asemenea, sunt atașate imagini ale „Circuit Board” pe care am creat-o pentru acest proiect.
Această placă va accepta o serie de produse Wiznet diferite în stilul WIZ820io.
Pasul 4: Configurare Raspberry Pi IOS (fost Raspian) - Intrări în folderul „boot”
Pentru ca Raspberry Pi să „vadă” noul modul WIZ820io instalat pe magistrala SPI, IOS trebuie să fie informat, astfel încât să poată face față acestuia în timpul „BOOT Up”.
Pentru a face acest lucru, vom adăuga pur și simplu două linii la:../../boot/config.txt
Mai întâi.. Utilizarea unui panou / fereastră Terminal ==> ls
cd../boot, navigați până la../boot și listați (ls) directorul
Faceți referire la imaginea atașată.. Acolo trebuie să căutați și să confirmați prezența a două intrări - le-am încercuit cu roșu.
Unul este un fișier numit: "config.txt"
Al doilea este un folder numit: „suprapuneri”
== == == ==
După ce ați confirmat prezența ambelor intrări, puteți continua cu pasul următor
Pasul 5: Configurare Raspberry Pi IOS (fost Raspian) - Intrări în directorul „suprapuneri”
Schimbați directorul în directorul „suprapuneri”
Tip: suprapuneri cd
După apăsarea tastei „enter”, aceasta vă va duce la folderul „suprapuneri” (a se vedea imaginea atașată).
Enumerați conținutul directorului.
Tipul: ls
După apăsarea tastei „enter”, ar trebui să vedeți o listă lungă a conținutului acelui director. Lista poate fi alfabetică.
(vezi imaginile atașate (2 din)). Observați că aproape TOATE fișierele sunt denumite cu o extensie de: *.dtbo, de asemenea, puteți observa câteva numite cu o extensie de: *.dtb
Acestea sunt TOATE fișierele suprapuse „Arborele dispozitivului”
Trebuie să confirmați prezența a două fișiere „suprapuse” (consultați fișierele imagine atașate).
Primul - un fișier numit: anyspi.dtbo (pentru acesta, poate fi necesar să utilizați bara de derulare din marginea dreaptă a ferestrei pentru a derula înapoi în partea de sus și a găsi anyspi.dtbo ordonat alfabetic).
2 - un fișier numit w5500.dtbo
== == ==
Dacă puteți confirma că ambele fișiere sunt prezente, atunci sunteți într-o formă bună și puteți reveni la directorul../boot.
Tastați: cd../ după ce ați apăsat tasta ENTER, ar trebui să fiți readus în directorul / boot.
Listați directorul pentru confirmare: tastați: ls și apăsați tasta ENTER
Pasul 6: Configurare Raspberry Pi IOS (fost Raspian) - Editați fișierul numit: Config.txt
În directorul../boot, putem lucra acum pentru a face câteva modificări mici la fișierul numit: config.txt
Mai întâi vom apela la editorul „nano” ca „super utilizator” (sudo)
sudo = 'superutilizator"
nano este editorul de text pe care îl vom folosi
și, după cum sa menționat, config.txt este fișierul pe care dorim să îl edităm.
Tastați: sudo nano config.txt și bateți ENTER.
Aceasta va afișa editorul și va afișa conținutul fișierului config.txt. Dacă editorul nu se deschide sau se deschide gol, ieșiți (dacă este în nano) și verificați-vă ortografia.
Dacă totul a mers bine, ar trebui să vedeți ceva de genul celei de-a doua imagini atașate. „nano” va afișa chiar „partea de sus” a fișierului. va trebui să derulați până în jos.
În partea de jos a fișierului, adăugați cele două „instrucțiuni dtoverlay” de mai jos:
dtoverlay = anyspi, spi0-0, dev = "w5500", viteză = 30000000 dtoverlay = w5500
Verificați dublu ortografia și, dacă se potrivește, apăsați cele două taste "Ctrl-x" pentru a ieși.. și răspundeți corespunzător pentru a salva și a ieși.
== == == ==
La următorul boot-up (și pentru toate boot-up-urile ulterioare dacă aceste două instrucțiuni rămân acolo), sistemul de operare va apela acum și la suprapunerea numită „anyspi” și la suprapunerea numită „w5500”.
Suprapunerea „anyspy” pregătește sistemul de operare pentru a utiliza magistrala SPI0-0 (acolo unde am conectat anterior fizic WIZ820io. „-0” îl specifică pentru a utiliza adresa „0” - reamintim că am conectat anterior pinul WIZ820io # J1-6 către „CEO” RPi GIPO (Pin # 24).
Suprapunerea „w5500” spune sistemului de operare cum să facă față circuitului integrat W5500 situat în modulul WIZ820io. De asemenea, definește utilizarea RPi GPIO25 (Pin # 22) ca semnal INTn. Reamintim încă o dată că am făcut anterior această conexiune.
Acest tip de informații pot fi găsite în diferite fișiere, cum ar fi acest exemplu găsit pe GITHub.
== == ==
Este timpul să reporniți RPI și să faceți ca toate acestea să intre în vigoare.
Pasul 7: Am re-pornit. Sper că zâmbești
Dacă totul a mers bine, RPi-ul tău ar fi trebuit să re-pornească normal. Zâmbet.
Este timpul să verificați dacă IOS a încărcat cele două noi fișiere suprapuse și dacă recunoaște modulul WIZ820io atașat.
Din nou deschideți o fereastră „Comandă”.
De data aceasta, la prompt, tastați ifconfig (sau utilizați comanda „ip” mai nouă) și apăsați tasta Enter.
Probabil veți obține un răspuns lung, deci va trebui să derulați înapoi în sus.
Înapoi în partea de sus, căutați cele două secțiuni:
Unul numit eth0 și un al doilea numit: eth1 - vezi imaginea atașată.
În sistemul meu, eth0 este portul Ethernet de pe RPI. eth1 este noul port Ethernet WIZ820io.
== == ==
Dacă vedeți cele două porturi, atunci este și RPI. Observați în imaginea atașată că eth1 a trimis pachete și fără erori.
Am testat acest lucru deconectând cablul portului original și folosind browserul pentru a accesa YouTube și alte site-uri web.. Funcționează. L-am „ping” de la câteva dispozitive diferite și funcționează.
== == ==
Dacă nu vedeți eth1 (sau ceva similar) - altul decât eth0 pe un RPI3 sau RPi4, atunci încercați să reveniți și să verificați dublu dacă config.txt a fost corect editat și salvat. Asigurați-vă că cele două suprapuneri sunt la locul lor și ortografia este corectă (fără majuscule acolo unde nu le am - majusculele contează în acest sistem).
== == ==
Dacă cele două porturi sunt prezente, atunci ar putea fi ceva mai mult lucru de configurare de făcut … la pasul următor …
Pasul 8: Configurare Raspberry Pi IOS (fost Raspian) - Setarea adresei IP
Acest lucru este puțin din casa mea, așa că în acest moment nu sunt în măsură să ofer îndrumări.
Știți doar că există nenumărate site-uri web, videoclipuri YouTube și panouri de mesaje care oferă acest tip de informații.
dar.. poate doriți să verificați și să faceți câteva lucruri aici.
1 - Verificați de două ori adresa IP pe care o are în prezent noul dvs. port. a fost atribuit de serverul dvs. DHP sau este IP-ul implicit - ceva în intervalul: 169.254.xxx.yyy? Este altceva ??
2- Doriți o adresă IP statică (fixă) sau o adresă IP dinamică (atribuită de serverul dvs. DHCP).
Verificați comutatorul / routerul la care este conectat RPI-ul dvs… vă vedeți noul port? o poate „face ping”? (asigurați-vă că deconectați cablul portului original dacă faceți acest lucru - altfel RPi vă poate păcăli).
Utilizați ifconfig (sau noua comandă „ip”) pentru a vedea că datele care vin și pleacă arată „normal” (ca să spunem așa) și fără un număr nejustificat de erori.
== == ==
În sfârșit.. cred că este w5500.dtbo atribuie o adresă MAC modulului WIZ820io / W5500.. dar nu pot spune cu certitudine dacă acolo se întâmplă. Nu am putut găsi imediat detalii despre asta.
Pentru mine, se pare că o altă adresă MAC este alocată de fiecare dată când pornește. Personal, nu-mi place asta și, în consecință, există lucruri care pot fi făcute pentru a seta adresa Mac (programul „macchanger” de exemplu sau setarea acestuia prin comenzile ip / ifconfig). Dacă vreunul dintre voi găsește o soluție „boot-up” / „crontab” la acest lucru, aș fi bucuros să aud despre cum o faceți dacă sunteți deschis la partajare.
Îl puteți vedea pe al meu în imagine.. Când caut furnizorul de adrese Mac pentru eth0 ==> b827eb, apare ca Raspberry Pi Foundation. Furnizorul pentru eth1 ==> fa9770 apare ca necunoscut, deci evident, a fost generat pe Pi la un moment dat..
Pasul 9: Concluzie
Vă mulțumim că ați verificat acest instructabil.
Am învățat destul de mult să lucrez prin acest mic proiect.
Dacă aveți întrebări sau puteți fi interesat să cumpărați unul dintre panourile pe care le-am alcătuit (populat sau nu), am câteva extrase care sunt de vânzare și pe care le putem discuta.
În orice caz, vă îndemn să lăsați comentarii, să sugerați corecții (greșeli sau metode sau ??)
Cu siguranță, dacă faceți acest lucru pentru dvs., aș fi foarte încântat să văd fotografii despre cum ați abordat-o și despre rezultatele / scopul dvs. final.
Mulțumiri.
P. S.: Mulțumesc acestui tip pentru îndrumare și idei.
Pasul 10: Fișiere DTBO
Două fișiere de adăugat în „folderul de suprapuneri - necesare pentru pașii # 4 și # 5
Recomandat:
Server de rețea Tiny Raspberry Pi Plug & Play: 6 pași (cu imagini)
Plug & Play Tiny Raspberry Pi Network Server: Recent, am pus mâna pe două Raspberry Pi 1 Model A + ieftin. Dacă nu ați auzit de Pi Model A, acesta este unul dintre primii factori de formă ai Raspberry Pi, care este mai mare decât un Pi Zero și mai mic decât un Raspberry Pi standard. Vreau mereu să
Blocarea anunțurilor la nivel de rețea cu Raspberry Pi: 4 pași
Blocarea anunțurilor la nivel de rețea cu Raspberry Pi: Experimentați un web mai curat și mai rapid și blocați anunțurile enervante din întreaga rețea de domiciliu cu Pi-hole și Raspberry Pi
Realizarea plăcilor bazate pe SAMD21 Port USB într-un port serial hardware !: 3 pași
Realizarea plăcilor bazate pe SAMD21 Port USB într-un port serial hardware !: În zilele noastre, este standard să utilizați un port USB pentru placă Arduino (sau orice alt compatibil) ca port serial emulat. Acest lucru este foarte util pentru depanarea, trimiterea și primirea de date de la plăcile noastre adorabile. Am lucrat la uChip când, trecând prin datash
Cum să configurați Pi-Hole pe un Raspberry Pi, un blocator de anunțuri în rețea !!: 25 de pași
Cum să configurați Pi-Hole pe un Raspberry Pi, un blocator de anunțuri de rețea !!: Pentru acest proiect, veți avea nevoie de: un Raspberry Pi capabil să se conecteze la internet O cartelă Micro SD care rulează Raspbian Lite O tastatură (Pentru a configura SSH) O secundă Dispozitiv (Pentru a accesa portalul web) Cunoștințe de bază despre UNIX, precum și navigarea interfeței pe
Adăugați un port USB la o lampă: 5 pași (cu imagini)
Adăugați un port USB la o lampă: când am întâlnit această lampă de birou Electrix de epocă, cu gât de gâscă, mi-am dat seama că era o lampă de birou cu gât de gâscă, fără de care nu puteam trăi, așa că am cumpărat-o. Apoi m-am gândit că ar fi mult mai cool dacă ar avea un port USB în baza acestuia. Se pare că este destul de