So, I've been giving a lot of thought to Version 2.0 of my computer, based on what I've learnt building version 1 and on trying to give it cooler functionality - that's what the sound synth thread is all about, though I'll probably breadboard that first and retrofit it onto v1 anyway.
Back on topic! the VIA Shift Register makes, I think, quite a good general purpose peripheral expansion bus as per Garth's
Ideas for Interfacing, afterall you can use those shift registers to drive any circuits you want, or have a microcontroller that can accept the signals directly, and only needs five pins including power and ground. the only real downside is that its half-duplex. Infact I already have this broken out on v1 on a 5-pin molex KK connector.
But I got to thinking - to make it truly general purpose, what other signals might be useful?
Off the top of my head:
- PHI2 - so that the peripheral doesn't necessarily have to generate its own clock (the shift register clock being unsuitable as it only clocks when shifting data)
- !RST - So the peripheral is reset with the rest of the system, or can cause such resets
- !IRQ - Generate an IRQ. Not too sure about this one, as by definition it would be time consuming to disable or clear the IRQ on the peripheral end, since we can only talk to it via a relatively slow serial connection, and in the mean time we can't return from the interrupt since we'll just be immediately interrupted again.
- PD - Presence Detect - simple enough, a which is pulled to, say, Vcc when disconnected and pulled to ground when a peripheral is plugged in, so that the computer can actually know that its not just clocking data into the ether.
- AUX - An auxillary general purpose pin, or several even, as similar to the AUX signal in SPI-10.
I'm not sure how useful they'd all be, probably not all of them are necessary. What are your opinions?
Tally those up and we get 10 pins. Though you can get 10-pin KK connectors, I think they become ungainly and a bit of a pain to connect and disconnect at those high pin numbers. So, what connector could I use? I'm always of the opinion that re-using "common" connectors for a non-common purpose is a bad idea, as people look at your machine and think "Oh cool, its got a Serial port!" plug a Serial device in and
bang because it wasn't wired as a Serial port.... oh dear.
Currently I'm looking favourably at MiniDIN connectors, the 8 pin one as used for Apple Localtalk. I feel the connector is now sufficiently uncommon that it won't pose a risk, but sufficiently standardised that getting parts and cables won't be problematic. Thoughts?
_________________
Want to design a PCB for your project? I strongly recommend
KiCad. Its free, its multiplatform, and its easy to learn!
Also, I maintain KiCad libraries of
Retro Computing and
Arduino components you might find useful.