Nyan Keys:一款基于FPGA的开源机械键盘
Nyan Keys:一款基于FPGA的开源机械键盘
Nyan Keys是一款基于FPGA的开源机械键盘项目,它通过并行处理每个按键的输入和去抖动功能,实现了超低延迟的响应速度。该项目使用STM32F723 MCU以8KHz的频率与主机进行480Mb/s的USB高速通信,从硬件设计到软件实现都展现了极高的技术水平。
Nyan Keys - 硬件
Nyan Keys的目标是设计出一款低延迟的机械键盘,支持任何Cherry兼容的开关按键,例如Kailh和Gateron。其硬件设计灵感来源于Wooting 60HE和Pok3r 60%机械键盘,结合了Wooting的高性能特点和Pok3r的灵活性。
超低延迟
Nyan Keys的按键响应速度非常快,仅为30微秒。FPGA和MCU之间的SPI总线以12.25MHz的频率运行。作者对延迟进行了测试,从按键到设置下一个USB中断的总时间在最坏情况下约为155微秒,这比基于USB 2.0 FS的键盘快6.5倍。
FPGA(Lattice Ice40HX4K)
Nyan Keys的亮点在于使用FPGA来并行处理按键的去抖动逻辑和序列化。每个按键开关都直接连接到IO引脚,虽然增加了布线复杂性,但避免了使用额外的二极管等元件。FPGA为每个按键提供了单独的控制模块,该模块由一个8位定时器组成,通过计时器实现防抖机制。
STM32F723(ARM MCU - USB 2.0 HS)
为了方便主机和设备之间的接口,选择了STM32F723 MCU,主要原因是其板载USB 2.0 HS PHY,支持8KHz的中断轮询,具有0.125微秒的中断间隔。USB 2.0 HS还提供了更大的帧数据量,确保了不同操作系统之间的兼容性。
NyanOS(NOS)- 固件
Nyan Keys的固件基于NyanOS系统,这是一个用C语言编写的轻量级系统,避免了任何可能影响性能的额外开销。NyanOS负责USB 2.0 HS设备管理、USB串行控制台、EEPROM存储、FPGA位流加载等任务。此外,项目还提供了Nyan GUI,用于配置和控制NyanOS。
项目链接
该项目的详细硬件设计文件和软件源代码已在GitHub上开源: