Sommario:

Aggiungi una porta di rete WIZ820io / USR-ES1 - Wiznet W5500 al tuo Raspberry Pi.: 10 passaggi
Aggiungi una porta di rete WIZ820io / USR-ES1 - Wiznet W5500 al tuo Raspberry Pi.: 10 passaggi

Video: Aggiungi una porta di rete WIZ820io / USR-ES1 - Wiznet W5500 al tuo Raspberry Pi.: 10 passaggi

Video: Aggiungi una porta di rete WIZ820io / USR-ES1 - Wiznet W5500 al tuo Raspberry Pi.: 10 passaggi
Video: Rete LAN Cablata FAI da TE - Installare Cavi di Rete Internet a CASA - Semplice ed Economica! 2024, Novembre
Anonim
Aggiungi una porta di rete WIZ820io / USR-ES1 - Wiznet W5500 al tuo Raspberry Pi
Aggiungi una porta di rete WIZ820io / USR-ES1 - Wiznet W5500 al tuo Raspberry Pi

In parte a causa del mio interesse a fare qualcosa del genere, e in parte a causa del mio interesse per Codesys, da un po' di tempo ho in mente di provare a connettere una seconda porta di interfaccia di rete a un Raspberry Pi. Così, mentre facevo altri progetti, ho pensato, letto, confrontato, pianificato e fatto acquisti in modo da poter finalmente andare avanti e costruire qualcosa.

Sì, lo so… ci sono alcuni sistemi "chiavi in mano" pronti all'uso disponibili là fuori che farebbero qualcosa di simile, ma in realtà nessuno di loro era abbastanza allettante da separarmi dai miei soldi.

