Desenvolvedor adicionou uma porta USB extra no Raspberry Pi RP2040

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.


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.

Deixe um comentário

Sair da versão mobile