Innehållsförteckning:

Lägg till en WIZ820io / USR -ES1 - Wiznet W5500 nätverksport till din Raspberry Pi: 10 steg
Lägg till en WIZ820io / USR -ES1 - Wiznet W5500 nätverksport till din Raspberry Pi: 10 steg

Video: Lägg till en WIZ820io / USR -ES1 - Wiznet W5500 nätverksport till din Raspberry Pi: 10 steg

Video: Lägg till en WIZ820io / USR -ES1 - Wiznet W5500 nätverksport till din Raspberry Pi: 10 steg
Video: Lägg till en ljudfil i itslearning 2024, November
Anonim
Lägg till en WIZ820io / USR -ES1 - Wiznet W5500 nätverksport till din Raspberry Pi
Lägg till en WIZ820io / USR -ES1 - Wiznet W5500 nätverksport till din Raspberry Pi

Dels på grund av mitt intresse för att göra något sådant, och delvis på grund av mitt intresse för Codesys har jag haft det i tankarna ett tag nu att försöka ansluta en andra nätverksgränssnittsport till en Raspberry Pi. Så medan jag gjorde andra projekt har jag tänkt, läst, jämfört, planerat och handlat så att jag äntligen kunde fortsätta och bygga upp något.

Ja - jag vet.. det finns några "nyckelfärdiga" redo att gå -system tillgängliga där ute som skulle göra något liknande, men egentligen var ingen av dem lockande nog att skilja mig från mina pengar.

I verkligheten har jag en låg kunskapsnivå och erfarenhet av Raspberry Pi och Linux / Raspberry Pi IOS (Raspian) (jag gör det bättre i Windows- och Android-världarna), ingen fördjupad kunskap om nätverk (jag kan få saker att fungera och bygga nätverk, men utöver det är jag lite över huvudet), och jag har precis börjat göra kretskort. Visst, jag är ingen programmerare.

När jag äntligen bestämde mig för att gå vidare med denna idé om att bygga upp något, och valde att använda WIZ820io / USR -ES1 -modulen, som är baserad på Wiznet - W5500 integrerad krets. Denna modul kan kommunicera med Raspberry Pi (och andra MCU: er) med standard SPI -bussen. Dessutom går den på 3,3 VDC, så det utgör NOLL skada för min Raspberry Pi.

Vid utformningen av kretskortet valde jag att bygga det i en riktig "HAT" -konfiguration (form och kapacitet), och förutom att lägga till kretsarna för "WIZ820io -modulen lade jag också till ett antal andra objekt som INTE används i denna nätverksprojekt, men som jag kan och kommer att användas för andra projekt i framtiden.

Brädet jag designade / byggde har följande föremål på sig.

1 - Ett uttag för att hålla Wiznet - WIZ820io - Ethernet -portmodulen (jag gjorde ett anpassat Eagle Footprint för detta).

2 - En 30 mm - 5 VDC kylfläkt för Raspberry Pi CPU (jag gjorde ett anpassat Eagle Footprint för detta).

3 - Ett "CAT24C32" -minnechip för att upprätthålla HAT -kompatibilitetskraven (detta är ännu inte programmerat av mig) (jag har gjort ett anpassat Eagle Design Block för detta).

4 - En mini MAX3232 - UART - TTL till RS -232 nivåomvandlare ansluten till UART0 (jag gjorde ett anpassat Eagle Footprint för detta).

5 - En röd lysdiod (GPIO24), en gul lysdiod (GPIO23) och en grön lysdiod (GPIO22) som ska användas för trafikljus - Python -programmeringsövningar.

6 - En grön lysdiod (GPIO18) och en grön lysdiod (GPIO27) - för programmeringsövningar och felsökning.

7 - En taktil switch ansluten till GPIO25 - för programmeringsövningar och felsökning (jag gjorde ett anpassat Eagle Footprint för detta). OBS att denna GPIO också kommer att användas med WIZ820io.

Så som jag tidigare noterat kommer denna instruktionsbok endast att behandla artikel nr 1 på den här listan. Alla andra objekt som jag lade till på tavlan finns där av andra skäl som inte är relaterade till detta Network Interface -projekt.

Tillbehör

Raspberry Pi - Jag använde en äldre Raspberry Pi 3B. Inget fel med det.. Min har en död HDMI -port, så jag kör den "utan huvud" med TeamViewer för att komma åt den. Det fungerar. Jag misstänker starkt att de flesta versioner av Raspberry Pi kommer att fungera med denna instruerbara GIVANDE att de kan köra nyare versioner av Raspberry Pi IOS (Raspian).

Innan jag började allt detta uppdaterade jag naturligtvis operativsystemet:

