LibPad
Low-level PS1/PS2 gamepad communication library (mostly for embedded usage)
Data interface
It is just SPI: LSB first, CPOL=1, CPHA=1
Pad pinout
| Pin number | Pin name | Meaning |
|---|---|---|
| 1 | DATA [Open-drain!] | Data from joypad/memory card (SPI_MISO on MCU). Open drain (requires pull-up) |
| 2 | CMD | Data to joypad/memory card (SPI_MOSI on MCU) |
| 3 | +7.6V | Power supply for vibration motors |
| 4 | GND | Ground |
| 5 | VCC | 3.6V (should work fine with 3.3V) |
| 6 | ATT | Attention (SPI_CS on MCU) |
| 7 | CLK | Clock (SPI_CLK on MCU) PS1: 250KHz for controller and memory card, 500KHz or 1MHz for multitap. PS2: 250KHz for controller, 25MHz for memory card |
| 8 | N/C [IRQ10] | Joy only (Konami Justifier). Typically not connected |
| 9 | Ack [IRQ7] [Open-drain!] | Goes low for at least 1 clock after each 8 bits transmitted with 60us timeout . Open drain (requires pull-up) |