Inhoudsopgave:
- Benodigdheden
- Stap 1: Raspberry Pi 3b
- Stap 2: Koppel de Wiznet WIZ820io-module aan de Raspberry Pi GPIO-bus
- Stap 3: Mijn printplaat
- Stap 4: Raspberry Pi IOS (voorheen Raspian) Configuratie - Vermeldingen in de "boot"-map
- Stap 5: Raspberry Pi IOS (voorheen Raspian) Configuratie - Vermeldingen in de "overlays" Directory
- Stap 6: Raspberry Pi IOS (voorheen Raspian) Configuratie - Bestandsnaam bewerken: Config.txt
- Stap 7: We zijn opnieuw opgestart. Ik hoop dat je lacht
- Stap 8: Raspberry Pi IOS (voorheen Raspian) Configuratie - IP-adres instellen
- Stap 9: Conclusie
- Stap 10: DTBO-bestanden
Video: Voeg een WIZ820io / USR-ES1 - Wiznet W5500 netwerkpoort toe aan uw Raspberry Pi: 10 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Deels vanwege mijn interesse om zoiets te doen, en deels vanwege mijn interesse in Codesys heb ik al een tijdje in mijn hoofd om te proberen een tweede Network Interface-poort aan te sluiten op een Raspberry Pi. Dus terwijl ik andere projecten deed, heb ik nagedacht, gelezen, vergeleken, gepland en gewinkeld, zodat ik eindelijk iets kon opbouwen.
Ja - ik weet het.. er zijn een paar "turn-key" kant-en-klare systemen beschikbaar die iets soortgelijks zouden doen, maar echt geen van hen was verleidelijk genoeg om mij van mijn geld te scheiden.
In werkelijkheid heb ik een laag niveau van kennis en ervaring op de Raspberry Pi en Linux / Raspberry Pi IOS (Raspian) (ik doe het beter in de Windows- en Android-wereld), geen diepgaande kennis van netwerken (ik kan dingen laten werken en netwerken bouwen, maar verder ben ik een beetje over mijn hoofd), en ik ben nog maar net begonnen met het maken van printplaten. Ik ben zeker geen programmeur.
Toen ik eindelijk besloot om verder te gaan met dit idee om iets op te bouwen, koos ik ervoor om de WIZ820io / USR-ES1-module te gebruiken, die is gebaseerd op het Wiznet - W5500 geïntegreerde circuit. Deze module kan communiceren met de Raspberry Pi (en andere MCU's) via de standaard SPI-bus. Bovendien werkt het op 3,3 VDC, dus het vormt GEEN schaderisico voor mijn Raspberry Pi.
Bij het ontwerpen van de printplaat heb ik ervoor gekozen om deze in een goede "HAT" -configuratie (vorm en capaciteit) te bouwen, en naast het toevoegen van de circuits voor de "WIZ820io-module", heb ik ook een aantal andere items toegevoegd die hierin NIET worden gebruikt netwerkproject, maar die ik in de toekomst voor andere projecten kan en zal gebruiken.
Het bord dat ik heb ontworpen / gebouwd heeft de volgende items.
1 - Een socket voor de Wiznet - WIZ820io - Ethernet-poortmodule (ik heb hiervoor een aangepaste Eagle Footprint gemaakt).
2 - Een 30 mm - 5 VDC koelventilator voor de Raspberry Pi CPU (hiervoor heb ik een custom Eagle Footprint gemaakt).
3 - Een "CAT24C32" geheugenchip om aan de HAT-compatibiliteitseisen te voldoen (dit is nog niet door mij geprogrammeerd) (ik heb hiervoor een aangepast Eagle Design Block gemaakt).
4 - Een mini MAX3232 - UART - TTL naar RS-232 Level Converter aangesloten op UART0 (hiervoor heb ik een aangepaste Eagle Footprint gemaakt).
5 - Een rode led (GPIO24), een gele led (GPIO23) en een groene led (GPIO22) om te gebruiken voor verkeerslicht - Python programmeeroefeningen.
6 - Een groene led (GPIO18) en een groene led (GPIO27) - voor programmeeroefeningen en probleemoplossing.
7 - Een tactiele schakelaar aangesloten op GPIO25 - voor programmeeroefeningen en probleemoplossing (hiervoor heb ik een aangepaste Eagle Footprint gemaakt). LET OP dat deze GPIO ook zal worden gebruikt met de WIZ820io.
Dus zoals ik eerder opmerkte, zal deze Instructable alleen item #1 op deze lijst behandelen. Alle andere items die ik op het bord heb toegevoegd, zijn er om andere redenen die geen verband houden met dit netwerkinterface-project.
Benodigdheden
Raspberry Pi - Ik gebruikte een oudere Raspberry Pi 3B. Daar is niets mis mee. De mijne heeft een dode HDMI-poort, dus ik voer hem "headless" uit met TeamViewer om er toegang toe te krijgen. Het werkt. Ik vermoed sterk dat de meeste versies van Raspberry Pi's met deze Instructable zullen werken, OP voorwaarde dat ze recentere versies van Raspberry Pi IOS (Raspian) kunnen draaien.
Voordat ik hieraan begon, heb ik natuurlijk het besturingssysteem bijgewerkt:
sudo apt-get update
sudo apt-get upgrade
WIZ820io / USR-ES1 - De documentatie hiervoor is online beschikbaar bij de OEM
Printplaat - Ik heb Autodesk Eagle gebruikt om de printplaat mee te ontwerpen en de Gerber-bestanden te genereren die nodig zijn voor JLCPCB om de printplaat mee te bouwen. Zoals eerder opgemerkt, heb ik ook een "CAT24C32"-geheugenchip toegevoegd om de HAT-compatibiliteitsvereisten te behouden.
Stap 1: Raspberry Pi 3b
Wat betreft de Raspberry Pi, ik heb dit project gemaakt met een standaard Raspberry Pi 3b, samen met de nieuwste versie van Raspberry Pi IOS (Raspian) die ik kon downloaden en installeren.
Niets bijzonders daar. Ik heb dat apparaat al een paar jaar in mijn bezit, en het werkte meestal goed voor mij (nou ja - de HDMI-video-uitgang is dood, dus ik ben gedwongen om zonder hoofd te werken met TeamViewer). U zou dit niet moeten hoeven doen.
Ik vermoed dat elke RPi verbinding moet kunnen maken met een WIZ820io / USR-ES1 - Wiznet W5500 en dit moet laten werken, evenals vele andere merken die op dezelfde markt concurreren (Beagle Bone, Orange, Tinker, enz.) model op Linux gebaseerd besturingssysteem.
Ik heb GEEN ervaring met een van deze. Ik heb weinig ervaring met de Raspberry - kijk waar dat me bracht:)
Stap 2: Koppel de Wiznet WIZ820io-module aan de Raspberry Pi GPIO-bus
Bekijk de bijgevoegde afbeeldingen.
De Wiznet WIZ820io-module biedt twee rijen van elk 6 pinnen om mee te communiceren.
De rijen zijn respectievelijk gelabeld met "J1 en "J2".
Het gegevensblad dat ze verstrekken heeft een zeer mooi kleurgecodeerd diagram van elke pin. Dit diagram is bedoeld om u te helpen bij het aansluiten van die pinnen op uw Raspberry PI GPIO-pinnen. Ze zijn vrij goed een NAAM voor NAAM-overeenkomst.
De Raspberry Pi pinout kan hij hier vinden: pinout.xyz
Ik heb die pinnen als volgt aangesloten (zie bijgevoegde afbeelding):
Omdat ik een echte printplaat heb gemaakt, waren natuurlijk alle Grounds (GND) met elkaar verbonden. Hetzelfde geldt voor de naar 3.3V pinnen - mijn printplaat verbond die met elkaar.
Een paar dingen van belang..
1e - J2 Pin #5 - RSTn - Ik heb dat aangesloten op RPi GPIO #17 (Pin #11) - Dat was een waarschuwing. Ik geloof niet dat het wordt gebruikt.
2e - J1 Pin #6 - INTn - Die is aangesloten op GPIO25 (Pin #22). Dit is vereist, omdat we hier in de Raspberry Pi IOS-configuratiestap naar verwijzen.
3e - J1- Pin #5 - SCnn - Die is verbonden met de Raspberry Pi "CS0" (Pin # 24). In feite geeft dat deze module het adres van "Module 0" op de RPi SPI-bus. Nogmaals, in de Raspberry Pi IOS-configuratiestap zullen we hiernaar verwijzen.
Stap 3: Mijn printplaat
Bijgevoegd is het Eagle "Point to Point" schema dat ik heb verzonnen en waarmee ik de Gerber Files heb gegenereerd.
Ook bijgevoegd zijn afbeeldingen van de "printplaat" die ik voor dit project had gemaakt.
Dit bord accepteert een aantal verschillende Wiznet-producten van de WIZ820io-stijl.
Stap 4: Raspberry Pi IOS (voorheen Raspian) Configuratie - Vermeldingen in de "boot"-map
Om ervoor te zorgen dat de Raspberry Pi de nieuw geïnstalleerde WIZ820io-module op zijn SPI-bus "ziet", moet de IOS op de hoogte worden gebracht, zodat deze ermee kan omgaan tijdens "BOOT Up".
Om dit te doen, voegen we eenvoudig twee regels toe aan:../../boot/config.txt
Ten eerste.. Een terminalvenster / venster gebruiken ==> ls
cd../boot, navigeer je een weg naar../boot en lijst (ls) de map op
Verwijs naar de bijgevoegde afbeelding. Daar moet je de aanwezigheid van twee vermeldingen zoeken en bevestigen - ik heb ze rood omcirkeld.
Een daarvan is een bestand met de naam: "config.txt"
De tweede is een map met de naam: "overlays"
== == == ==
Nadat u de aanwezigheid van beide vermeldingen hebt bevestigd, kunt u doorgaan naar de volgende stap
Stap 5: Raspberry Pi IOS (voorheen Raspian) Configuratie - Vermeldingen in de "overlays" Directory
Wijzig de map in de map "overlays""
Type: cd-overlays
Nadat u op de "enter"-toets hebt gedrukt, gaat u naar de map "overlays" (zie bijgevoegde afbeelding).
Maak een lijst van de inhoud van de directory.
Type: ls
Nadat je op de "enter"-toets hebt gedrukt, zou je een lange lijst met de inhoud van die map moeten zien. De lijst misschien alfabetisch.
(zie bijgevoegde afbeeldingen (2 van)). Merk op dat bijna ALLE bestanden een naam hebben met de extensie: *.dtbo. Mogelijk ziet u er ook enkele met de extensie: *.dtb
Dit zijn ALLE "Apparaatstructuur"-overlaybestanden
U moet de aanwezigheid van twee "overlay"-bestanden bevestigen (zie bijgevoegde afbeeldingsbestanden).
1e - een bestand met de naam: anyspi.dtbo (hiervoor moet u mogelijk de schuifbalk in de rechtermarge van het venster gebruiken om terug naar boven te bladeren en de alfabetisch geordende anyspi.dtbo te vinden).
2e - een bestand met de naam w5500.dtbo
== == ==
Als u kunt bevestigen dat beide bestanden aanwezig zijn, bent u in goede vorm en kunt u terugkeren naar de../boot-directory.
Typ: cd../ nadat u op de ENTER-toets hebt gedrukt, zou u terug moeten gaan naar de /boot-directory.
Maak een lijst van de directory om te bevestigen: typ: ls en druk op de ENTER-toets
Stap 6: Raspberry Pi IOS (voorheen Raspian) Configuratie - Bestandsnaam bewerken: Config.txt
In de../boot-directory kunnen we nu een paar kleine wijzigingen aanbrengen in het bestand met de naam: config.txt
We zullen eerst de "nano" -editor aanroepen als een "supergebruiker" (sudo)
sudo = 'supergebruiker'
nano is de teksteditor die we gaan gebruiken
en zoals opgemerkt, is config.txt het bestand dat we willen bewerken.
Typ: sudo nano config.txt en druk op ENTER.
Hierdoor wordt de editor geopend en wordt de inhoud van het config.txt-bestand weergegeven. Als de editor niet opent, of leeg opent, sluit dan af (indien in nano) en controleer nogmaals je spelling.
Als alles goed is gegaan, zou je iets moeten zien als in de tweede bijgevoegde afbeelding. "nano" zal de "top" van het bestand weergeven. je moet helemaal naar beneden scrollen.
Voeg helemaal onderaan het bestand de twee "dtoverlay-instructies" hieronder toe:
dtoverlay=anyspi, spi0-0, dev="w5500", snelheid=30000000dtoverlay=w5500
Controleer alle spelling nogmaals, en als het overeenkomt, drukt u op de twee toetsen "Ctrl-x" om af te sluiten.. en correct te antwoorden om op te slaan en af te sluiten.
== == == ==
Bij de volgende keer opstarten (en voor alle volgende keer opstarten als die twee statements daar blijven staan) zal het besturingssysteem nu ook de overlay genaamd "anyspi" en de overlay genaamd "w5500" aanroepen.
De overlay "anyspy" bereidt het besturingssysteem voor op het gebruik van de SPI0-0-bus (dat is waar we eerder de WIZ820io fysiek op hebben aangesloten. De "-0" geeft aan dat het adres "0" moet gebruiken - onthoud dat we eerder de WIZ820io-pin hebben aangesloten #J1-6 aan de RPi GIPO "CEO" (pin #24).
De overlay "w5500" vertelt het besturingssysteem hoe om te gaan met de W5500 geïntegreerde schakeling in de WIZ820io-module. Het definieert ook het gebruik van RPi GPIO25 (Pin #22) als het INTn-signaal. Bedenk nogmaals dat we deze verbinding eerder hebben gemaakt.
Dit soort informatie is te vinden in verschillende bestanden, zoals dit ene voorbeeld op GIThub.
== == ==
Tijd om de RPI opnieuw op te starten en dit allemaal van kracht te laten worden.
Stap 7: We zijn opnieuw opgestart. Ik hoop dat je lacht
Als alles goed is gegaan, zou je RPi normaal opnieuw moeten zijn opgestart. Glimlach.
Tijd om te controleren of de IOS de twee nieuwe overlay-bestanden heeft geladen en of de bijgevoegde WIZ820io-module wordt herkend.
Open opnieuw een "Opdracht"-venster.
Typ deze keer bij de prompt ifconfig (of gebruik de nieuwere "ip"-opdracht) en druk op Enter.
Je krijgt waarschijnlijk een lang antwoord, dus je moet terug naar boven scrollen.
Zoek bovenaan naar de twee secties:
Een met de naam eth0 en een tweede met de naam: eth1 - zie bijgevoegde afbeelding.
In mijn systeem is eth0 de Ethernet-poort op de RPI. eth1 is de nieuwe WIZ820io Ethernet-poort.
== == ==
Als u de twee poorten ziet, is de RPI dat ook. Merk op in de bijgevoegde afbeelding dat eth1 pakketten heeft verzonden, en zonder fouten.
Ik heb dit getest door de originele poortkabel los te koppelen en de browser te gebruiken om naar YouTube en andere websites te gaan. Het werkt. Ik heb het ook "gepingd" vanaf een paar verschillende apparaten en het werkt.
== == ==
Als je eth1 (of iets dergelijks) niet ziet - anders dan eth0 op een RPI3 of RPi4, probeer dan terug te gaan en dubbel te controleren of config.txt correct is bewerkt en opgeslagen. Zorg ervoor dat de twee overlays op hun plaats zitten en dat de spelling correct is (geen hoofdletters waar ik ze niet heb - hoofdletters zijn belangrijk in dit systeem).
== == ==
Als de twee poorten aanwezig zijn, is er misschien wat meer configuratiewerk te doen … op naar de volgende stap ….
Stap 8: Raspberry Pi IOS (voorheen Raspian) Configuratie - IP-adres instellen
Dit is een beetje buiten mijn stuurhuis, dus op dit moment kan ik geen begeleiding geven.
Weet gewoon dat er talloze websites, YouTube-video's en prikborden zijn die dit soort informatie bieden.
maar… misschien wil je hier eens kijken en een paar dingen doen.
1 - Controleer nogmaals het IP-adres dat uw nieuwe poort momenteel heeft. is het toegewezen door uw DHP-server, of is het de standaard IP - iets in het bereik van: 169.254.xxx.yyy ? Is het iets anders??
2- Wilt u een statisch (vast) IP-adres of een dynamisch IP-adres (toegewezen door uw DHCP-server).
Controleer de switch/router waarop je RPI is aangesloten.. ziet hij je nieuwe poort? kan het het "pingen"? (zorg ervoor dat u de originele poortkabel loskoppelt als u dit doet - anders kan de RPi u voor de gek houden).
Gebruik ifconfig (of het nieuwere "ip"-commando) om te zien dat de gegevens die komen en gaan er "normaal" uitzien (om zo te zeggen) en zonder een onnodig aantal fouten.
== == ==
Ten slotte.. Ik geloof dat het de w5500.dtbo is die een MAC-adres toewijst aan de WIZ820io / W5500-module.. maar ik kan niet met zekerheid zeggen of het daar gebeurt. Ik kon daar niet meteen details over vinden.
Voor mij lijkt het erop dat elke keer dat het opstart een ander MAC-adres wordt toegewezen. Persoonlijk hou ik daar niet van, en daarom zijn er dingen die gedaan kunnen worden om het Mac-adres in te stellen (het programma "macchanger" bijvoorbeeld of het instellen via de ip / ifconfig-commando's). Als iemand van jullie hier een "boot-up" / "crontab"-oplossing voor vindt, hoor ik graag hoe je dit doet als je openstaat om te delen.
Je kunt de mijne in de afbeelding zien.. Als ik de Mac-adresverkoper voor eth0 ==> b827eb opzoek, komt het naar voren als de Raspberry Pi Foundation. De leverancier voor eth1 ==> fa9770 komt naar voren als onbekend, dus het is duidelijk dat het op een gegeven moment op mijn Pi is gegenereerd..
Stap 9: Conclusie
Bedankt voor het bekijken van deze Instructable.
Ik heb heel wat geleerd door dit kleine project te werken.
Mocht je vragen hebben, of geïnteresseerd zijn in het kopen van een van de boards die ik heb verzonnen (al dan niet bevolkt), heb ik een aantal extra's die te koop zijn en die we kunnen bespreken.
Ik dring er in ieder geval op aan om opmerkingen achter te laten, correcties voor te stellen (typefouten of methoden of??)
Zeker, als je dit voor jezelf maakt, zou ik heel blij zijn om foto's te zien van hoe je het hebt aangepakt, en je eindresultaten / doel.
Bedankt.
P. S.: Dank aan deze kerel voor de begeleiding en ideeën.
Stap 10: DTBO-bestanden
Twee bestanden om toe te voegen aan uw "overlays-map - nodig voor stap #4 en #5"
Aanbevolen:
Voeg een ventilator toe aan een koellichaam van een computer - geen schroeven nodig - Ajarnpa
Voeg een ventilator toe aan een koellichaam van een computer - Geen schroeven nodig: Het probleem: ik heb (had) een moederbord op mijn bestandsserver met een koellichaam zonder ventilator over wat volgens mij de northbridge is. Volgens het sensorprogramma (ksensors) dat ik in Fedora had draaien, bleef de temperatuur van het moederbord rond de 190F. Mijn schoot
Voeg een aan / uit-knop toe aan uw LibreELEC-installatie op een Raspberry Pi - Ajarnpa
Voeg een aan / uit-knop toe aan uw LibreELEC-installatie op een Raspberry Pi: In het volgende zullen we leren hoe u een aan / uit-knop kunt toevoegen aan LibreELEC die op een Raspberry Pi draait. We zullen een PowerBlock gebruiken om niet alleen een aan / uit-knop toe te voegen, maar ook een status-LED die de stroomstatus van uw LibreELEC-installatie aangeeft. Voor deze i
Voeg een op Arduino gebaseerde optische toerenteller toe aan een CNC-router - Ajarnpa
Voeg een op Arduino gebaseerde optische toerenteller toe aan een CNC-router: bouw een optische RPM-indicator voor uw CNC-router met een Arduino Nano, een IR LED/IR-fotodiodesensor en een OLED-scherm voor minder dan $ 30. Ik werd geïnspireerd door de Measure RPM - Optical Tachometer Instructable van eletro18 en wilde een toerenteller toevoegen
Voeg een snelvuurknop toe aan uw muis met behulp van een 555 Timer - Ajarnpa
Voeg een snelvuurknop toe aan uw muis met een 555-timer: wordt uw vinger snel moe tijdens het spelen van videogames? Ooit gewenst dat je n00bs sneller dan de lichtsnelheid kon pwn zonder ooit te zweten? Dit Instructable zal je laten zien hoe:
Voeg een pc-synchronisatie-aansluiting toe aan een Nikon Sc-28 Ttl-kabel (gebruik de automatische instellingen voor een aan-cameraflits en trigger-uit-cameraflitsen!!): 4 stappen
Voeg een Pc Sync-aansluiting toe aan een Nikon Sc-28 TTL-kabel (gebruik Auto-instellingen voor een on Camera Flash en Trigger Off Camera Flashes !!): in deze instructable laat ik je zien hoe je een van die vervelende gepatenteerde 3-pins TTL-connectoren op de zijkant van een Nikon SC-28 off-camera TTL-kabel en vervang deze door een standaard pc-synchronisatieconnector. hierdoor kunt u een speciale flitser gebruiken, s