Bit-banged Ethernet en el Raspberry Pi Pico

Si bien el Raspberry Pi RP2040 es un pequeño chip bastante capaz, en general no es nada especial en comparación con las ofertas de las grandes marcas. Pero, el dispositivo PIO es un poco especial, y su inclusión fue claramente un golpe maestro de previsión, ya que le dio a la plataforma todo tipo de capacidades que sería realmente difícil de hacer, de lo contrario, especialmente para el precio.

Esta vez nos estamos enfocando en Ethernet, usando el PIO como un serializador simple para enviar un flujo de bits preformateado. [kingyo] hasta ahora ha logrado implementar Pico-10BASE-T proporcionando el mínimo de transmisión UDP (proyecto GitHub) utilizando solo un puñado de resistencias como prueba de concepto. Para una implementación más segura, es más común acoplar tal cosa magnéticamente, y [kingyo] muestra la construcción de un transformador de pulso rudimentario, aunque obviamente hay partes estándar disponibles para esto. En aras de la exhaustividad, también es posible acoplar capacitivamente el hardware Ethernet (consulte esta nota de la aplicación Micrel para principiantes), pero no se hace mucho en la práctica.

Dentro del transformador de pulso oportuno.

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, es por eso que los dispositivos con funcionalidad Ethernet MAC dedicada tienen un deserializador de hardware específico del bloque serializador (SERDES) solo para esta función .

Al igual que muchos dispositivos uC pequeños, el RP2040 no tiene una función MAC integrada, pero tiene PIO, y esto se puede programar fácilmente para realizar la función SERDES en solo unas pocas líneas de código, aunque solo actualmente funcionando a 10 Mbit/seg. Esto causará problemas de conectividad para el hardware de conmutador moderno, ya que probablemente ya no admitirán esta baja velocidad, pero esto 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 extraer datos de un dispositivo remoto a través de una red cableada, Pico-10BASE-T es un buen punto de partida. Ya hemos visto algunos proyectos que usan PIO para generar señales de alta velocidad, como DVI, pero con una gran dosis de overclocking requerida. Si desea una introducción un poco más amplia a todas las cosas de Pico, podría hacer algo peor que mirar esta serie de videos que destacamos hace un tiempo.

Bit-banged Ethernet en el Raspberry Pi Pico

Si bien el Raspberry Pi RP2040 es un pequeño chip bastante capaz, en general no es nada especial en comparación con las ofertas de las grandes marcas. Pero, el dispositivo PIO es un poco especial, y su inclusión fue claramente un golpe maestro de previsión, ya que le dio a la plataforma todo tipo de capacidades que sería realmente difícil de hacer, de lo contrario, especialmente para el precio.

Esta vez nos estamos enfocando en Ethernet, usando el PIO como un serializador simple para enviar un flujo de bits preformateado. [kingyo] hasta ahora ha logrado implementar Pico-10BASE-T proporcionando el mínimo de transmisión UDP (proyecto GitHub) utilizando solo un puñado de resistencias como prueba de concepto. Para una implementación más segura, es más común acoplar tal cosa magnéticamente, y [kingyo] muestra la construcción de un transformador de pulso rudimentario, aunque obviamente hay partes estándar disponibles para esto. En aras de la exhaustividad, también es posible acoplar capacitivamente el hardware Ethernet (consulte esta nota de la aplicación Micrel para principiantes), pero no se hace mucho en la práctica.

Dentro del transformador de pulso oportuno.

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, es por eso que los dispositivos con funcionalidad Ethernet MAC dedicada tienen un deserializador de hardware específico del bloque serializador (SERDES) solo para esta función .

Al igual que muchos dispositivos uC pequeños, el RP2040 no tiene una función MAC integrada, pero tiene PIO, y esto se puede programar fácilmente para realizar la función SERDES en solo unas pocas líneas de código, aunque solo actualmente funcionando a 10 Mbit/seg. Esto causará problemas de conectividad para el hardware de conmutador moderno, ya que probablemente ya no admitirán esta baja velocidad, pero esto 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 extraer datos de un dispositivo remoto a través de una red cableada, Pico-10BASE-T es un buen punto de partida. Ya hemos visto algunos proyectos que usan PIO para generar señales de alta velocidad, como DVI, pero con una gran dosis de overclocking requerida. Si desea una introducción un poco más amplia a todas las cosas de Pico, podría hacer algo peor que mirar esta serie de videos que destacamos hace un tiempo.

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow