Tabla de contenido:
- Suministros
- Paso 1: Raspberry Pi 3b
- Paso 2: Conectar el módulo Wiznet WIZ820io al bus GPIO de Raspberry Pi
- Paso 3: Mi placa de circuito
- Paso 4: Configuración de Raspberry Pi IOS (anteriormente Raspian) - Entradas en la carpeta "boot"
- Paso 5: Configuración de Raspberry Pi IOS (anteriormente Raspian): entradas en el directorio de "superposiciones"
- Paso 6: Configuración de Raspberry Pi IOS (anteriormente Raspian) - Editar archivo llamado: Config.txt
- Paso 7: hemos reiniciado. Espero que estés sonriendo
- Paso 8: Configuración de Raspberry Pi IOS (anteriormente Raspian) - Configuración de la dirección IP
- Paso 9: Conclusión
- Paso 10: archivos DTBO
Video: Agregue un puerto de red WIZ820io / USR-ES1 - Wiznet W5500 a su Raspberry Pi: 10 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
En parte debido a mi interés en hacer algo como esto, y en parte debido a mi interés en Codesys, he tenido en mi mente por un tiempo intentar conectar un segundo puerto de interfaz de red a una Raspberry Pi. Entonces, mientras hacía otros proyectos, he estado pensando, leyendo, comparando, planificando y comprando para finalmente poder seguir adelante y construir algo.
Sí, lo sé … hay algunos sistemas listos para usar "llave en mano" disponibles que harían algo similar, pero en realidad ninguno de ellos era lo suficientemente atractivo como para separarme de mi dinero.
En realidad, tengo un bajo nivel de conocimiento y experiencia en Raspberry Pi y Linux / Raspberry Pi IOS (Raspian) (me va mejor en los mundos de Windows y Android), no tengo un conocimiento profundo de redes (puedo hacer que las cosas funcionen y construir redes, pero más allá de eso, estoy un poco por encima de mi cabeza), y recién comencé a hacer placas de circuito. Seguro que no soy programador.
Una vez finalmente decidí seguir adelante con esta idea de construir algo y opté por usar el módulo WIZ820io / USR-ES1, que se basa en el circuito integrado Wiznet - W5500. Este módulo puede comunicarse con Raspberry Pi (y otras MCU) utilizando el bus SPI estándar. Además, funciona con 3.3 VCC, por lo que presenta CERO riesgos de daños para mi Raspberry Pi.
Al diseñar la placa de circuito, opté por construirla en una configuración adecuada de "HAT" (forma y capacidad), y además de agregar los circuitos para el "módulo WIZ820io, también agregué una serie de otros elementos que NO se utilizan en este proyecto de networking, pero que puedo y seré utilizado para otros proyectos en el futuro.
El tablero que diseñé / construí tiene los siguientes elementos.
1 - Un enchufe para sujetar el Wiznet - WIZ820io - Módulo de puerto Ethernet (hice un Eagle Footprint personalizado para esto).
2 - Un ventilador de enfriamiento de 30 mm - 5 VCC para la CPU Raspberry Pi (hice una huella de águila personalizada para esto).
3 - Un chip de memoria "CAT24C32" para mantener los requisitos de compatibilidad de HAT (esto aún no está programado por mí) (hice un Eagle Design Block personalizado para esto).
4 - Un convertidor de nivel mini MAX3232 - UART - TTL a RS-232 conectado a UART0 (hice una huella de águila personalizada para esto).
5 - Un LED rojo (GPIO24), un LED amarillo (GPIO23) y un LED verde (GPIO22) para usar en los ejercicios de programación Semáforo - Python.
6 - Un LED verde (GPIO18) y un LED verde (GPIO27) - para ejercicios de programación y resolución de problemas.
7 - Un interruptor táctil conectado a GPIO25 - para ejercicios de programación y resolución de problemas (hice una huella de águila personalizada para esto). TENGA EN CUENTA que este GPIO también se utilizará con el WIZ820io.
Entonces, como señalé anteriormente, este Instructable solo tratará con el Artículo # 1 en esta lista. Todos los demás elementos que agregué en la pizarra están allí por otras razones no relacionadas con este proyecto de interfaz de red.
Suministros
Raspberry Pi: utilicé una Raspberry Pi 3B anterior. No hay nada de malo en eso. El mío tiene un puerto HDMI muerto, así que lo ejecuto "sin cabeza" usando TeamViewer para acceder a él. Funciona. Sospecho firmemente que la mayoría de las versiones de Raspberry Pi funcionarán con este Instructable SIEMPRE que pueden ejecutar versiones más recientes de Raspberry Pi IOS (Raspian).
Antes de comenzar con todo esto, por supuesto actualicé el sistema operativo:
sudo apt-get update
sudo apt-get upgrade
WIZ820io / USR-ES1: la documentación para esto está disponible en línea del OEM
Placa de PC: utilicé Autodesk Eagle para diseñar la placa de circuito impreso y generar los archivos Gerber necesarios para que JLCPCB construya la placa de circuito. Como se señaló anteriormente, también agregué el chip de memoria "CAT24C32" para mantener el requisito de compatibilidad con HAT.
Paso 1: Raspberry Pi 3b
En cuanto a la Raspberry Pi, hice este proyecto usando una Raspberry Pi 3b estándar, junto con la última versión de Raspberry Pi IOS (Raspian) que pude descargar e instalar.
No hay nada especial ahí. He tenido esa unidad durante algunos años y me ha funcionado bastante bien (bueno, la salida de video HDMI está muerta, así que me veo obligado a ejecutar sin cabeza con TeamViewer). No debería necesitar hacer esto.
Sospecho que cualquier RPi debería poder conectarse a un WIZ820io / USR-ES1 - Wiznet W5500 y hacer que esto funcione, así como muchas otras marcas compiten en el mismo mercado (Beagle Bone, Orange, Tinker, etc.) y usan un similar modelo de sistema operativo basado en Linux.
Tengo CERO experiencia con cualquiera de esos. Tengo poca experiencia con la frambuesa, mira a dónde me llevó eso:)
Paso 2: Conectar el módulo Wiznet WIZ820io al bus GPIO de Raspberry Pi
Revise las imágenes adjuntas.
El módulo Wiznet WIZ820io proporciona dos filas de 6 pines cada una para conectarse.
Las filas están etiquetadas como "J1 y" J2 "respectivamente.
La hoja de datos que proporcionan tiene un diagrama codificado por colores muy agradable de cada pin. Este diagrama está destinado a ayudarlo a conectar esos pines a los pines GPIO de su Raspberry PI. Son bastante bien una coincidencia de NOMBRE por NOMBRE.
El pinout de Raspberry Pi se puede encontrar aquí: pinout.xyz
Conecté esos pines de la siguiente manera (ver imagen adjunta):
Por supuesto, dado que hice una placa de circuito real, todas las conexiones a tierra (GND) se conectaron juntas. Lo mismo ocurre con los pines a 3.3V: mi placa de circuito los conectó.
Algunas cosas a destacar …
1st - J2 Pin # 5 - RSTn - Lo conecté a RPi GPIO # 17 (Pin # 11) - Eso fue una precaución. No creo que se use.
2nd - J1 Pin # 6 - INTn - Que está conectado a GPIO25 (Pin # 22). Esto es necesario, ya que en el paso de configuración de Raspberry Pi IOS, nos referiremos a esto.
3er - J1- Pin # 5 - SCNn - Que está conectado a la Raspberry Pi "CS0" (Pin # 24). Efectivamente, eso le da a este módulo la dirección de "Módulo 0" en el bus RPi SPI. Nuevamente, en el paso de configuración de Raspberry Pi IOS, nos referiremos a esto.
Paso 3: Mi placa de circuito
Se adjunta el esquema Eagle "Point to Point" que hice y con el que generé los Archivos Gerber.
También se adjuntan imágenes de la "placa de circuito" que hice para este proyecto.
Esta placa aceptará varios productos Wiznet diferentes del estilo WIZ820io.
Paso 4: Configuración de Raspberry Pi IOS (anteriormente Raspian) - Entradas en la carpeta "boot"
Para que Raspberry Pi "vea" el módulo WIZ820io recién instalado en su bus SPI, el IOS debe estar al tanto, para que pueda lidiar con él durante el "ARRANQUE".
Para hacer esto, simplemente agregaremos dos líneas a:../../boot/config.txt
Primero … Usando un panel / ventana de Terminal ==> ls
cd../boot, navegue hasta../boot y enumere (ls) el directorio
Consulte la imagen adjunta. Allí debe buscar y confirmar la presencia de dos entradas; las he marcado con un círculo rojo.
Uno es un archivo llamado: "config.txt"
El segundo es una carpeta llamada: "superposiciones"
== == == ==
Una vez que haya confirmado la presencia de estas dos entradas, puede continuar con el siguiente paso.
Paso 5: Configuración de Raspberry Pi IOS (anteriormente Raspian): entradas en el directorio de "superposiciones"
Cambie el directorio al directorio "superposiciones""
Tipo: superposiciones de cd
Después de presionar la tecla "enter", lo llevará a la carpeta "superposiciones" (ver imagen adjunta).
Enumere el contenido del directorio.
Tipo: ls
Después de presionar la tecla "Intro", debería ver una lista larga de los contenidos de ese directorio. La lista puede ser alfabética.
(ver imágenes adjuntas (2 de)). Tenga en cuenta que casi TODOS los archivos se nombran con una extensión de: *.dtbo, también puede notar algunos nombrados con una extensión de: *.dtb
Estos son TODOS los archivos de superposición del "Árbol de dispositivos"
Debe confirmar la presencia de dos archivos de "superposición" (consulte los archivos de imagen adjuntos).
Primero: un archivo llamado: anyspi.dtbo (para este, es posible que deba usar la barra de desplazamiento en el margen derecho de la ventana para volver a la parte superior y encontrar el anyspi.dtbo ordenado alfabéticamente).
2do - un archivo llamado w5500.dtbo
== == ==
Si puede confirmar que ambos archivos están presentes, entonces está en buena forma y puede regresar al directorio../boot.
Escriba: cd../ después de presionar la tecla ENTER, debe regresar al directorio / boot.
Enumere el directorio para confirmar: escriba: ls y presione la tecla ENTER
Paso 6: Configuración de Raspberry Pi IOS (anteriormente Raspian) - Editar archivo llamado: Config.txt
En el directorio../boot, ahora podemos trabajar para hacer un par de pequeñas ediciones en el archivo llamado: config.txt
Primero llamaremos al editor "nano" como "superusuario" (sudo)
sudo = 'superusuario"
nano es el editor de texto que usaremos
y como se señaló, config.txt es el archivo que queremos editar.
Escriba: sudo nano config.txt y presione ENTER.
Esto abrirá el editor y mostrará el contenido del archivo config.txt. Si el editor no se abre o se abre vacío, salga (si está en nano) y revise la ortografía.
Si todo salió bien, debería ver algo como en la segunda imagen adjunta. "nano" mostrará la "parte superior" del archivo. deberá desplazarse hacia abajo hasta el final.
En la parte inferior del archivo, agregue las dos "declaraciones dtoverlay" a continuación:
dtoverlay = anyspi, spi0-0, dev = "w5500", velocidad = 30000000dtoverlay = w5500
Vuelva a revisar toda la ortografía, y si coincide, presione las dos teclas "Ctrl-x" para salir … y responda apropiadamente para guardar y salir.
== == == ==
En el próximo arranque (y para todos los arranques posteriores si esas dos declaraciones permanecen allí), el sistema operativo ahora también llamará a la superposición llamada "anyspi" y la superposición denominada "w5500".
La superposición "anyspy" prepara el sistema operativo para usar el bus SPI0-0 (que es donde previamente conectamos físicamente el WIZ820io. El "-0" lo especifica para usar la dirección "0" - recuerde que previamente conectamos el pin WIZ820io # J1-6 al "CEO" de RPi GIPO (Pin # 24).
La superposición "w5500" le dice al sistema operativo cómo manejar el circuito integrado W5500 ubicado en el módulo WIZ820io. También define usar RPi GPIO25 (Pin # 22) como la señal INTn. Recuerde una vez más que anteriormente hicimos esta conexión.
Este tipo de información se puede encontrar en varios archivos, como este ejemplo que se encuentra en GITHub.
== == ==
Es hora de reiniciar el RPI y hacer que todo esto surta efecto.
Paso 7: hemos reiniciado. Espero que estés sonriendo
Si todo salió bien, su RPi debería haberse reiniciado normalmente. Sonrisa.
Es hora de comprobar si el IOS cargó los dos nuevos archivos de superposición y si reconoce el módulo WIZ820io adjunto.
Una vez más, abra una ventana de "Comando".
Esta vez, en el indicador, escriba ifconfig (o use el comando "ip" más reciente) y presione la tecla Intro.
Probablemente obtendrá una respuesta larga, por lo que deberá volver a desplazarse hasta la parte superior.
De vuelta en la parte superior, busque las dos secciones:
Uno llamado eth0, y un segundo llamado: eth1 - vea la imagen adjunta.
En mi sistema, eth0 es el puerto Ethernet en el RPI. eth1 es el nuevo puerto Ethernet WIZ820io.
== == ==
Si está viendo los dos puertos, entonces también lo está el RPI. Observe en la imagen adjunta, eth1 ha enviado paquetes y sin errores.
Probé esto desconectando el cable del puerto original y usando el navegador para ir a YouTube y otros sitios web. Funciona. También lo hice "ping" desde algunos dispositivos diferentes y funciona.
== == ==
Si no ve eth1 (o algo similar), que no sea eth0 en un RPI3 o RPi4, intente volver atrás y verificar que el config.txt se haya editado y guardado correctamente. Asegúrese de que las dos superposiciones estén en su lugar y que la ortografía sea correcta (no hay letras mayúsculas donde no las tenga; las mayúsculas son importantes en este sistema).
== == ==
Si los dos puertos están presentes, entonces puede haber un poco más de trabajo de configuración por hacer… en el siguiente paso….
Paso 8: Configuración de Raspberry Pi IOS (anteriormente Raspian) - Configuración de la dirección IP
Esto está un poco fuera de mi casa del timón, por lo que en este momento no puedo brindar orientación.
Solo sepa que hay innumerables sitios web, videos de YouTube y foros de mensajes que brindan este tipo de información.
pero … es posible que desee comprobar y hacer algunas cosas aquí.
1 - Verifique dos veces la dirección IP que tiene actualmente su nuevo puerto. ¿Fue asignada por su servidor DHP, o es la IP predeterminada, algo en el rango de: 169.254.xxx.yyy? ¿Es algo más?
2- ¿Quieres una dirección IP estática (fija) o una dirección IP dinámica (asignada por tu servidor DHCP)?
Compruebe el conmutador / enrutador al que está conectado su RPI … ¿ve su nuevo puerto? ¿Puede "hacer ping"? (asegúrese de desconectar el cable del puerto original si hace esto; de lo contrario, el RPi puede engañarlo).
Utilice ifconfig (o el comando "ip" más reciente) para ver que los datos que van y vienen tienen un aspecto "normal" (por así decirlo) y sin un número indebido de errores.
== == ==
Por último … creo que es el w5500.dtbo que asigna una dirección MAC al módulo WIZ820io / W5500 … pero no puedo decir con certeza si es ahí donde sucede. No pude encontrar detalles al respecto de inmediato.
Para mí, parece que se asigna una dirección MAC diferente cada vez que se inicia. A mí personalmente no me gusta eso y, en consecuencia, hay cosas que se pueden hacer para configurar la dirección Mac (el programa "macchanger", por ejemplo, o configurarlo a través de los comandos ip / ifconfig). Si alguno de ustedes encuentra una solución de "arranque" / "crontab" para esto, me encantaría saber cómo lo hace si está dispuesto a compartir.
Puedes ver el mío en la imagen. Cuando busco el proveedor de direcciones Mac para eth0 ==> b827eb, aparece como Raspberry Pi Foundation. El proveedor de eth1 ==> fa9770 aparece como desconocido, así que obviamente, se generó en mi Pi en algún momento.
Paso 9: Conclusión
Gracias por revisar este Instructable.
Aprendí bastante trabajando con este pequeño proyecto.
Si tiene alguna pregunta, o puede estar interesado en comprar uno de los tableros que hice (poblado o no), tengo algunos extras que están a la venta y que podemos discutir.
En cualquier caso, les insto a que dejen comentarios, sugieran correcciones (errores tipográficos o métodos o ??)
Ciertamente, si usted hace esto por sí mismo, me complacería mucho ver fotos de cómo lo abordó y sus resultados / propósito final.
Gracias.
P. D.: Gracias a este compañero por la orientación y las ideas.
Paso 10: archivos DTBO
Dos archivos para agregar a su carpeta de "superposiciones": necesarios para los pasos n. ° 4 y n. ° 5
Recomendado:
Agregue un botón de encendido a su instalación de LibreELEC en una Raspberry Pi: 6 pasos
Agregue un botón de encendido a su instalación de LibreELEC en una Raspberry Pi: A continuación, aprenderemos cómo agregar un botón de encendido a LibreELEC que se ejecuta en una Raspberry Pi. Usaremos un PowerBlock no solo para agregar un botón de encendido, sino también un LED de estado que indica el estado de energía de su instalación de LibreELEC. Para estos i
¡Conversión del puerto USB de las placas basadas en SAMD21 en un puerto serie de hardware !: 3 pasos
¡Convertir el puerto USB de las placas basadas en SAMD21 en un puerto serie de hardware !: Hoy en día es estándar utilizar un puerto USB de placa Arduino (o cualquier otro compatible) como puerto serie emulado. Esto es muy útil para depurar, enviar y recibir datos de nuestros adorables tableros. Estaba trabajando en uChip cuando, revisando el datash
Leer y escribir desde un puerto serie con Raspberry Pi usando Wemos: 5 pasos
Leer y escribir desde el puerto serie con Raspberry Pi usando Wemos: comunicarse con una Raspberry Pi usando un Wemos D1 mini R2
¿El puerto USB de NODEMcu no funciona? Cargue el código usando el módulo USB a TTL (FTDI) en solo 2 pasos: 3 pasos
¿El puerto USB de NODEMcu no funciona? Cargue el código usando el módulo USB a TTL (FTDI) en solo 2 pasos: Cansado de conectarse a muchos cables desde el módulo USB a TTL al NODEMcu, siga estas instrucciones para cargar el código en solo 2 pasos. NODEMcu no funciona, entonces no se asuste. Es solo el chip del controlador USB o el conector USB
Compartir WiFi con puerto Ethernet en una Raspberry Pi: 7 pasos (con imágenes)
Comparta WiFi con puerto Ethernet en una Raspberry Pi: ¿Tiene una impresora láser o un escáner antiguo que todavía funciona muy bien pero no es compatible con wifi? O tal vez desee conectar un disco duro externo como dispositivo de respaldo en su red y se haya quedado sin puertos Ethernet en el enrutador de su hogar. Esta instr