GPIO over DE-9 ports
- smokku
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:
- X65 runs on non-monothonic clock
and VIA will not tolerate it - internal clocks will go awry.
- 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.
Additionally, this setup allows the ports to function as a GPIO connector for various user devices.