树莓派RP2040通过PIO(可编程 I/O)获得一个额外的USB端口

原文链接:Raspberry Pi RP2040 gains an extra USB port through PIO’s (programmable I/Os) 由Jean-Luc Aufranc撰写。
本文共计561字,预计阅读2分钟

树莓派 RP2040 规范只列出了一个 USB 1.1 主机或设备的硬件接口,因此开发者Sekigon Gonnoc就决定利用微控制器的可编程 I/O (PIO)给树莓派添加一个额外的 USB 端口,而且他添加的这个端口也可在主机或设备模式下工作。

虽然,目前该端口的 C 语言库仍然还在开发中,但 Sekigon 已经实现了全速 (12 Mbps) 和低速 (1.5Mbps) 主机、全速设备、USB 集线器和多端口支持了。Sekigon甚至还提供了一个演示,用三个“Pico Pico USB”键盘充当 USB 集线器和 HID ,再加一个无线鼠标来显示结果。

通过PIO获得的树莓派RP2040的USB接口
通过PIO获得的树莓派RP2040的USB接口

该项目使用了一个PIO用作 USB 发送器,使用的是22条指令和一个状态机;另一个 PIO 则用作 USB 接收器,使用的是 31 条指令和两个状态机;另外,该项目还使用了一个用于主机的 1ms 循环定时器和一个用于接收器的 PIO 中断。

如果你们打算尝试该项目,可以在Pico-PIO-USB Github代码仓中找到通过 PIO 在 RP2040 MCU 上实现额外 USB 端口的代码,甚至还有两个示例,如下所示:

  • c USB 主机示例程序,用于打印从设备接收到的 HID 报告
  • c HID USB FS 设备示例,每 0.5 秒移动一次鼠标光标

该项目还有另一个进阶示例,即Pico Pico USB板的 QMK 固件。对了,它的硬件键盘似乎也是由 Sekigon Gonnoc 设计的,但我找不到任何有关硬件的信息。目前的情况就是这样,其实在此之前Sekigon Gonnoc也设计过 Pico Micro RP2040 板,并通过Booth.pm出售。Booth网站其实是日本市场上的一个“创作者市场”,其实就有点类似于专门做DIY硬件特卖网站的Tindie,比较不同的是Booth上也有一些艺术家们创作的作品。

本文消息来源于Hackster.io

分享这篇文章
订阅评论
提醒
0 评论
内联反馈
查看所有评论