Usando seus talentos e as E/S programáveis (PIO) do microcontrolador, um desenvolvedor adicionou uma porta USB extra no Raspberry Pi RP2040.
As especificações do Raspberry Pi RP2040 listam apenas uma interface de hardware host/dispositivo USB 1.1, mas o desenvolvedor Sekigon Gonnoc decidiu aproveitar as E/S programáveis (PIO) do microcontrolador para adicionar uma porta USB extra que também funciona no modo host ou dispositivo.
Desenvolvedor adicionou uma porta USB extra no Raspberry Pi RP2040
Embora a biblioteca C ainda seja um trabalho em andamento, Sekigon implementou host de velocidade total (12 Mbps) e velocidade lenta (1,5 Mbps), dispositivo de velocidade total, hub USB e suporte a várias portas.
Há até uma demonstração com três teclados “Pico Pico USB” atuando como hubs USB e HID mais um mouse sem fio para mostrar os resultados.
RP2040(ラズパイPicoのマイコン)のPIOを活用してUSBホストを実装しました。元々持ってるUSB機能と合わせてホストとデバイスの両方の機能を持たせられます。動画は分割型自作キーボードの左右間通信をUSB化+αのデモです。詳細はこの後のアドカレにて #自作キーボード #raspberrypipico #raspberrypy pic.twitter.com/Og7HSsygvh
— せきごん (@_gonnoc) December 18, 2021
A implementação usa um PIO para o transmissor USB usando 22 instruções e uma máquina de estado e outro PIO para o receptor USB usando 31 instruções e duas máquinas de estado, além de um temporizador de loop de 1 ms para o host e uma interrupção PIO para o receptor.
Você encontrará o código para implementar a porta USB extra no RP2040 MCU através do PIO no repositório Github Pico-PIO-USB, incluindo dois exemplos:
- capture_hid_report.c Programa de amostra de host USB que imprime relatórios HID recebidos de um dispositivo.
- usb_device.c Exemplo de dispositivo HID USB FS que move o cursor do mouse a cada 0,5s.
Outro exemplo mais avançado é o firmware QMK para a placa USB Pico Pico. O teclado físico também parece ter sido desenhado por Sekigon Gonnoc, mas não consegui encontrar nenhuma informação sobre ele.
Dito isso, ele projetou anteriormente a placa Pico Micro RP2040 e a vendeu através do Booth.pm, um “mercado de criadores” para o mercado japonês que se parece um pouco com o Tindie para mim, exceto que também funciona para artistas.