Da die von ihnen favorisierten Teensy 3.6-Boards nicht verfügbar sind, haben Adafruit und Freunde wieder einmal Einfallsreichtum bewiesen, indem sie mithilfe von bit-banged USB-Host-Funktionen einen RP2040 dazu gebracht haben, einen anderen zu programmieren.

Die jüngste Verbreitung von Raspberry Pi Pico-Boards in Kombination mit Lieferengpässen bei den größeren Boards der Raspberry Pi-Familie und mehr Zeit zu Hause in den letzten Jahren hat dazu beigetragen, dass eine bestimmte Art von Einfallsreichtum gedeiht, wenn es darum geht, diese RP2040-Mikrocontroller an ihre Grenzen zu bringen.

Eine Sache, in der sich dieser Chip als besonders gut erwiesen hat, ist das Bit-Banging. Mit seinen PIO-Blöcken, den vielseitigen Hardwareschnittstellen, durch die sich der RP2040 von vielen anderen Mikrocontrollern unterscheidet, haben Anwender Ein- und Ausgänge für eine Vielzahl von E/A-Protokollen programmiert. Durch die einfache Ausgabe von Low-Level-Befehlen an die PIO-Peripherie wurde alles von Ethernet bis DVI-over-HDMI realisiert.

Jetzt haben die Genies von Adafruit einen nützlichen Hack demonstriert, der die USB-Host-Funktionalität auf dem RP2040 unter Verwendung der PIO-Peripherie ermöglicht. Sie verwenden RP2040-Boards in ihren Produkten und müssen diese testen, bevor sie sie an Kunden versenden. Ihr früherer Arbeitsablauf war es, Teensy 3.6 Boards für die Programmierung zu verwenden, aber aufgrund von Lieferproblemen sind diese jetzt knapp.
 
20230104105654_rp2040jig.jpg
RP2040 Programmiervorrichtung. Das Teensy-Board auf der linken Seite wird durch den RP2040-Host überflüssig. Quelle: Adafruit auf YouTube

Dank der Bemühungen von Thach Ha von Adafruit und mithilfe der Arbeit des GitHub-Benutzer sekigon-gonnoc war Adafruit in der Lage, die PIO-Peripherie und seine TinyUSB-Bibliothek zu verwenden, um USB über PIO zu unterstützen und ihre Testvorrichtungs-Firmware darauf zu portieren, und ja, es ist eine weitere Bit-Banging-Lösung. Dies ermöglicht es ihnen, einen Raspberry Pi Pico als USB-Host zu verwenden, eine microSD-Karte zu lesen und einen zweiten RP2040 im Massenspeichermodus zu programmieren.

Das Pico-PIO-USB-Repository von sekigon-gonnoc unterstützte bereits Low-Speed- und Full-Speed-USB-Host- und Full-Speed-USB-Device-Modi, und die Arbeit von Adafruit baut darauf auf, indem sie sich auf die Massenspeicherfunktionen konzentriert, die typischerweise für die Programmierung von RP2040-Mikrocontrollern verwendet werden; sie haben auch ein Massenspeicherbeispiel zur Verfügung gestellt.

Prüfvorrichtungen wie diese sind für die Leiterplatten-Massenproduktion nützlich, und die Unterstützung des RP2040 für verschiedene Schnittstellen durch PIO macht ihn zu einer guten Wahl für Produktionstests.

Die von Adafruit so geliebten gefederten Pogo-Pins stellen die Hardware-Verbindung her - ebenfalls eine enorme Zeitersparnis. Schauen Sie sich Ladyadas Demo hier an:
 
 
Translation:  Willem den Hollander