In realtà ho un basso livello di conoscenza ed esperienza su Raspberry Pi e Linux/Raspberry Pi IOS (Raspian) (me la cavo meglio nei mondi Windows e Android), nessuna conoscenza approfondita del Networking (so far funzionare le cose e costruire reti, ma oltre a questo sono un po' fuori di testa), e ho appena iniziato a creare circuiti stampati. Di sicuro non sono un programmatore.

Una volta ho finalmente deciso di andare avanti con questa idea di costruire qualcosa e ho scelto di utilizzare il modulo WIZ820io / USR-ES1, che si basa sul circuito integrato Wiznet - W5500. Questo modulo può comunicare con il Raspberry Pi (e altri MCU) utilizzando il bus SPI standard. Inoltre, funziona con 3,3 VDC, quindi pone ZERO rischi di danni al mio Raspberry Pi.

Durante la progettazione del circuito, ho deciso di costruirlo in una corretta configurazione "HAT" (forma e capacità), e oltre ad aggiungere i circuiti per il "modulo WIZ820io ho anche aggiunto una serie di altri elementi che NON sono utilizzati in questo progetto di networking, ma che posso e sarò utilizzato per altri progetti in futuro.

La scheda che ho progettato/costruito ha i seguenti elementi.

1 - Una presa per contenere Wiznet - WIZ820io - Modulo porta Ethernet (ho realizzato un'impronta Eagle personalizzata per questo).

2 - Una ventola di raffreddamento da 30 mm - 5 VDC per la CPU Raspberry Pi (ho realizzato un'impronta Eagle personalizzata per questo).

3 - Un chip di memoria "CAT24C32" per mantenere i requisiti di compatibilità HAT (questo non è ancora programmato da me) (ho creato un Eagle Design Block personalizzato per questo).

4 - Un mini MAX3232 - UART - Convertitore di livello da TTL a RS-232 collegato a UART0 (ho realizzato un'impronta Eagle personalizzata per questo).

5 - Un LED Rosso (GPIO24), Un LED Giallo (GPIO23) e un LED Verde (GPIO22) da utilizzare per esercizi di programmazione Semaforo - Python.

6 - Un LED verde (GPIO18) e un LED verde (GPIO27) - per esercizi di programmazione e risoluzione dei problemi.

7 - Un interruttore tattile collegato a GPIO25 - per esercizi di programmazione e risoluzione dei problemi (ho creato un'impronta Eagle personalizzata per questo). NOTA che questo GPIO verrà utilizzato anche con il WIZ820io.

Quindi, come ho notato in precedenza, questo Instructable si occuperà solo dell'elemento n. 1 in questo elenco. Tutti gli altri elementi che ho aggiunto alla lavagna sono lì per altri motivi non correlati a questo progetto di interfaccia di rete.

Forniture

Raspberry Pi - Ho usato un vecchio Raspberry Pi 3B. Niente di sbagliato in questo.. Il mio ha una porta HDMI morta, quindi lo eseguo "senza testa" usando TeamViewer per accedervi. Funziona. Sospetto fortemente che la maggior parte delle versioni di Raspberry Pi funzionerà con questo Instructable FORNISCE che possano eseguire versioni più recenti di Raspberry Pi IOS (Raspian).

Prima di iniziare tutto questo, ho ovviamente aggiornato il sistema operativo:

sudo apt-get update

sudo apt-get upgrade

WIZ820io / USR-ES1 - La documentazione per questo è disponibile online dall'OEM

Scheda PC - Ho usato Autodesk Eagle per progettare il PCB e generare i file Gerber necessari per JLCPCB per costruire il circuito. Come notato in precedenza, ho anche aggiunto il chip di memoria "CAT24C32" per mantenere i requisiti di compatibilità HAT.

Passaggio 1: Raspberry Pi 3b

Raspberry Pi 3b
Raspberry Pi 3b

Per quanto riguarda il Raspberry Pi, ho realizzato questo progetto utilizzando un Raspberry Pi 3b standard, insieme all'ultima versione di Raspberry Pi IOS (Raspian) che ho potuto scaricare e installare.

Niente di speciale lì. Possiedo quell'unità da alcuni anni e ha funzionato per lo più bene per me (beh, l'uscita video HDMI è morta, quindi sono costretto a funzionare senza testa usando TeamViewer). Non dovresti aver bisogno di farlo.

Sospetto che qualsiasi RPi dovrebbe essere in grado di connettersi a un WIZ820io / USR-ES1 - Wiznet W5500 e farlo funzionare, così come molti altri marchi competono nello stesso mercato (Beagle Bone, Orange, Tinker, ecc.) modello di sistema operativo basato su Linux.

Ho ZERO esperienza con nessuno di questi. Ho poca esperienza con il Raspberry - guarda dove mi ha portato:)

Passaggio 2: interfacciare il modulo Wiznet WIZ820io al bus GPIO Raspberry Pi

Interfacciamento del modulo Wiznet WIZ820io al bus GPIO Raspberry Pi
Interfacciamento del modulo Wiznet WIZ820io al bus GPIO Raspberry Pi
Interfacciamento del modulo Wiznet WIZ820io al bus GPIO Raspberry Pi
Interfacciamento del modulo Wiznet WIZ820io al bus GPIO Raspberry Pi
Interfacciamento del modulo Wiznet WIZ820io al bus GPIO Raspberry Pi
Interfacciamento del modulo Wiznet WIZ820io al bus GPIO Raspberry Pi

Rivedere le immagini allegate.

Il modulo Wiznet WIZ820io fornisce due file di 6 pin ciascuna a cui interfacciarsi.

Le righe sono etichettate rispettivamente con "J1 e "J2".

Il foglio dati che forniscono ha un diagramma codificato a colori molto carino di ciascun pin. Questo diagramma ha lo scopo di aiutarti a collegare quei pin ai tuoi pin GPIO Raspberry PI. Sono piuttosto una corrispondenza NOME per NOME.

Il pinout Raspberry Pi può essere trovato qui: pinout.xyz

Ho collegato questi pin come segue (vedi immagine allegata):

Ovviamente, dal momento che ho realizzato un vero circuito stampato, tutti i Grounds (GND) sono stati collegati insieme. Lo stesso vale per i pin a 3,3 V: il mio circuito li ha collegati insieme.

Alcune cose da notare..

1st - J2 Pin # 5 - RSTn - L'ho collegato a RPi GPIO # 17 (pin # 11) - Era un avvertimento. Non credo che sia usato.

2° - J1 Pin #6 - INTn - Che è collegato a GPIO25 (Pin # 22). Questo è necessario, poiché nel passaggio di configurazione di Raspberry Pi IOS, faremo riferimento a questo.

3° - J1- Pin #5 - SCNn - Che è collegato al Raspberry Pi "CS0" (Pin # 24). In effetti, questo fornisce a questo modulo l'indirizzo del "Modulo 0" sul bus RPi SPI. Di nuovo, nel passaggio di configurazione di Raspberry Pi IOS, faremo riferimento a questo.

Passaggio 3: il mio circuito stampato

Il mio circuito
Il mio circuito
Il mio circuito
Il mio circuito
Il mio circuito
Il mio circuito

In allegato è lo schema Eagle "Point to Point" che ho realizzato e con il quale ho generato i file Gerber.

In allegato ci sono anche le immagini del "Circuit Board" che avevo creato per questo progetto.

Questa scheda accetterà diversi prodotti Wiznet dello stile WIZ820io.

Passaggio 4: configurazione di Raspberry Pi IOS (precedentemente Raspian) - Voci nella cartella "boot"

Configurazione Raspberry Pi IOS (precedentemente Raspian) - Voci nel
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Voci nel

Affinché il Raspberry Pi "veda" il modulo WIZ820io appena installato sul suo bus SPI, l'IOS deve essere informato, in modo che possa gestirlo durante il "BOOT Up".

Per fare ciò, aggiungeremo semplicemente due righe a:../../boot/config.txt

Primo.. Utilizzo di un pannello / finestra Terminale ==> ls

cd../boot, vai a../boot ed elenca (ls) la directory

Fai riferimento all'immagine allegata.. Lì devi cercare e confermare la presenza di due voci: le ho cerchiate in rosso.

Uno è un file chiamato: "config.txt"

La seconda è una cartella denominata: "overlay"

== == == ==

Una volta confermata la presenza di entrambe queste voci, puoi continuare con il passaggio successivo

Passaggio 5: configurazione di Raspberry Pi IOS (precedentemente Raspian) - Voci nella directory "overlay"

Configurazione Raspberry Pi IOS (precedentemente Raspian) - Voci nel
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Voci nel
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Voci nel
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Voci nel
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Voci nel
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Voci nel

Cambia directory nella directory "overlay""

Tipo: sovrapposizioni di cd

Dopo aver premuto il tasto "invio", questo ti porterà alla cartella "overlay" (vedi immagine allegata).

Elenca il contenuto della directory.

Tipo: ls

Dopo aver premuto il tasto "invio", dovresti vedere un lungo elenco dei contenuti di quella directory. L'elenco forse alfabetico.

(vedi immagini allegate (2 di)). Nota che quasi TUTTI i file sono nominati con un'estensione di: *.dtbo potresti anche notare alcuni nominati con un'estensione di: *.dtb

Questi sono TUTTI i file di sovrapposizione "Albero dispositivi"

È necessario confermare la presenza di due file "overlay" (vedi file immagine allegati).

1° - un file chiamato: anyspi.dtbo (per questo, potrebbe essere necessario utilizzare la barra di scorrimento nel margine destro della finestra per tornare all'inizio e trovare anyspi.dtbo in ordine alfabetico).

2° - un file chiamato w5500.dtbo

== == ==

Se puoi confermare che entrambi questi file sono presenti, allora sei in buona forma e puoi tornare alla directory../boot.

Digita: cd../ dopo aver premuto il tasto INVIO, dovresti essere riportato alla directory /boot.

Elenca la directory per confermare: digita: ls e premi il tasto ENTER

Passaggio 6: configurazione di Raspberry Pi IOS (precedentemente Raspian) - Modifica file denominato: Config.txt

Configurazione Raspberry Pi IOS (precedentemente Raspian) - Modifica file denominato: Config.txt
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Modifica file denominato: Config.txt
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Modifica file denominato: Config.txt
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Modifica file denominato: Config.txt
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Modifica file denominato: Config.txt
Configurazione Raspberry Pi IOS (precedentemente Raspian) - Modifica file denominato: Config.txt

Nella directory../boot, ora possiamo lavorare per apportare un paio di piccole modifiche al file denominato: config.txt

Prima chiameremo l'editor "nano" come "super utente" (sudo)

sudo = 'superutente'

nano è l'editor di testo che useremo

e come notato, config.txt è il file che vogliamo modificare.

Digita: sudo nano config.txt e premi INVIO.

Questo farà apparire l'editor e visualizzerà il contenuto del file config.txt. Se l'editor non si apre o si apre vuoto, esci (se in nano) e ricontrolla l'ortografia.

Se tutto è andato bene, dovresti vedere qualcosa di simile nella seconda immagine allegata. "nano" visualizzerà il "top" del file. dovrai scorrere fino in fondo.

Nella parte inferiore del file, aggiungi le due "istruzioni dtoverlay" di seguito:

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

Ricontrolla tutta l'ortografia e, se corrisponde, premi i due tasti "Ctrl-x" per uscire… e rispondi in modo appropriato per salvare ed uscire.

== == == ==

Al successivo avvio (e per tutti gli avvii successivi se queste due istruzioni rimangono lì) il sistema operativo ora chiamerà anche l'overlay denominato "anyspi" e l'overlay denominato "w5500".

L'overlay "anyspy" prepara il sistema operativo per utilizzare il bus SPI0-0 (ovvero dove abbiamo precedentemente collegato fisicamente il WIZ820io. Lo "-0" lo specifica per utilizzare l'indirizzo "0" - ricorda che abbiamo precedentemente collegato il pin WIZ820io #J1-6 all'RPi GIPO "CEO" (Pin #24).

L'overlay "w5500" indica al sistema operativo come gestire il circuito integrato W5500 situato nel modulo WIZ820io. Definisce anche l'uso di RPi GPIO25 (Pin #22) come segnale INTn. Ricordiamo ancora una volta che abbiamo precedentemente effettuato questa connessione.

Questo tipo di informazioni può essere trovato in vari file, come questo esempio trovato su GITHub.

== == ==

È ora di riavviare l'RPI e rendere effettivo tutto ciò.

Passaggio 7: abbiamo riavviato. Spero che tu stia sorridendo

Abbiamo riavviato. Spero che tu stia sorridendo
Abbiamo riavviato. Spero che tu stia sorridendo
Abbiamo riavviato. Spero che tu stia sorridendo
Abbiamo riavviato. Spero che tu stia sorridendo

Se tutto è andato bene, il tuo RPi dovrebbe essersi riavviato normalmente. Sorriso.

È ora di verificare se IOS ha caricato i due nuovi file di overlay e se riconosce il modulo WIZ820io allegato.

Ancora una volta apri una finestra "Comando".

Questa volta al prompt, digita ifconfig (o usa il nuovo comando "ip") e premi il tasto Invio.

Probabilmente riceverai una risposta lunga, quindi dovrai scorrere di nuovo verso l'alto.

Torna in alto, cerca le due sezioni:

Uno chiamato eth0 e un secondo chiamato: eth1 - vedi immagine allegata.

Nel mio sistema, eth0 è la porta Ethernet sull'RPI. eth1 è la nuova porta Ethernet WIZ820io.

== == ==

Se stai vedendo le due porte, allora lo è anche l'RPI. Avviso nell'immagine allegata, eth1 ha inviato i pacchetti e senza errori.

L'ho testato scollegando il cavo della porta originale e utilizzando il browser per accedere a YouTube e ad altri siti Web. Funziona. L'ho anche "pingato" da alcuni dispositivi diversi e funziona.

== == ==

Se non vedi eth1 (o qualcosa di simile) - diverso da eth0 su un RPI3 o RPi4, prova a tornare indietro e ricontrolla che il config.txt sia stato modificato e salvato correttamente. Assicurati che le due sovrapposizioni siano a posto e che l'ortografia sia corretta (niente lettere maiuscole dove non le ho - le maiuscole contano in questo sistema).

== == ==

Se le due porte sono presenti, potrebbe esserci un po' più di lavoro di configurazione da fare… al passaggio successivo…

Passaggio 8: configurazione di Raspberry Pi IOS (precedentemente Raspian) - Impostazione dell'indirizzo IP

Questo è un po' fuori dalla mia portata, quindi in questo momento non sono in grado di fornire indicazioni.

Sappi solo che ci sono innumerevoli siti web, video di YouTube e bacheche che forniscono questo tipo di informazioni.

ma.. potresti voler controllare e fare alcune cose qui.

1 - Ricontrolla l'indirizzo IP che la tua nuova porta ha attualmente. è stato assegnato dal tuo server DHP o è l'IP predefinito - qualcosa nell'intervallo: 169.254.xxx.yyy? È qualcos'altro??

2- Vuoi un indirizzo IP statico (fisso) o un indirizzo IP dinamico (assegnato dal tuo server DHCP).

Controlla lo switch/router a cui è connesso il tuo RPI.. vede la tua nuova porta? può "pingare" esso? (assicurati di scollegare il cavo della porta originale se lo fai, altrimenti l'RPi potrebbe ingannarti).

Usa ifconfig (o il più recente comando "ip") per vedere che i dati che vanno e vengono sembrano "normali" (per così dire) e senza un numero eccessivo di errori.

== == ==

Infine.. credo che sia il w5500.dtbo ad assegnare un indirizzo MAC al modulo WIZ820io / W5500.. ma non posso dire con certezza se è lì che accade. Non sono riuscito a trovare immediatamente dettagli su questo.

Per me sembra che venga assegnato un indirizzo MAC diverso ogni volta che si avvia. A me personalmente non piace, e di conseguenza ci sono cose che si possono fare per impostare il Mac Address (il programma "macchanger" ad esempio o impostandolo tramite i comandi ip/ifconfig). Se qualcuno di voi trova una soluzione "boot-up" / "crontab" a questo, sarei felice di sapere come lo fai se sei aperto alla condivisione.

Puoi vedere il mio nell'immagine.. Quando cerco il fornitore dell'indirizzo Mac per eth0 ==> b827eb, viene fuori come Raspberry Pi Foundation. Il venditore per eth1 ==> fa9770 risulta sconosciuto, quindi ovviamente è stato generato sul mio Pi ad un certo punto..

Passaggio 9: conclusione

Grazie per aver controllato questo Instructable.

Ho imparato molto lavorando attraverso questo piccolo progetto.

Se hai qualche domanda, o potresti essere interessato all'acquisto di una delle schede che ho creato (popolate o meno), ho alcuni extra che sono in vendita e di cui possiamo discutere.

In ogni caso, vi esorto a lasciare commenti, suggerire correzioni (errore di battitura o metodi o??)

Sicuramente, se lo fai per te stesso, mi farebbe molto piacere vedere le foto di come l'hai affrontato e i tuoi risultati finali / scopo.

Grazie.

P. S.: Grazie a questo collega per la guida e le idee.

Passaggio 10: file DTBO

Due file da aggiungere alla tua cartella overlay - Necessari per i passaggi #4 e #5

Consigliato: