Innholdsfortegnelse:

Legg til en WIZ820io / USR -ES1 - Wiznet W5500 nettverksport til din Raspberry Pi: 10 trinn
Legg til en WIZ820io / USR -ES1 - Wiznet W5500 nettverksport til din Raspberry Pi: 10 trinn

Video: Legg til en WIZ820io / USR -ES1 - Wiznet W5500 nettverksport til din Raspberry Pi: 10 trinn

Video: Legg til en WIZ820io / USR -ES1 - Wiznet W5500 nettverksport til din Raspberry Pi: 10 trinn
Video: Ethernet для МК. W5500 и ENC28J60. MQTT 2024, November
Anonim
Legg til en WIZ820io / USR -ES1 - Wiznet W5500 nettverksport til din Raspberry Pi
Legg til en WIZ820io / USR -ES1 - Wiznet W5500 nettverksport til din Raspberry Pi

Dels på grunn av min interesse for å gjøre noe slikt, og delvis på grunn av min interesse for Codesys, har jeg hatt det på hjertet en stund nå å prøve å koble en andre nettverksgrensesnittport til en Raspberry Pi. Så mens jeg gjorde andre prosjekter har jeg tenkt, lest, sammenlignet, planlagt og handlet slik at jeg endelig kunne gå videre og bygge opp noe.

Ja - jeg vet.. det er noen få "nøkkelferdige" klare systemer som kan gjøre noe lignende, men egentlig var ingen av dem fristende nok til å skille meg fra pengene mine.

I virkeligheten har jeg et lavt kunnskapsnivå og erfaring om Raspberry Pi og Linux / Raspberry Pi IOS (Raspian) (jeg gjør det bedre i Windows- og Android-verdener), ingen inngående kunnskap om nettverk (jeg kan få ting til å fungere og bygge nettverk, men utover det er jeg litt over hodet), og jeg har så vidt begynt å lage kretskort. Sikkert, jeg er ikke en programmerer.

Når jeg endelig bestemte meg for å gå videre med denne ideen om å bygge noe opp, og valgte å bruke WIZ820io / USR -ES1 -modulen, som er basert på Wiznet - W5500 integrert krets. Denne modulen kan kommunisere med Raspberry Pi (og andre MCUer) ved hjelp av standard SPI -bussen. I tillegg går den på 3,3 VDC, så den utgjør NULL skaderisiko for min Raspberry Pi.

Ved utformingen av kretskortet valgte jeg å bygge det i en riktig "HAT" -konfigurasjon (form og evne), og i tillegg til å legge til kretsene for "WIZ820io -modulen, la jeg også til en rekke andre elementer som IKKE brukes i denne nettverksprosjekt, men som jeg kan og vil bli brukt til andre prosjekter i fremtiden.

Brettet jeg designet / bygde har følgende elementer på seg.

1 - En stikkontakt for å holde Wiznet - WIZ820io - Ethernet -portmodulen (jeg laget et tilpasset Eagle Footprint for dette).

2 - En 30 mm - 5 VDC kjølevifte for Raspberry Pi CPU (jeg laget et tilpasset Eagle Footprint for dette).

3 - En "CAT24C32" minnebrikke for å opprettholde HAT -kompatibilitetskrav (dette er ikke programmert av meg ennå) (jeg har laget en tilpasset Eagle Design Block for dette).

4 - En mini MAX3232 - UART - TTL til RS -232 nivåomformer koblet til UART0 (jeg laget et tilpasset Eagle Footprint for dette).

5 - En rød LED (GPIO24), en gul LED (GPIO23) og en grønn LED (GPIO22) som skal brukes til trafikklys - Python -programmeringsøvelser.

6 - En grønn LED (GPIO18) og en grønn LED (GPIO27) - for programmeringsøvelser og feilsøking.

7 - En taktil bryter koblet til GPIO25 - for programmeringsøvelser og feilsøking (jeg laget et tilpasset Eagle Footprint for dette). MERK at denne GPIO også vil bli brukt med WIZ820io.

Så som jeg tidligere nevnte, vil denne instruksjonsboken bare omhandle artikkel #1 på denne listen. Alle andre elementer som jeg la til på tavlen er der av andre årsaker som ikke er relatert til dette Network Interface -prosjektet.

Rekvisita

Raspberry Pi - Jeg brukte en eldre Raspberry Pi 3B. Ingenting galt med det.. Min har en død HDMI -port, så jeg kjører den "hodeløs" ved å bruke TeamViewer for å få tilgang til den. Det fungerer. Jeg mistenker sterkt at de fleste versjoner av Raspberry Pi vil fungere med denne Instructable GJØR at de kan kjøre nyere versjoner av Raspberry Pi IOS (Raspian).

