I/O modules

AXO-016 — PS/2 keyboard/mouse PMOD module

Catalog #16 in the AruviX output line, level L3 (PS/2 clock/data protocol). The keyboard keystone of the standalone-computer path: PS/2 in, VGA out, microSD storage — AruviOS with its own keyboard.

Level L3 ERC clean DRC clean Fab package 14 components
3D render of the AXO-016 PCB
Rendered from the PCB layout. No physical board has been manufactured.

Circuit review & bench-test guide →

Components#

Every placed component, with the reason it is on the board. Extracted directly from the schematic, so this cannot drift from the design.

RefValueWhat it does on this boardPart numberFootprint
C1 100nF 16V X7R PS/2 device supply decoupling at the socket GRM188R71C104KA01D
Murata
C_0603_1608Metric
C2 10uF 10V X5R Bulk reservoir for keyboard inrush/scan current on the 5 V feed GRM21BR61A106KE19L
Murata
C_0805_2012Metric
C3 100nF 16V X7R Module decoupling on the 3.3 V pull-up rail GRM188R71C104KA01D
Murata
C_0603_1608Metric
J1 PMOD PLUG 2x6 PMOD peripheral plug (Digilent spec 1.2) not selected
generic
PinHeader_2x06_P2.54mm_Horizontal
J2 PS/2 PIGTAIL (1x4 SOCKET) PS/2 pigtail or Mini-DIN-6 panel adapter: 1 +5V, 2 GND, 3 CLK, 4 DATA (5 V side) not selected
generic
PinSocket_1x04_P2.54mm_Vertical
J3 EXT 5V IN External 5 V for the PS/2 device: 1 +5V, 2 GND (common with PMOD GND) not selected
Phoenix Contact
TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal
Q1 BSS138 Bidirectional open-collector level shifter, PS/2 CLK line BSS138
onsemi
Datasheet ↗
SOT-23
Q2 BSS138 Bidirectional open-collector level shifter, PS/2 DATA line BSS138
onsemi
Datasheet ↗
SOT-23
R1 10k CLK pull-up, 3.3 V side RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
R2 10k CLK pull-up, 5 V side RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
R3 10k DATA pull-up, 3.3 V side RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
R4 10k DATA pull-up, 5 V side RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
R5 100R Series protection on the device-driven CLK line RC0603FR-07100RL
Yageo
Datasheet ↗
R_0603_1608Metric
R6 100R Series protection on the bidirectional DATA line RC0603FR-07100RL
Yageo
Datasheet ↗
R_0603_1608Metric

Signals#

Net labels used in the schematic, which are also the names the HDL top level should use.

3V3 EXT_5V GND PS2_CLK PS2_CLK_HV PS2_CLK_LV PS2_DATA PS2_DATA_HV PS2_DATA_LV

Production status#

Schematic ERC0 violations
PCB layoutcomplete
DRC0 violations
Fab packageexported (24 gerbers + drill + CPL + BOM)
Fabricatedno — design stage only

Source: boards/io-modules/axo-016-ps2


Catalog #16 in the AruviX output line (../README.md), level L3 (PS/2 clock/data protocol). The keyboard keystone of the standalone-computer path: PS/2 in, VGA out, microSD storage — AruviOS with its own keyboard.

Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.

What it teaches#

The first "real peripheral": PS/2 is open-collector, device-clocked, and slow (10–16.7 kHz) — ideal for a first serial-protocol receiver. Frames are 11 bits: start, 8 data LSB-first, odd parity, stop; the host samples DATA on the falling edge of the device-driven CLK. HDL: instantiate the ps2_rx core from hdl/ (scan-code decode, then a keymap ROM, then an AruviOS keyboard driver).

Design#

PMOD pin123456789101112
NetPS2_CLKPS2_DATANCNCGND3V3NCNCNCNCGND3V3

Drive rule: open-collector only — pull low or release; never drive high.

Regenerate#

python3 generate_design.py

Remaining for release#