Si bien el Raspberry Pi RP2040 es un pequeño chip bastante capaz, en general no es nada realmente especial en comparación con las ofertas de las grandes marcas. Pero, el periférico PIO es un poco especial, y su inclusión fue claramente un golpe maestro de previsión, porque le ha otorgado a la plataforma todo tipo de capacidades que serían realmente difíciles de hacer de otra manera, especialmente por el precio. Nuestro enfoque esta vez está en Ethernet, utilizando el PIO como un simple serializador para enviar un flujo de bits preformateado. [kingyo] hasta ahora ha logrado implementar el Pico-10BASE-T que proporciona el mínimo indispensable de transmisión UDP (proyecto GitHub) usando solo un puñado de resistencias como prueba de concepto. Para una implementación más segura, es más habitual acoplar tal cosa magnéticamente, y [kingyo] muestra la construcción de un transformador de pulsos rudimentario, aunque obviamente hay piezas disponibles para esto. En aras de la exhaustividad, también es posible acoplar de forma capacitiva el hardware Ethernet (consulte esta nota de la aplicación Micrel para empezar) pero no se hace mucho en la práctica.
Dentro del transformador de pulsos conveniente. UDP es un protocolo Ethernet simple para transferir datos de aplicaciones. Al no tener conexión, los datos de carga útil simplemente se formatean en un búfer de paquetes por adelantado. Todo está bien, hasta que te das cuenta de que los paquetes son bastante largos y la tasa de bits puede ser bastante alta para un uC de bajo costo, razón por la cual los dispositivos con funcionalidad Ethernet MAC dedicada tienen un bloque de serializador-deserializador de hardware (SERDES) específico solo para esta función. Al igual que muchos dispositivos uC pequeños, el RP2040 no tiene una función MAC integrada, pero tiene el PIO, y eso se puede programar fácilmente para realizar la función SERDES en solo unas pocas líneas de código, aunque actualmente solo funciona a 10 MBit/seg. Esto causará algunos problemas de conectividad para el hardware de conmutador moderno, ya que es probable que ya no admitan esta baja velocidad, pero eso se resuelve fácilmente comprando hardware de conmutador más antiguo de eBay. En cuanto a la recepción UDP, se promete para el futuro, pero para obtener datos de un dispositivo remoto a través de una red cableada, Pico-10BASE-T es un buen punto de partida. Hemos visto algunos proyectos antes que utilizan el PIO para generar señales de alta velocidad, como DVI, aunque con una gran dosis de overclocking necesaria. Si quieres una introducción un poco más a todas las cosas de Pico, podrías hacer algo peor que ver esto serie de videos que destacamos hace un tiempo.