Før jeg startet alt dette, oppdaterte jeg selvfølgelig operativsystemet:

sudo apt-get oppdatering

sudo apt-get oppgradering

WIZ820io / USR -ES1 - Dokumentasjonen for dette er tilgjengelig online fra OEM

PC -kort - Jeg brukte Autodesk Eagle til å designe PCB -en med og generere Gerber -filer som er nødvendige for JLCPCB å bygge kretskortet med. Som tidligere nevnt har jeg også lagt til "CAT24C32" Memory Chip for å opprettholde HAT -kompatibilitetskravet.

Trinn 1: Raspberry Pi 3b

Raspberry Pi 3b
Raspberry Pi 3b

Når det gjelder Raspberry Pi, laget jeg dette prosjektet ved hjelp av en standard Raspberry Pi 3b, sammen med den siste versjonen av Raspberry Pi IOS (Raspian) som jeg kunne laste ned og installere.

Ikke noe spesielt der. Jeg har eid denne enheten i noen år, og den har fungert stort sett bra for meg (vel - HDMI -videoutgangen er død, så jeg blir tvunget til å kjøre hodeløs ved hjelp av TeamViewer). Du trenger ikke å gjøre dette.

Jeg mistenker at enhver RPi skal kunne koble seg til en WIZ820io / USR -ES1 - Wiznet W5500 og få dette til å fungere, i tillegg til at mange andre merker konkurrerer i det samme markedet (Beagle Bone, Orange, Tinker, etc) og bruker en lignende modell Linux -basert operativsystem.

Jeg har NULL erfaring med noen av dem. Jeg har liten erfaring med bringebæret - se hvor det tok meg:)

Trinn 2: Grensesnitt mellom Wiznet WIZ820io -modulen og Raspberry Pi GPIO -bussen

Grensesnitt mellom Wiznet WIZ820io -modulen og Raspberry Pi GPIO -bussen
Grensesnitt mellom Wiznet WIZ820io -modulen og Raspberry Pi GPIO -bussen
Grensesnitt mellom Wiznet WIZ820io -modulen og Raspberry Pi GPIO -bussen
Grensesnitt mellom Wiznet WIZ820io -modulen og Raspberry Pi GPIO -bussen
Grensesnitt mellom Wiznet WIZ820io -modulen og Raspberry Pi GPIO -bussen
Grensesnitt mellom Wiznet WIZ820io -modulen og Raspberry Pi GPIO -bussen

Gjennomgå vedlagte bilder.

Wiznet WIZ820io -modulen har to rader med 6 pinner hver å koble til.

Radene er merket med henholdsvis "J1 og" J2 ".

Dataarket de gir har et veldig fint fargekodet diagram over hver pinne. Dette diagrammet er ment å hjelpe deg med å koble disse pinnene til dine Raspberry PI GPIO -pinner. De er ganske godt et NAME for NAME -kamp.

Raspberry Pi pinout kan han finne her: pinout.xyz

Jeg koblet disse pinnene som følger (se vedlagte bilde):

Siden jeg laget et faktisk kretskort, var selvfølgelig alle Grounds (GND) koblet sammen. Det samme gjelder til 3.3V -pinnene - kretskortet mitt koblet dem sammen.

Noen få ting å merke seg..

Første - J2 Pin #5 - RSTn - Jeg koblet det til RPi GPIO #17 (Pin #11) - Det var forsiktig. Jeg tror ikke at den blir brukt.

Andre - J1 Pin # 6 - INTn - Det er koblet til GPIO25 (Pin # 22). Dette er nødvendig, siden vi i Raspberry Pi IOS -konfigurasjonstrinnet vil referere til dette.

3. - J1- Pin # 5 - SCNn - Det er koblet til Raspberry Pi "CS0" (Pin # 24). Det gir effektivt denne modulen adressen til "Modul 0" på RPi SPI -bussen. Igjen, i Raspberry Pi IOS -konfigurasjonstrinnet, vil vi referere til dette.

Trinn 3: Mitt kretskort

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

Vedlagt er Eagle "Point to Point" skjematisk jeg laget og som jeg genererte Gerber Files med.

Det er også vedlagt bilder av "kretskortet" jeg hadde gjort opp for dette prosjektet.

Dette brettet vil godta en rekke forskjellige Wiznet -produkter av WIZ820io -stil.

Trinn 4: Raspberry Pi IOS (tidligere Raspian) konfigurasjon - oppføringer i "oppstart" -mappen

Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - oppføringer i
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - oppføringer i

For at Raspberry Pi skal "se" den nylig installerte WIZ820io -modulen på SPI -bussen, må IOS gjøres oppmerksom på det, slik at det kan håndtere det under "BOOT Up".

For å gjøre dette, legger vi ganske enkelt til to linjer til:../../boot/config.txt

Først.. Bruke en terminalrute / vindu ==> ls

cd../boot, naviger deg til../boot og list (ls) katalogen

Referer til det vedlagte bildet.. Der må du se etter og bekrefte tilstedeværelsen av to oppføringer - jeg har sirklet dem med rødt.

Den ene er en fil som heter: "config.txt"

Den andre er en mappe som heter: "overlegg"

== == == ==

Når du har bekreftet tilstedeværelsen av begge disse oppføringene, kan du fortsette til neste trinn

Trinn 5: Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - oppføringer i katalogen "overlegg"

Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - oppføringer i
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - oppføringer i
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - oppføringer i
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - oppføringer i
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - oppføringer i
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - oppføringer i

Endre katalog til "overlegg" -katalogen"

Type: cd -overlegg

Etter at du har trykket på "enter" -tasten, tar det deg til "overlegg" -mappen (se vedlagte bilde).

Liste innholdet i katalogen.

Type: ls

Etter å ha slått på "enter" -tasten, bør du se en lang liste over innholdet i den katalogen. Oppføringen er kanskje alfabetisk.

(se vedlagte bilder (2 av)). Legg merke til at nesten ALLE filene er navngitt med en forlengelse av: *.dtbo.

Dette er ALLE "Device Tree" -overleggsfiler

Du må bekrefte tilstedeværelsen av to "overlegg" -filer (se vedlagte bildefiler).

Første - en fil som heter: anyspi.dtbo (for denne må du kanskje bruke rullefeltet i høyre marg i vinduet for å bla tilbake til toppen og finne den alfabetisk ordnede anyspi.dtbo).

Andre - en fil som heter w5500.dtbo

== == ==

Hvis du kan bekrefte at begge disse filene er til stede, er du i god form og kan gå tilbake til katalogen../boot.

Type: cd../ etter å ha slått på ENTER -tasten, bør du føres tilbake til / boot -katalogen.

List opp katalogen for å bekrefte: type: ls og trykk ENTER -tasten

Trinn 6: Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - Rediger fil med navn: Config.txt

Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - Rediger fil med navn: Config.txt
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - Rediger fil med navn: Config.txt
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - Rediger fil med navn: Config.txt
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - Rediger fil med navn: Config.txt
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - Rediger fil med navn: Config.txt
Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - Rediger fil med navn: Config.txt

I katalogen../boot kan vi nå arbeide med å gjøre et par små redigeringer av filen som heter: config.txt

Vi kaller først "nano" -redaktøren som en "superbruker" (sudo)

sudo = 'superbruker'

nano er tekstredigereren som vi skal bruke

og som nevnt er config.txt filen vi vil redigere.

Type: sudo nano config.txt og trykk ENTER.

Dette vil åpne redaktøren og vise innholdet i config.txt -filen. Hvis redaktøren ikke åpner, eller åpner tom, må du avslutte (hvis du er i nano) og dobbeltsjekke stavemåten din.

Hvis alt gikk bra, skulle du se noe som i det andre vedlagte bildet. "nano" vil vise selve "toppen" av filen. du må rulle ned til bunnen.

Helt nederst i filen legger du til de to "dtoverlay -setningene" nedenfor:

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

Dobbeltsjekk all stavemåte, og hvis den stemmer overens, trykker du på de to tastene "Ctrl-x" for å avslutte.. og svar riktig for å lagre og avslutte.

== == == ==

Ved neste oppstart (og for alle oppstart etterpå hvis de to utsagnene forblir der) vil operativsystemet nå også kalle på overlegget som heter "anyspi" og overlegget som heter "w5500".

Overlegget "anyspy" forbereder operativsystemet til å bruke SPI0-0-bussen (det var der vi tidligere fysisk koblet WIZ820io til. "-0" angir at den skal bruke adressen "0"-husk at vi tidligere har koblet WIZ820io-pinnen #J1-6 til RPi GIPO "CEO" (Pin #24).

Overlegget "w5500" forteller operativsystemet hvordan du skal håndtere den integrerte W5500 -kretsen som ligger i WIZ820io -modulen. Den definerer også å bruke RPi GPIO25 (Pin #22) som INTn -signalet. Husk igjen at vi tidligere har gjort denne forbindelsen.

Denne typen informasjon kan finnes i forskjellige filer, som dette eksemplet som finnes på GITHub.

== == ==

På tide å starte RPI på nytt, og få alt dette til å tre i kraft.

Trinn 7: Vi har startet på nytt. Jeg håper du smiler

Vi har startet på nytt. Jeg håper du smiler
Vi har startet på nytt. Jeg håper du smiler
Vi har startet på nytt. Jeg håper du smiler
Vi har startet på nytt. Jeg håper du smiler

Hvis alt gikk bra, burde RPi-en din ha startet opp igjen normalt. Smil.

På tide å sjekke om IOS lastet de to nye overleggsfilene, og om den gjenkjenner den vedlagte WIZ820io -modulen.

Åpne igjen et "Kommando" -vindu.

Denne gangen ved ledeteksten skriver du ifconfig (eller bruker den nyere "ip" -kommandoen) og strekker Enter -tasten.

Du vil sannsynligvis få et langt svar, så du må rulle tilbake til toppen.

Tilbake på toppen, se etter de to seksjonene:

Den ene heter eth0, og den andre heter: eth1 - se vedlagte bilde.

I mitt system er eth0 Ethernet -porten på RPI. eth1 er den nye WIZ820io Ethernet -porten.

== == ==

Hvis du ser de to portene, så er RPI det også. Merknad i vedlagte bilde, eth1 har sendt pakker, og uten feil.

Jeg har testet dette ved å koble fra den originale portkabelen, og bruke nettleseren til å gå til YouTube og andre nettsteder.. Det fungerer. Jeg har også "pingd" det fra noen få forskjellige enheter, og det fungerer.

== == ==

Hvis du ikke ser eth1 (eller noe lignende) - annet enn eth0 på en RPI3 eller RPi4, kan du prøve å gå tilbake og dobbeltsjekke at config.txt var riktig redigert og lagret. Sørg for at de to overleggene er på plass, og at stavemåten er riktig (ingen store bokstaver der jeg ikke har dem - store bokstaver betyr noe i dette systemet).

== == ==

Hvis de to portene er tilstede, kan det være litt mer konfigurasjonsarbeid å gjøre… videre til neste trinn….

Trinn 8: Raspberry Pi IOS (tidligere Raspian) -konfigurasjon - Innstilling av IP -adresse

Dette er litt ute av hjulhuset mitt, så nå kan jeg ikke gi veiledning.

Bare vet at det er utallige nettsteder, YouTube -videoer og meldingstavler som gir denne typen informasjon.

men.. det kan være lurt å sjekke inn og gjøre et par ting her.

1 - Dobbeltsjekk IP -adressen som den nye porten din har for øyeblikket. ble den tilordnet av DHP -serveren din, eller er det standard IP - noe i området: 169.254.xxx.yyy? Er det noe annet ??

2- Vil du ha en statisk (fast) IP-adresse eller en dynamisk IP-adresse (tilordnet av DHCP-serveren).

Sjekk bryteren / ruteren som RPI -en din er koblet til.. ser den din nye port? kan det "pinge" det? (sørg for å koble fra den originale portkabelen hvis du gjør dette - ellers kan RPi lure deg).

Bruk ifconfig (eller den nyere "ip" -kommandoen) for å se at dataene som kommer og går ser "normale" ut (så å si) og uten et unødig antall feil.

== == ==

Til slutt.. Jeg tror at det er w5500.dtbo som tildeler en MAC -adresse til WIZ820io / W5500 -modulen.. men jeg kan ikke si sikkert om det er der det skjer. Jeg kunne ikke umiddelbart finne detaljer om det.

For meg ser det ut til at en annen MAC -adresse blir tildelt hver gang den starter opp. Jeg personlig liker det ikke, og følgelig er det ting som kan gjøres for å sette Mac -adressen (for eksempel programmet "macchanger" eller sette den gjennom ip / ifconfig -kommandoene). Hvis noen av dere finner en "boot-up" / "crontab" løsning på dette, vil jeg gjerne høre om hvordan du gjør det hvis du er åpen for deling.

Du kan se min på bildet. Når jeg søker etter leverandøren av Mac Address for eth0 ==> b827eb, kommer den opp som Raspberry Pi Foundation. Leverandøren for eth1 ==> fa9770 er ukjent, så det ble åpenbart generert på min Pi på et tidspunkt.

Trinn 9: Konklusjon

Takk for at du sjekket denne instruksjonsboken.

Jeg lærte ganske mye å jobbe gjennom dette lille prosjektet.

Skulle du ha spørsmål, eller er du interessert i å kjøpe et av brettene jeg har sminket (befolket eller ikke), har jeg noen tillegg som er til salgs og som vi kan diskutere.

Jeg oppfordrer deg uansett til å legge igjen kommentarer, foreslå korreksjoner (skrivefeil eller metoder eller ??)

Sikkert, hvis du lager dette selv, ville jeg være veldig glad for å se bilder av hvordan du taklet det, og sluttresultatene / formålet ditt.

Takk.

PS: Takk til denne fyren for veiledning og ideer.

Trinn 10: DTBO -filer

To filer å legge til i "overleggsmappen" - nødvendig for trinn #4 og #5

Anbefalt: