GPIO over DE-9 ports

-

A poll on X65 Discord revealed that we do want to have support of 8-bit-era-style joysticks.

Even with recent RP2350 migration, we do not have 10 GPIO pins to spare, so we need a general-purpose I/O chip connected to the CPU’s address space.

One option is to take the venerable VIA chip and connect it to CPU bus.

There are two problems with that:

  1. X65 runs on non-monothonic clock and VIA will not tolerate it - internal clocks will go awry.
  2. The chip is expensive… - almost as expensive as CPU.

Other option is to use a modern GPIO extender chip with a modern serial bus. There is a good candidate: MCP23X17 series. This device family provides 16-bit, general purpose parallel I/O expansion for I2C or SPI bus, that can be split into two 8-bit GPIO ports.

This is perfect. We can have two 9-pin (8 bits + GND) joysticks ports, that can be configured to handle any controller type with all kinds of standards.

DE-9 joysticks schematic

Additionally, this setup allows the ports to function as a GPIO connector for various user devices.