De recente populariteit van de Raspberry Pi Pico boards, gecombineerd met tekorten in de toeleveringsketen voor de grotere boards uit de Raspberry Pi familie, en meer tijd thuis in de afgelopen jaren, heeft een bepaald soort vindingrijkheid helpen opbloeien om die RP2040 microcontrollers tot het uiterste te drijven.

Eén ding waar deze chip bijzonder goed in is gebleken is bit-banging. Met de PIO-blocks, veelzijdige hardware-interfaces die de RP2040 onderscheiden van veel andere microcontrollers, hebben gebruikers invoer en uitvoer gerealiseerd voor een verscheidenheid aan I/O-protocollen. Door eenvoudigweg low-level instructies te geven aan de PIO randapparatuur hebben mensen alles gerealiseerd, van Ethernet tot DVI-over-HDMI.

Nu hebben de slimmeriken van Adafruit een handige hack gedemonstreerd die USB host functionaliteit op de RP2040 mogelijk maakt met behulp van de PIO randapparatuur. Ze gebruiken RP2040 boards in hun producten en moeten die testen voordat ze naar klanten worden gestuurd. Voorheen gebruikten ze Teensy 3.6 boards voor het programmeren, maar door toeleveringsproblemen zijn die nu beperkt leverbaar.
 
20230104105654_rp2040jig.jpg
RP2040 programmeermal. Het Teensy board links is overbodig geworden door de RP2040 host. Bron: Adafruit on YouTube

Dankzij de inspanningen van Adafruit's Thach Ha met de hulp van GitHub gebruiker sekigon-gonnoc, was Adafruit in staat om de PIO randapparatuur en zijn TinyUSB bibliotheek te gebruiken om USB over PIO te ondersteunen en er hun test tool firmware naar te porten, en ja, het is weer een bit-banging oplossing. Hiermee kunnen ze een Raspberry Pi Pico gebruiken om zich voor te doen als een USB host, een microSD kaart te lezen en een tweede RP2040 te programmeren met behulp van massa-opslagmodus.

De Pico-PIO-USB repository van sekigon-gonnoc ondersteunde al low-speed en full-speed USB host en full-speed USB device modes, en het werk van Adafruit bouwt hierop voort door zich te richten op de massaopslagfuncties, die typisch gebruikt worden voor het programmeren van RP2040 microcontrollers; ze hebben ook een massaopslagvoorbeeld gedeeld.

Testmallen als deze zijn nuttig voor massaproductie van printplaten, en de ondersteuning van de RP2040 voor diverse interfaces via PIO maakt hem een goede keuze voor productietests.

De door Adafruit geliefde pogo pinnen met veermechanisme vormen de hardwareverbinding - ook een enorme tijdsbesparing. Bekijk Ladyada's demo hier:
 

 
Vertaling: Hans Adams