Raspberry Pi RP2040 получает дополнительный USB-порт через PIO (программируемые вводы-выводы)

В спецификациях Raspberry Pi RP2040 указан только один аппаратный интерфейс хоста/устройства USB 1.1, но разработчик Sekigon Gonnoc решил использовать программируемые вводы-выводы (PIO) микроконтроллера, чтобы добавить дополнительный USB-порт, который также работает в режиме хоста или устройства.

Хотя предполагается, что библиотека C все еще находится в стадии разработки, Sekigon реализовал полноскоростной (12 Мбит/с) и низкоскоростной (1,5 Мбит/с) хост, полноскоростное устройство, USB-концентратор и поддержку нескольких портов. Есть даже демонстрация с тремя клавиатурами «Pico Pico USB», действующими как концентраторы USB, и HID, а также беспроводной мышью, чтобы показать результаты.

Реализация использует один PIO для USB-передатчика с использованием 22 инструкций и одного конечного автомата, а другой PIO для USB-приемника с использованием 31 инструкции и двух конечных автоматов, а также один таймер цикла 1 мс для хоста и одно прерывание PIO для приемника.

Вы найдете код для реализации дополнительного USB-порта на микроконтроллере RP2040 через PIO в репозитории Pico-PIO-USB Github, включая два примера:

  • Capture_hid_report.c Пример программы хоста USB, которая распечатывает отчеты HID, полученные от устройства.
  • usb_device.c Образец устройства HID USB FS, который перемещает курсор мыши каждые 0,5 с.

Еще один более продвинутый образец — прошивка QMK для платы Pico Pico USB. Аппаратная клавиатура, похоже, также разработана Sekigon Gonnoc, но нам не удалось найти о ней никакой информации. Указывается, что ранее была разработана плату Pico Micro RP2040, продаваемая через Booth.pm , «creator market» для японского рынка, который, на наш взгляд, чем-то похож на Tindie, за исключением того, что он также работает для художников.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

3.5 2 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments