Ethernet bit-banged sur le Raspberry Pi Pico

Bien que le Raspberry Pi RP2040 soit une petite puce assez performante, dans l’ensemble, ce n’est rien de vraiment spécial par rapport aux offres des grandes marques. Mais, le périphérique PIO est un peu spécial, et son inclusion était clairement un coup de maître de prévoyance, car il a conféré à la plate-forme toutes sortes de capacités qu’il serait vraiment difficile de faire autrement, surtout pour le prix.

Cette fois, nous nous concentrons sur Ethernet, en utilisant le PIO comme un simple sérialiseur pour sortir un flux binaire pré-formaté. [kingyo] jusqu’à présent, a réussi à mettre en œuvre le Pico-10BASE-T fournissant le strict minimum de transmission UDP (projet GitHub) en utilisant seulement une poignée de résistances comme preuve de concept. Pour une mise en œuvre plus sûre, il est plus courant de coupler une telle chose magnétiquement, et [kingyo] montre la construction d’un transformateur d’impulsions rudimentaire, bien que des pièces standard soient évidemment disponibles pour cela. Par souci d’exhaustivité, il est également possible de coupler capacitivement du matériel Ethernet (consultez cette note d’application Micrel pour les débutants), mais cela ne se fait pas tant que ça dans la pratique.

À l’intérieur du transformateur d’impulsions opportun.

UDP est un protocole Ethernet simple pour transférer des données d’application. Étant sans connexion, les données de charge utile sont simplement formatées dans un tampon de paquets à l’avant. Tout va bien, jusqu’à ce que vous réalisiez que les paquets sont assez longs et que le débit binaire peut être assez élevé pour un uC à faible coût, c’est pourquoi les appareils avec une fonctionnalité MAC Ethernet dédiée ont un bloc de sérialiseur-désérialiseur matériel (SERDES) spécifique juste pour cette fonction.

Comme de nombreux petits appareils uC, le RP2040 n’a pas de fonction MAC intégrée, mais il a le PIO, et cela peut facilement être programmé pour exécuter la fonction SERDES en seulement une poignée de lignes de code, bien qu’il ne fonctionne actuellement qu’à 10 Mbit/sec. Cela entraînera des problèmes de connectivité pour le matériel de commutation moderne, car ils ne prendront probablement plus en charge cette faible vitesse, mais cela est facilement résolu en accrochant certains matériels de commutation plus anciens sur eBay.

Quant à la réception UDP, c’est promis pour l’avenir, mais pour extraire des données d’un appareil distant sur un réseau câblé, Pico-10BASE-T est un très bon point de départ. Nous avons déjà vu quelques projets utiliser le PIO pour générer des signaux à haute vitesse, tels que DVI, mais avec une forte dose d’overclocking nécessaire. Si vous voulez un peu plus d’introduction à tout ce qui concerne Pico, vous pourriez faire pire que de regarder cette série de vidéos que nous avons soulignée il y a quelque temps.