sudo apt-get uppdatering

sudo apt-get uppgradering

WIZ820io / USR -ES1 - Dokumentationen för detta är tillgänglig online från OEM

PC -kort - Jag använde Autodesk Eagle för att designa kretskortet med och generera de Gerber -filer som behövs för JLCPCB att bygga kretskortet med. Som tidigare noterats har jag också lagt till "CAT24C32" Memory Chip för att upprätthålla kraven på HAT -kompatibilitet.

Steg 1: Raspberry Pi 3b

Raspberry Pi 3b
Raspberry Pi 3b

När det gäller Raspberry Pi gjorde jag det här projektet med en standard Raspberry Pi 3b, tillsammans med den senaste versionen av Raspberry Pi IOS (Raspian) som jag kunde ladda ner och installera.

Inget speciellt där. Jag har ägt den enheten i några år, och det har fungerat mest bra för mig (väl - HDMI -videoutgången är död så jag tvingas springa utan huvud med TeamViewer). Du borde inte behöva göra detta.

Jag misstänker att alla RPi borde kunna ansluta till en WIZ820io / USR -ES1 - Wiznet W5500 och få det att fungera, liksom många andra märken tävlar på samma marknad (Beagle Bone, Orange, Tinker, etc) och använda en liknande modell Linux -baserat operativsystem.

Jag har NOLL erfarenhet av någon av dem. Jag har liten erfarenhet av hallon - se vart det tog mig:)

Steg 2: Gränssnitt mellan Wiznet WIZ820io -modulen och Raspberry Pi GPIO -bussen

Gränssnitt mellan Wiznet WIZ820io -modulen och Raspberry Pi GPIO -bussen
Gränssnitt mellan Wiznet WIZ820io -modulen och Raspberry Pi GPIO -bussen
Gränssnitt mellan Wiznet WIZ820io -modulen och Raspberry Pi GPIO -bussen
Gränssnitt mellan Wiznet WIZ820io -modulen och Raspberry Pi GPIO -bussen
Gränssnitt mellan Wiznet WIZ820io -modulen och Raspberry Pi GPIO -bussen
Gränssnitt mellan Wiznet WIZ820io -modulen och Raspberry Pi GPIO -bussen

Granska bifogade bilder.

Wiznet WIZ820io -modulen har två rader med 6 stift vardera att ansluta till.

Raderna är märkta "J1 respektive" J2 ".

Databladet de tillhandahåller har ett mycket fint färgkodat diagram över varje stift. Detta diagram är avsett att hjälpa dig att ansluta dessa stift till dina Raspberry PI GPIO -stift. De är ganska bra NAME för NAME match.

Raspberry Pi pinout kan han hitta här: pinout.xyz

Jag kopplade dessa stift enligt följande (se bifogad bild):

Naturligtvis, eftersom jag gjorde ett verkligt kretskort, var alla Grounds (GND) anslutna ihop. Detsamma gäller stiften till 3.3V - mitt kretskort kopplade ihop dem.

Några saker att notera..

1: a - J2 Pin #5 - RSTn - Jag kopplade det till RPi GPIO #17 (Pin #11) - Det var försiktigt. Jag tror inte att det används.

2: a - J1 Pin # 6 - INTn - Det är anslutet till GPIO25 (Pin # 22). Detta krävs, eftersom vi i Raspberry Pi IOS -konfigurationssteget kommer att hänvisa till detta.

Tredje - J1- Pin # 5 - SCNn - Det är anslutet till Raspberry Pi "CS0" (Pin # 24). Det ger den här modulen effektivt adressen "Modul 0" på RPi SPI -bussen. Återigen, i Raspberry Pi IOS -konfigurationssteget, kommer vi att hänvisa till detta.

Steg 3: Mitt kretskort

Mitt kretskort
Mitt kretskort
Mitt kretskort
Mitt kretskort
Mitt kretskort
Mitt kretskort

Bifogad är Eagle "Point to Point" -schemat som jag gjorde och som jag skapade Gerber Files med.

Bifogade bilder är av "kretskortet" som jag hade gjort för detta projekt.

Denna tavla accepterar ett antal olika Wiznet -produkter av WIZ820io -stil.

Steg 4: Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i "start" -mappen

Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i
Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i

För att Raspberry Pi ska "se" den nyinstallerade WIZ820io -modulen på sin SPI -buss måste IOS göras medveten så att den kan hantera det under "BOOT Up".

För att göra detta lägger vi helt enkelt till två rader till:../../boot/config.txt

Först.. Använda en terminalruta / fönster ==> ls

cd../boot, navigera dig till../boot och lista (ls) katalogen

Hänvisa till den bifogade bilden.. Där måste du leta efter och bekräfta förekomsten av två poster - jag har ringat in dem i rött.

Den ena är en fil som heter: "config.txt"

Den andra är en mapp som heter: "överlägg"

== == == ==

När du har bekräftat förekomsten av båda dessa poster kan du fortsätta till nästa steg

Steg 5: Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i katalogen "överlägg"

Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i
Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i
Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i
Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i
Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i
Raspberry Pi IOS (tidigare Raspian) -konfiguration - poster i

Ändra katalog till katalogen "överlägg"

Typ: cd -överlägg

Efter att ha tryckt på "enter" -tangenten tar det dig till mappen "överlägg" (se bifogad bild).

Lista innehållet i katalogen.

Typ: ls

Efter att ha tryckt på "enter" -knappen bör du se en lång lista över innehållet i den katalogen. Listan kanske är alfabetisk.

(se bifogade bilder (2 av)). Lägg märke till att nästan ALLA filer är namngivna med en förlängning av: *.dtbo du kan också märka några som heter med en förlängning av: *.dtb

Det här är ALLA "Device Tree" -överlagringsfiler

Du måste bekräfta förekomsten av två "överlagringsfiler" (se bifogade bildfiler).

Första - en fil med namnet: anyspi.dtbo (för den här kan du behöva använda rullningslisten i fönstrets högra marginal för att rulla tillbaka till toppen och hitta den alfabetiskt ordnade anyspi.dtbo).

2: a - en fil som heter w5500.dtbo

== == ==

Om du kan bekräfta att båda dessa filer finns är du i gott skick och kan återgå till katalogen../boot.

Skriv: cd../ efter att ha slagit ENTER -tangenten, bör du föras tillbaka till / boot -katalogen.

Lista katalogen för att bekräfta: typ: ls och tryck på ENTER

Steg 6: Raspberry Pi IOS (tidigare Raspian) -konfiguration - Redigera fil med namnet: Config.txt

Raspberry Pi IOS (tidigare Raspian) -konfiguration - Redigera fil med namnet: Config.txt
Raspberry Pi IOS (tidigare Raspian) -konfiguration - Redigera fil med namnet: Config.txt
Raspberry Pi IOS (tidigare Raspian) -konfiguration - Redigera fil med namnet: Config.txt
Raspberry Pi IOS (tidigare Raspian) -konfiguration - Redigera fil med namnet: Config.txt
Raspberry Pi IOS (tidigare Raspian) -konfiguration - Redigera fil med namnet: Config.txt
Raspberry Pi IOS (tidigare Raspian) -konfiguration - Redigera fil med namnet: Config.txt

I katalogen../boot kan vi nu arbeta med att göra ett par små redigeringar av filen som heter: config.txt

Vi anropar först "nano" -redigeraren som en "superanvändare" (sudo)

sudo = 'superanvändare'

nano är den textredigerare som vi kommer att använda

och som nämnts är config.txt filen vi vill redigera.

Skriv: sudo nano config.txt och tryck ENTER.

Detta öppnar redigeraren och visar innehållet i filen config.txt. Om redigeraren inte öppnar, eller öppnas tom, avsluta (om i nano) och dubbelkontrollera din stavning.

Om allt gick bra borde du se något som i den andra bifogade bilden. "nano" kommer att visa "toppen" av filen. du måste rulla ner till botten.

Längst ner i filen lägger du till de två "dtoverlay -satserna" nedan:

dtoverlay = anyspi, spi0-0, dev = "w5500", speed = 30000000dtoverlay = w5500

Dubbelkolla all stavning, och om det stämmer, tryck på de två tangenterna "Ctrl-x" för att avsluta.. och svara på rätt sätt för att spara och avsluta.

== == == ==

Vid nästa uppstart (och för alla uppstarter efteråt om de två påståendena finns kvar) kommer operativsystemet nu också att anropa överlägget med namnet "anyspi" och överlägget med namnet "w5500".

Överlägget "anyspy" förbereder operativsystemet för att använda SPI0-0-bussen (det var där vi tidigare fysiskt kopplade WIZ820io till. "-0" anger att den ska använda adressen "0"-kom ihåg att vi tidigare anslutit WIZ820io-stiftet #J1-6 till RPi GIPO "VD" (Pin #24).

Överlägget "w5500" berättar för operativsystemet hur man hanterar den integrerade kretsen W5500 i WIZ820io -modulen. Det definierar också att använda RPi GPIO25 (Pin #22) som INTn -signalen. Minns än en gång att vi tidigare har gjort denna anslutning.

Denna typ av information kan hittas i olika filer, som det här exemplet som finns på GITHub.

== == ==

Dags att starta om RPI: n och få allt detta att träda i kraft.

Steg 7: Vi har startat om. Jag hoppas att du ler

Vi har startat om. Jag hoppas att du ler
Vi har startat om. Jag hoppas att du ler
Vi har startat om. Jag hoppas att du ler
Vi har startat om. Jag hoppas att du ler

Om allt gick bra borde din RPi ha startat om normalt. Leende.

Dags att kontrollera om IOS laddade de två nya överlagringsfilerna och om den känner igen den bifogade WIZ820io -modulen.

Återigen öppnar du ett "Kommando" -fönster.

Den här gången vid prompten skriver du ifconfig (eller använd kommandot nyare "ip") och trycker på Enter -tangenten.

Du får förmodligen ett långt svar, så du måste rulla tillbaka till toppen.

Tillbaka överst, leta efter de två sektionerna:

En som heter eth0, och en som heter: eth1 - se bifogad bild.

I mitt system är eth0 Ethernet -porten på RPI: n. eth1 är den nya WIZ820io Ethernet -porten.

== == ==

Om du ser de två portarna är RPI det också. Meddelande i den bifogade bilden, eth1 har skickat paket, och utan fel.

Jag har testat detta genom att koppla bort den ursprungliga portkabeln och använda webbläsaren för att gå till YouTube och andra webbplatser.. Det fungerar. Jag har också "pingat" det från några olika enheter och det fungerar.

== == ==

Om du inte ser eth1 (eller något liknande) - annat än eth0 på en RPI3 eller RPi4, försök sedan gå tillbaka och dubbelkolla att config.txt var korrekt redigerad och sparad. Se till att de två överläggen är på plats, och stavningen är korrekt (inga stora bokstäver där jag inte har dem - versaler spelar roll i detta system).

== == ==

Om de två portarna finns finns det kanske lite mer konfigurationsarbete att göra … till nästa steg….

Steg 8: Raspberry Pi IOS (tidigare Raspian) -konfiguration - Ställa in IP -adress

Det här är lite ur mitt hjulhus, så just nu kan jag inte ge vägledning.

Vet bara att det finns otaliga webbplatser, YouTube -videor och anslagstavlor som ger den här typen av information.

men.. du kanske vill kolla in och göra några saker här.

1 - Dubbelkolla IP -adressen som din nya port har för närvarande. tilldelades den av din DHP -server, eller är det standard -IP - något i intervallet: 169.254.xxx.ååå? Är det något annat ??

2- Vill du ha en statisk (fast) IP-adress eller en dynamisk IP-adress (tilldelad av din DHCP-server).

Kontrollera switch / router som din RPI är ansluten till.. ser den din nya port? kan det "pinga" det? (var noga med att koppla bort den ursprungliga portkabeln om du gör detta - annars kan RPi lura dig).

Använd ifconfig (eller det nyare "ip" -kommandot) för att se att data som kommer och går ser "normala" ut (så att säga) och utan ett onödigt antal fel.

== == ==

Slutligen.. Jag tror att det är w5500.dtbo som tilldelar WIZ820io / W5500 -modulen en MAC -adress.. men jag kan inte säga säkert om det är där det händer. Jag kunde inte hitta detaljer om det direkt.

För mig verkar det som att en annan MAC -adress tilldelas varje gång den startar. Jag personligen gillar det inte, och följaktligen finns det saker som kan göras för att ställa in Mac -adressen (till exempel programmet "macchanger" eller ställa in det via kommandona ip / ifconfig). Om någon av er hittar en "boot-up" / "crontab" lösning på detta, skulle jag gärna höra om hur du gör det om du är öppen för att dela.

Du kan se min på bilden.. När jag letar upp Mac Address-leverantören för eth0 ==> b827eb, kommer den upp som Raspberry Pi Foundation. Leverantören för eth1 ==> fa9770 uppstår som okänd, så uppenbarligen genererades det på min Pi någon gång..

Steg 9: Slutsats

Tack för att du kollade in denna instruerbara.

Jag lärde mig ganska mycket att arbeta genom detta lilla projekt.

Om du har några frågor, eller kanske är intresserad av att köpa en av de brädor jag har gjort (fyllt eller inte), har jag några tillägg som är till salu och som vi kan diskutera.

Jag uppmanar dig i alla fall att lämna kommentarer, föreslå korrigeringar (stavfel eller metoder eller ??)

Säkert, om du gör det här själv, skulle jag bli mycket glad över att se bilder på hur du hanterade det och dina slutresultat / syfte.

Tack.

PS: Tack till den här killen för vägledning och idéer.

Steg 10: DTBO -filer

Två filer att lägga till i din överlagringsmapp - behövs för steg #4 och #5

Rekommenderad: